Not having permanent root is killing me, but I think this should solve the issue of disappearing su and busybox.
The general idea is to move all our root binaries to /data/local/bin, and remount /data to accept suid binaries (the 'su' binary requires sticky bit, aka chmod 4755). After you set that, you bind mount /system/xbin to /data/local/bin. Bind mounts stay in memory, and aren't cleared like mods to /system are.
This won't solve the issue of stuff in /system going away, but it will solve the issue of having your root utilities go away after a short amount of time.
This section would be run from the desktop PC on the first time of 'rooting' the phone:
adb install superuser.apk adb push zergRush /data/local/tmp/zergRush adb shell "chmod 755 /data/local/tmp/zergRush;/data/local/tmp/zergRush" adb shell "mkdir /data/local/bin" adb push su /data/local/bin/su adb push busybox /data/local/bin/busybox adb push temproot.sh /data/local/tmp/temproot.sh adb shell "chmod 755 /data/local/tmp/temproot.sh;/data/local/tmp/temproot.sh"
#!/system/bin/sh mount -o remount,suid /dev/block/mmcblk0p34 /data chmod 4755 /data/local/bin/su chmod 755 /data/local/bin/busybox cat /system/xbin/dexdump > /data/local/bin/dexdump cat /system/xbin/wireless_modem > /data/local/bin/wireless_modem /data/local/bin/busybox mount --bind /data/local/bin /system/xbin
adb push zergRush /data/local/tmp/zergRush adb shell "chmod 755 /data/local/tmp/zergRush;/data/local/tmp/zergRush" adb shell "mount -o remount,suid /dev/block/mmcblk0p34 /data" adb shell "/data/local/bin/busybox mount --bind /data/local/bin /system/xbin"
let me know what y'all think, hopefully this solves something or isn't something already been done before
Thanks for looking!
upon discussing some other possibilities with a friend, he suggested "why not have this all happen on-device?"
it appears there may be a way to temproot/do the above all on the device without the need for a PC!
(dev details: adbd listens on localhost:5037, run zergrush then take adb client on phone connect to adbd on phone and run the temproot scripts)
exciting stuff here, folks!