[Android Apps and Games] inh:
The hidden 'system framework' version (cerberus_disguised) is an awesome idea, unfortunately if a thief were to look at your installed apps in the play store, Cerberus would be right there in front of him. Another issue is if anyone looks in your /system/app/ directory, there is a big fat Cerberus.apk right there. Now, I know most people that steal/find phones aren't going to look this far in to it, but what if you get someone that does...

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

Now create a new project in eclipse and choose 'android project from existing code' under 'android' adn select the folder that apktool created with the decompiled app as the root directory. Just accept all the default options for everything else. Once the project is loaded and you are back in eclipse, right click on the project on the left, go down to android tools, and select 'rename application package'

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 you need to sign it. To make things simple we will sign it with a test key so android will allow us to install it. You can not install un-signed apps. First we will need the singing tools file which I found from http://wiki.rootzwiki.com/Signing -- Get just the file here: http://goo.im/devs/drmacinyasha/wiki/signing-tools.zip

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

You can of course use whatever .apk names you want. Now take new_cerberus_disguised.apk-signed.apk and install it. I named mine SystemFramework.apk and modified the provided Cerberus_disguised-ICS.zip file as a base to make a flashable zip. I tweaked the updater script to both remove old versions of SystemFramework.apk (in case I'm doing an update) and the stock cerberus app since I assume most people will be flashing over it. my updater-script looks like this:

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.