How to sign Android app with system signature?
AndroidAndroid Problem Overview
I've downloaded and compiled Android 2.1 version with signed-google_ion-ota-14721.zip
image for my HTC phone. The compile completed successfully and so the system image flash.
How can I sign my own Android application with the system signature?
Can someone describe the whole process for signing a user application with system signature as I am completely new to the signing process.
Android Solutions
Solution 1 - Android
Finally I managed to discover a way to sign my application with the platform signature. You need to use keys located in <root-of-android-source-tree>/build/target/product/security/
and add android:sharedUserId="android.uid.system"
in your AndroidManifest.xml file.
Details from this google groups thread:
> On top of signing Android 1.6 for Dream with certificates generated by
> myself, I've also managed to sign my app with the platform certificate
> and run it with the system sharedUserId. These are the steps I took:
>
> - Build and flash to your Dream your own Android using https://web.archive.org/web/20081211205758/http://source.android.com:80/documentation/building-for-dream. Use the
> mkkey.sh script on
> https://web.archive.org/web/20091213215940/http://pdk.android.com/online-pdk/guide/release_keys.html to create
> new certificates, including x509 certificates before you do 'make'.
> - In the AndroidManifest.xml
of your application: under the <manifest>
element, add the attribute android:sharedUserId="android.uid.system"
.
> - Export an unsigned version of your Android application using Eclipse: right-click on the project >> Android Tools >> Export
> Unsigned Application Package.
> - Use <root-of-android-source-tree>/out/host/<your-host>/framework/signapk.jar
to sign your app using platform.x509.pem
and platform.pk8
in <root-of-android-source-tree>/build/target/product/security
> generated earlier:
>
> java -jar signapk.jar platform.x509.pem platform.pk8 YourApp-unsigned.apk YourApp-signed.apk.
> - Install the app to your device:
>
> adb install YourApp-signed.apk
> - Run your app
> - Use adb shell ps
to confirm that your app is running as system.
Solution 2 - Android
The procedure works fine I have tried it. So long as you don’t forget to run zipalign after signing as the signing processes leaves the APK unaligned and it will NOT install. You will need to install the aligned APK.
zipalign -fv 4 YourApplication-signed.apk YourApplication-aligned.apk