These rules apply to OrangeFox's official maintainers. If you want to apply to become an official maintainer, follow this guide
These rules relate to OrangeFox Recovery R11.2. For futures versions, the rules may be changed.
All official builds should have a build type field, it should be Stable
, Beta
or Alpha
. These are case-sensitive. All other builds will be considered as unofficial.
You are not allowed to change the OrangeFox Recovery version number. But you can set maintainer's release. For example:
export FOX_VERSION=R11.2_1
where 'R11.2' is the OrangeFox version, '_1' is a maintainer's release. For every new OrangeFox build with same version you should increase maintainer's release by 1.
The current OrangeFox version is R11.2
You cannot release more than one build with the same FOX_VERSION!
Sometimes, to support different ROMs or Android versions, you need to build separate versions of OrangeFox. This is why OrangeFox variants exist.
To handle this, you should structure the device tree so that you can build all variants by simply changing the FOX_VARIANT build variable.
For example, if a device requires a different kernel for MIUI ROMs, you can add a conditional check for FOX_VARIANT=MIUI to switch to the appropriate kernel.
The resulting OrangeFox ZIP will include the value of FOX_VARIANT in its name.
Releasing OrangeFox builds with variants can be tricky. Ideally, you should maintain and release all variant builds simultaneously.
For different variants you can use the same FOX_VERSION
!
not
modify anything
in the OrangeFox source code, or vendor tree, or build system. Every release must be based on the pristine sources and pristine build system only.This is the most important point. Every build must be properly tested before release. It is not sufficient to have tested a previous build. The exact build that you wish to release must first be tested.
Every OrangeFox release built by an official maintainer must be done via the FoxBox (previously MPanel). It is not permitted to make an official release in any other manner.
Specifically, it is strictly forbidden to upload OrangeFox zips anywhere, even to testing groups.
There are good reasons for that, including better release management, and statistics collection. But the main reason is protection against impersonators.
Imagine if there is an impersonator on Telegram having the same profile as you and sharing an OrangeFox release ZIP. This is potentially very dangerous. That is why we're enforcing the rule "all OrangeFox releases on orangefox.download".
All official release zips must be signed during the build process. It is not permitted to make a release of an unsgined zip.
The full URL for the official OrangeFox download site must always be provided in every place where an official release is being promoted or referred to. Links must not be shortened with bit.ly or other similar services. It is recommended to copy the release url of orangefox.download if you want to distribute the release, you can do that by pressing 'open on orangefox.download' button in FoxBox and copying the new tab's URL.
Maintainers must not make, promote, or support any unofficial OrangeFox release for a device that they are maintaining, or for any device for which there is an official OrangeFox maintainer.
Every release must be accompanied by pushing an update of the device tree to the OrangeFox gitlab repo, so that the device tree on the OrangeFox gitlab repo is the exact device tree that was used in compiling the release build.
Please keep a copy of every
zip file that you have released, and please be ready to provide this in case we need a backup copy.
all the contents
of the OrangeFox wiki. This will enable you to provide accurate advice and to avoid mistakes.Every OrangeFox release must look and behave the same way, no matter the device. Therefore all maintainers should follow these ground rules:
A. The MicroSD (if the device supports it) must be mounted in fstab as "/sdcard1"
B. The USB OTG must be mounted in fstab as "/usb_otg", and a display flag of "USB-Storage"
C. The fstab must provide for backup of internal storage (mounted as "/storage")
D. The system_image and vendor_image partitions (on devices without dynamic partitions only) should have the "backup=1" flag in fstab
E. On devices with dynamic partitions, the fstab must NOT provide any interface for backing up, restoring, or flashing to, individual dynamic partitions. Only the Super partition must be available for backup/restore (and this is already done automatically, so it does not need to be done in the fstab).
The variables list is here
OF_SCREEN_H
not
change the OrangeFox sources for any release without prior authorisation from the developers.You should maintain a device/kernel tree on our GitLab page.
The device/kernel repository should have default a fox_(build-manifest version) branch - for example, fox_12.1 or fox_14.1. It should have been synced with most up-to-date release source, and, if you are working on a new release you should push it in master.
Your device should receive the latest OrangeFox source code updates and important commits. Also, you should pick the latest device tree fixes/improvements from TWRP or TWRP's forks projects device trees.
You should provide your build's users with support on our Telegram chat, and optionally, on XDA.
Testing upcoming releases from our closed repository are highly recommended. In order to be able to access the closed repository, you should have enabled 2FA on your GitLab profile.
Please do not lose your GitLab's 2FA keys. Making backups of 2FA keys is always good idea.