[Atrix 4G Android Development] NFHimself:
Disclaimer: I have only tested this on my own phone. Everything should work fine, but I am not responsible for anything lost on your phone..​

Here is an application based on my Bell Deodex scripts. Still a work in progress, but I am running out of things to do with it so it may be ready for public consumption. I just ran through a test of all the features, so far, so good.

Features:

Full Phone Backup and Restore (partitions 1-14, 17)

Root / Unroot

Early usb enumeration recovery mode

2nd-Init support

Odex/Deodex system files. (Bell stock, Telstra and French supported, ATT firmware support would just be a matter of creating the right system_$version.tar.gz archive and putting it in my Dropbox account.)

There are some changes compared to my scripts:

I am not using /data/local/tmp anymore, instead I am using /cache.

Instead of suspending android vis setprop tcmd.suspend 2, which obviously wouldn't be good from something running within android, I am using my early usb enumeration wedge to do it on the next boot before android loads via a script run from /cache.

Slight mods to that have been made to support this functionality, it requires shsu to be installed from my root install. So, if you have rooted using something else, you need my shsu in /system/bin.

ApplyMods is not being used, I could possibly port apktools over, but for now, the mods are baked into the deodexed system files.

I have compiled my own version of Gingerbreak, based on the source for GingerBreak_v1.2.apk. It detects our Froyo better by seeing if there is a 2.2 in the version anywhere. Also, it now takes a path argument so it's not limited to running from /data/local/tmp, and not hard baked with an android application path. Also, the app installs SuperUser.apk as a regular application, not a system one, and prompts you to unmount your internal memory and sdcard, so preserve their contents while GingerBreak is active.

Still more testing needs to be done, I have been working with stock Bell for most of development.

Bugs and feature requests welcome. :)

Cheers!

Credits:

ChainDD for the Gingerbreak apk, and the The Android Exploid Crew.

edgan for the 2nd-int stuff, see his thread here.

Tested:

OLYLA_U4_0.37.4: 100%

OLYEM_U4_2.1.1: 100%

Fixes:

1.0.1: debloat script fixed when deodexing, it was working but the files were getting replaced by the archive.

1.0.2: check added for shsu

1.0.2: Fixed stupid backup bug, creating directory "backup" and copying to "backup_$version"

1.0.3: Added reboot dialog popup

1.0.3: Fixed force close when no sdcard mounted. (postexecute in asynctask was assuming initialized data, not done when aborted)

1.0.3: Backup/Restore now archives data partition.

1.0.3: Multiple Backups now put up a selection dialog.

1.0.4: Added settings menu option

1.0.4: Updated early usb recovery mode, osh mount moved and replaced, using flag to avoid rerunning the same code.

1.0.4: Reboot option moved to menu. Requires root, when rooting just turn phone on and off, Superuser.apk gets installed after you reboot.

1.0.4: ATT sideloading support added. Reason for the move for Superuser.apk to next boot.

1.0.4: Recompiled 2nd-int, it's now 5KB instead of over 400KB. Have to find some working source for taskset to do that same there.

1.0.5: Added long click to backup button to force a restore operation

1.0.5: finished off settings dialog to implement internal vs external storage.

1.0.5: Misc layout updates, smaller font description text.

1.0.6: Fixed root.sh script, missing / resulting in 0 byte files. Doh!