How do I manually add a file to an Android APK package?
There's a tool called aapt that is bundled with the Android SDK. You can use it to add/remove/list files in an existing apk. Run aapt without any params and it will print usage instructions. To add a file use:
aapt add MyApp.apk file1 file2 ...
or you could just open it,insert the file, goto
META-INF>MANIFEST.MF
Get the file you want to inserts
SHA1 - Checksum
Add it to the Manifest.
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 META-INF
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.