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 attributeandroid: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 usingplatform.x509.pem
andplatform.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.