[Motorola Atrix HD] DiamondJohn:
Installs an boots one mine!

Woo-hoo! I had no issues installing the dhacker rom [cm-12-20150110-UNOFFICIAL-moto_msm8960_jbbl.zip]. Just testing it now.

I did have to go back to recovery and install Super User to get root.

So

1. clean,

2. Flash dhacker ROM

3. Flash LP Gapps

4. Flash SU

5 Boot!

So far calls work. GPS works (just updating GPS conf for better fix in Aus)

Antutu score for first try: 17687 not great, but the ROM actually feels fluid in the last 10sec of testing....:silly:

The following is a try at your own risk...

For those getting issues when flashing, have you tried modifying the edify script to find the exact line the error occurs on?

In the zip file, you can find the script (plain text) at

cm-12-20150110-UNOFFICIAL-moto_msm8960_jbbl.zip\META-INF\com\google\android\updater-script

The original KitKat ROMs used to fail for me because of an "assert". I found the line, added in my phone code, and could flash (later the source was corrected)

for example:

assert(getprop("ro.product.device") == "moto_msm8960_jbbl" || getprop("ro.build.product") == "moto_msm8960_jbbl" || getprop("ro.product.device") == "moto_msm8960" || getprop("ro.build.product") == "moto_msm8960" || getprop("ro.product.device") == "xt901" || getprop("ro.build.product") == "xt901" || getprop("ro.product.device") == "solstice" || getprop("ro.build.product") == "solstice" || getprop("ro.product.device") == "xt905" || getprop("ro.build.product") == "xt905" || getprop("ro.product.device") == "smq_u" || getprop("ro.build.product") == "smq_u" || getprop("ro.product.device") == "scorpion_mini_u" || getprop("ro.build.product") == "scorpion_mini_u" || getprop("ro.product.device") == "xt907" || getprop("ro.build.product") == "xt907" || getprop("ro.product.device") == "scorpion_mini" || getprop("ro.build.product") == "scorpion_mini" || getprop("ro.product.device") == "xt925" || getprop("ro.build.product") == "xt925" || getprop("ro.product.device") == "vanquish_u" || getprop("ro.build.product") == "vanquish_u" || getprop("ro.product.device") == "xt926" || getprop("ro.build.product") == "xt926" || getprop("ro.product.device") == "vanquish" || getprop("ro.build.product") == "vanquish" || getprop("ro.product.device") == "mb886" || getprop("ro.build.product") == "mb886" || getprop("ro.product.device") == "qinara" || getprop("ro.build.product") == "qinara" || getprop("ro.product.device") == "xt897" || getprop("ro.build.product") == "xt897" || getprop("ro.product.device") == "asanti" || getprop("ro.build.product") == "asanti" || getprop("ro.product.device") == "xt897c" || getprop("ro.build.product") == "xt897c" || getprop("ro.product.device") == "asanti_c" || getprop("ro.build.product") == "asanti_c" || abort("This package is for device: moto_msm8960_jbbl,moto_msm8960,xt901,solstice,xt905,smq_u,scorpion_mini_u,xt907,scorpion_mini,xt925,vanquish_u,xt926,vanquish,mb886,qinara,xt897,asanti,xt897c,asanti_c; this device is " + getprop("ro.product.device") + "."););
ifelse(is_mounted("/system"), unmount("/system"));
assert(getprop("ro.boot.secure_hardware") == "" || abort("This package is for devices with 4.1 bootloader"););
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system", "");
-----

Can become:

assert(getprop("ro.product.device") == "moto_msm8960_jbbl" || getprop("ro.build.product") == "moto_msm8960_jbbl" || getprop("ro.product.device") == "moto_msm8960" || getprop("ro.build.product") == "moto_msm8960" || getprop("ro.product.device") == "xt901" || getprop("ro.build.product") == "xt901" || getprop("ro.product.device") == "solstice" || getprop("ro.build.product") == "solstice" || getprop("ro.product.device") == "xt905" || getprop("ro.build.product") == "xt905" || getprop("ro.product.device") == "smq_u" || getprop("ro.build.product") == "smq_u" || getprop("ro.product.device") == "scorpion_mini_u" || getprop("ro.build.product") == "scorpion_mini_u" || getprop("ro.product.device") == "xt907" || getprop("ro.build.product") == "xt907" || getprop("ro.product.device") == "scorpion_mini" || getprop("ro.build.product") == "scorpion_mini" || getprop("ro.product.device") == "xt925" || getprop("ro.build.product") == "xt925" || getprop("ro.product.device") == "vanquish_u" || getprop("ro.build.product") == "vanquish_u" || getprop("ro.product.device") == "xt926" || getprop("ro.build.product") == "xt926" || getprop("ro.product.device") == "vanquish" || getprop("ro.build.product") == "vanquish" || getprop("ro.product.device") == "mb886" || getprop("ro.build.product") == "mb886" || getprop("ro.product.device") == "qinara" || getprop("ro.build.product") == "qinara" || getprop("ro.product.device") == "xt897" || getprop("ro.build.product") == "xt897" || getprop("ro.product.device") == "asanti" || getprop("ro.build.product") == "asanti" || getprop("ro.product.device") == "xt897c" || getprop("ro.build.product") == "xt897c" || getprop("ro.product.device") == "asanti_c" || getprop("ro.build.product") == "asanti_c" || abort("This package is for device: moto_msm8960_jbbl,moto_msm8960,xt901,solstice,xt905,smq_u,scorpion_mini_u,xt907,scorpion_mini,xt925,vanquish_u,xt926,vanquish,mb886,qinara,xt897,asanti,xt897c,asanti_c; this device is " + getprop("ro.product.device") + "."););
ui_print("line.1");
ifelse(is_mounted("/system"), unmount("/system"));
ui_print("line.2");
assert(getprop("ro.boot.secure_hardware") == "" || abort("This package is for devices with 4.1 bootloader"););
ui_print("line.3");
mount("ext4", "EMMC", "/dev/block/platform/msm_sdcc.1/by-name/system", "/system", "");
ui_print("line.4");
package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");
ui_print("line.5");
package_extract_file("system/bin/backuptool.functions", "/tmp/backuptool.functions");
ui_print("line.6");

Put the modified script back in the zip, and from there when you try to flash it, you can see that the last line printed out is just before the line that fails.

did I mention it all works fine for me....:p