I decided to modify the package name of the installed app so it would not show up as installed in the play store. At the same time I took the liberty of naming it SystemFramework.apk to better go along with the naming of the disguised version of the app. This was the last step needed to be taken in order to really stealth install Cerberus on your phone. Since I know that I personally don't feel that great about installing modified apps from other people I decided to outline how I did it so that if you're like me, you can do it yourself If you want to cut to the chase, I've included modified versions of the standard Cerberus app, the hidden one that shows up on your device as 'System Framework', and a flashable zip to install the hidden version to /system/app/SystemFramework.apk. It doesn't get much more hidden than that!
Read on to do it yoruself. Note that you will need the android development installed.
The first step is to download the app: https://www.cerberusapp.com/download.php
I'll be working with Cerberus_disguised.apk as that is the most hidden version provided. Once it's done you can make a flashable zip of it to install it to /system so it will be harder to remove.
The first step is to decompile the app with apktool. Get that here: http://code.google.com/p/android-apktool/
Then run it:
apktool d Cerberus_disguised.apk
I changed mine to com.notlsdroid.cerberus and then accept all the changes.
Back to the command line to recompile the apk:
apktool d Cerberus_disguised/ new_cerberus_disguised.apk
Now do the actual signing with the files from that zip:
java -Xmx1024m -jar signapk.jar -w testkey.x509.pem testkey.pk8 new_cerberus_disguised.apk new_cerberus_disguised.apk-signed.apk
show_progress(1.000000, 0); ui_print("Mounting /system"); run_program("/sbin/busybox", "mount", "/system"); set_progress(0.125000); ui_print("Mounting /data"); run_program("/sbin/busybox", "mount", "/data"); set_progress(0.250000); ui_print("Deleting old APK from /system"); delete("/system/app/SystemFramework.apk"); delete("/system/app/Cerberus.apk"); delete("/system/app/com.lsdroid.cerberus.apk"); delete("/system/app/com.notlsdroid.cerberus.apk"); set_progress(0.375000); ui_print("Deleting old APK from /data"); delete("/data/app/com.lsdroid.cerberus.apk"); delete("/data/app/com.lsdroid.cerberus-1.apk"); delete("/data/app/com.lsdroid.cerberus-2.apk"); delete("/data/app/com.notlsdroid.cerberus.apk"); delete("/data/app/com.notlsdroid.cerberus-1.apk"); delete("/data/app/com.notlsdroid.cerberus-2.apk"); set_progress(0.500000); ui_print("Extracting files to /system"); package_extract_dir("system", "/system"); set_progress(0.625000); ui_print("Unmounting /data"); unmount("/data"); set_progress(0.750000); ui_print("Unmounting /system"); unmount("/system"); set_progress(0.875000); ui_print("Installation complete!"); set_progress(1.000000);
Just replace the file names accordingly. Unzip one of the flashable zip files from the Cerberus website to your computer, replace the .apk in the system/app/ folder, and re-zip it. You can then sign it using the same procedure above but instead of specifying the input and output .apk names you specify the zip file.