tags:

views:

23

answers:

1

How do I manually add a file to an Android APK package?

+2  A: 

An apk is a jar which is a zip. So you can use any tool that manipulates zips.

There is an added complication however: the Android platform requires all files in the apk (except for the files in the MANIFEST directory) to be signed. So you need to call jarsigner again to sign all packages. You should then also call zipalign again.

You must sign the modified apk with the same key that was used to sign the original apk. This is the whole point of the signature: it indicates that the package has not been tampered with without the approval of the signer. (Actually, you can sign with a different key, but then you won't be able to access any data that was produced by the original application or vice versa.)

The ant scripts provided with the Android development kit contain automation to run jarsigner and zipalign.

Gilles