[OnePlus X Android Development] didilalalaOPX:
So for the benefit for many:

In big lines all requirements are layered out at :

''https://wiki.merproject.org/wiki/Adaptations/libhybris/Install_SailfishOS_for_onyx''.

but some underlay-ed details could be good to know right away:

-First, Onyx bootloader need to be downgraded to the old bootloader version. transition between old to new bootloader happened right after stock rom ''OnePlusXOxygen_14_OTA_013_all_201609012031_da71623bd7874677'' .So to install Sailfish, this is the one that is needed from Oneplus official site or other sources if available. The Stock oxygen rom then need to have developer mode enable to enable ''OEM unlock'' to be able to unlock the bootloader in fastboot mode then be able to flash the stock recovery to replace by the require TWRP recovery compatible with the old bootloader. All those cand be learned following guidelines from CM-12 XDA thread.

-Now learning from TWRP thread's for Onyx there is 2 choice of TWRP recovery variants from this point: the regular specific compatible version as layered out in the ''Adaptations/libhybris'' guide direct download link or, if multiboot is intended, the multiboot TWRP (compatible with the old bootloader)+ the multirom installer. The folowing guide at :

''https://xdaforums.com/oneplus-x/orig-development/mod-multirom-v32-t3316937'' is updated for the new bootloader but switch from it's ''Discussion'' tab to ''downloads''. there we can find links to the older recovery img version.

-Almost ready to flash first custom rom but most likely almost everyone (including me) fall at this point and end up with installation errors , most likely ''7'' or ''6''. Maybe newest version of TWRP are smarter, I don't know because I came from an already mounted Onyx with lineage (new bootloader) and never played around with other rom's back then, to go(attempted) strait to Sailfish. But those version of TWRP recovery while reading the rom packages (either CM or sailfish) are stumbling on the product verification line logic in witch most of the custom rom have the product specified as ''one'' where , yes our OPX belong to, as a family, but will be identified as ''onyx''. So the recovery installer end up with an error that prevent from installing. Even more, the script format as well may prevent this TWRP version to succeed. So a little learning about those errors with TWRP lead to various sites and or Youtube vids. So to make sure to render your custom rom's ''flashable'' we need to unzip them. Then go at their ''\META-INF\com\google\android'' folder.

Then open the ''updater-script'' with an advanced notepad editor. ''Notepad++'' is the most recommended. Once open, locate the line/s that refer to the product verification check.

EX: for CM-12 : ''assert(getprop("ro.product.device") == "onyx" || getprop("ro.build.product") == "onyx" || abort("This package is for device: onyx; this device is " + getprop("ro.product.device") + "."''. If it is written ''one'' instead of ''onyx'' the installation will fail. The line can be modify or the simplest is to delete it completely.Don't worry as long as you stick with CM and sailfish it is safe to delete this lines as long as your are pretty sure that you get the rom download from an onyx forum and or source. If afraid of bricking, I personally went to that point and onyx can be unbrick no problem. After that for the script format; From Notepad++ open ''edit'', select ''Blank Operations'' then ''Remove Unnecessary Blank and EOL''. Every lines will be reformatted in one single long line. Save this modified script then re-compress the rom package. Now this or those custom rom's are finally ready to install properly.

- ''flash latest sailfish built release on top of CM12''should be as simple as it sound. As we should know by now ''MA-12.1-20160201-onyx''. as layered out on ''Adaptations/libhybris'' site is the specific build that Sailfish is adapted for Onyx to this day.

-Note: For Multirom use, Sailfish installation need to be as the primary rom. It wont work if attempt to install as secondary either on internal or external storage. Other rom's as long as compatible with the old bootloader can be install on internal or external storage.In the TWRP multirom\Settings menu the option ''Enable No-KEXEC Workaround'' need to be selected and it's ''ADV'' setting can be set to ''use when needed'' in order to boot any other installed secondary rom's.

- But back at our Sailfish installation process. After CM12 base installation , boot on it and see if successful. note;(will hang long enough on CM boot logo animation but be patient as it is an initial boot like any new Android device bootup), skip all welcome usual config/connect/chat, or play around as you wish ,then have the developer mode enabled + debugging+adv boot etc..

- Then re-boot back to TWRP.

- So as simply put as all general claims; chose ''install'' and select the desired Saifish beta built . It will literally install on top of the CM base. If all goes well the next re-boot should lead to a successful Sailfish OS boot.

note : Sailfish boot on Onyx, does not have boot animation. On normal boot, the system boot splash will be displayed from a relative long time (but way shorter than any android boot endless animations) to a point where the power led will light up steady then after a short while will fade half dim (bingo! successful boot!) before the Sailfish first greeting page is displayed. If the power led does not fade and stay lit full bright it will be stuck there and wont go no further. Try to power down with the power key and reboot again to see if it stay stuck at the same point. If still fail, there is something wrong with this build package some how.Wipe everything back + format , reinstall CM-12 again + reboot and all and then maybe try with a differed Sailfish build. But as far as I am concern every build from ''http://images.devaamo.fi/sfa/onyx/'' again as layered out here on this forum of course and on ''Adaptations/libhybris'' site should work.

Enjoy!