5

I am new to Android world and I am really curious about how difficult it is to modify OS to add/remove applications. I am not talking about installing/removing apps from Android Market, but actually customizing OS to only include apps of my choice. That includes both standard/system apps as well as apps from Android Market. For example, what if I only wanted to have access to Google Voice application (and nothing else)? I guess in this custom version of the OS, I would not necessary have to remove the application, but could just somehow hide it from user.

In any case, any clues on the amount of effort/approach would be greatly appreciated.

2 Answers 2

5

You can modify system image. Pre-installed applications are located at /system/app/ folder. You can add new application to this folder or remove pre-existing applications from that folder.

Applications from this folder are not removable (if device is not rooted).

As a fast example for customizing Android emulator:

  • Go to Android SDK folder, .../platforms/android-9/images/
  • Note system.img file, it will be modified (you should back it up)
  • Extract system.img using unyaffs
  • Customize files inside extracted folder
  • Pack new modified system using mkyaffs2image (this tool is built when Android source is built).
  • Replace old system.img with new customized system.img
  • Create emulator for Android 2.3, launch it and verify that your changes took effect.

This mostly an overview of process, and customization of a real device is much trickier.

3
  • Is a standard/system Phone application in there as well? what would happen if I modified system image to remove the Phone application? I understand it is part of the core functionality of the phone OS, but I am curious still. Commented Jan 28, 2011 at 21:52
  • I haven't tried to remove Phone.apk from /system/app, but I did try removing Mms.apk package. And everything worked fine. I can't see any reasons why this can't work with Phone.apk.
    – inazaruk
    Commented Jan 28, 2011 at 21:54
  • what would I have to do if I still wanted to have Phone apk available to say make calls from Google Voice application but not have it available to users otherwise (e.g. as a separate app)? Commented Jan 28, 2011 at 22:04
3

You have several options that have varying degrees of difficulty and effectiveness (depending on what you are ultimately trying to do of course):

  1. Develop your own Custom ROM that only includes only the apps and functions that you want.
  2. Root the device, and then remove system apps that you don't want.
  3. For an unrooted device, you can download one of the numerous apps that hide & lock apps like iLock. I suppose this would be useful theoretically if you had a device that wanted to implement in a business where you were letting your customers or sales people use if for a very specific function and didn't want them messing around with anything beyond that.
  4. I had a 4th option to share but I forgot it as I was typing the other three. I'll update as soon as I remember it.
2
  • It looks like as per CyanogenMod Barebones Wiki I can't just root and remove Phone.apk without causing stability issues. Plus I do want it to be available from Google Voice if not on it's own. Any idea what it would take to have that? Does it mean I'll need play around with building custom ROMs? Commented Jan 28, 2011 at 22:51
  • 1
    You want it so your phone can only call out and receive calls with Google Voice? You still need the phone.apk in order to use Google Voice. If you are trying to avoid using cell minutes you need to use SIP/VOIP. If you are trying to just use your Google Voice number and don't care about the cell minutes you can set the Google Voice app to make all calls with your GV number (but it still needs the phone.apk to do this). Let me know if I'm missing something, or just let us know exactly what the end result is that you are trying to reach.
    – Matt
    Commented Jan 29, 2011 at 0:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .