如何使用系统签名对Android应用进行签名?


72

我已经signed-google_ion-ota-14721.zip为HTC手机下载并编译了带有图片的Android 2.1版本。编译成功完成,因此系统映像闪烁。如何使用系统签名对自己的Android应用程序进行签名?

有人可以描述使用系统签名对用户应用程序进行签名的整个过程吗,因为我对签名过程是完全陌生的。

Answers:


118

最终,我设法找到了一种使用平台签名对应用程序进行签名的方法。您需要使用位于AndroidManifest.xml文件中的密钥<root-of-android-source-tree>/build/target/product/security/并添加android:sharedUserId="android.uid.system"到其中。

这个Google网上论坛线程的详细信息:

除了使用自己生成的证书对Android 1.6 for Dream进行签名之外,我还设法使用平台证书对我的应用程序进行了签名,并使用系统sharedUserId运行它。这些是我采取的步骤:

  • 使用https://web.archive.org/web/20081211205758/http://source.android.com:80/documentation/building-for-dream来构建自己的Android并将其刷新到Dream 。在https://web.archive.org/web/20091213215940/http://pdk.android.com/online-pdk/guide/release_keys.html上使用mkkey.sh脚本 来创建新证书,包括x509证书,然后再进行操作做吧'。
  • AndroidManifest.xml应用程序的中:在<manifest>元素下,添加属性android:sharedUserId="android.uid.system"
  • 使用Eclipse导出未签名版本的Android应用程序:右键单击项目>> Android Tools >>导出未签名应用程序包。
  • 使用<root-of-android-source-tree>/out/host/<your-host>/framework/signapk.jar你的应用程序中使用签名platform.x509.pemplatform.pk8<root-of-android-source-tree>/build/target/product/security 前面生成:

    java -jar signapk.jar platform.x509.pem platform.pk8 YourApp-unsigned.apk YourApp-signed.apk.
    
  • 将应用安装到您的设备:

    adb install YourApp-signed.apk
    
  • 运行你的应用
  • 使用adb shell ps要确认您的应用程序正在运行的系统。

1
但是/ build / target / product / security /我可以在哪里获得此路径?
艾哈迈德(Ahmed)2012年

2
@ user1155908:它在android os源代码中。您必须下载Android开放源代码项目(AOSP):source.android.com/source/downloading.html
m-ric

1
@pablisco密码为“ android”。另请参见此答案,以了解其他方法来签署APK。
Lekensteyn

2
这种方法仍然有效吗?释放键链接似乎已损坏!
code2be 2016年

2
嗨,我已经用android源代码中的证书对我的应用程序进行了签名。但是我没有在该源中找到SignApk.jar文件。因此,我从git中明确下载并签署了我的Apk。但是,在安装应用程序时,出现此错误:INSTALL_FAILED_SHARED_USER_INCOMPATIBLE。有人可以帮忙吗?
Juhi Matta

10

该程序工作正常,我已经尝试过了。只要您不要忘记在签名后运行zipalign,因为签名过程会导致APK未对齐且不会安装。您将需要安装对齐的APK。

zipalign -fv 4 YourApplication-signed.apk YourApplication-aligned.apk
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.