sva*_*rog 107 android apk android-install-apk
我用apktool解码了一个APK(因为原始源代码丢失了)所以我可以修复布局xml文件的一些问题.然后我用apktool重新安装它,当我尝试在我的设备上安装它时(使用adb:adb install appname.apk)它给了我这个错误:
[INSTALL_PARSE_FAILED_NO_CERTIFICATES]
Run Code Online (Sandbox Code Playgroud)
然而原来的apk是由一个密钥库(在eclipse IDE上)签名的,这个不是,我怎么能用它在Eclipse之外的原始keystone文件正确签名呢?
小智 254
使用创建密钥
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Run Code Online (Sandbox Code Playgroud)
然后使用以下方式签署apk:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name
Run Code Online (Sandbox Code Playgroud)
pat*_*ckf 61
使用此工具(使用Google的新apksigner):
https://github.com/patrickfav/uber-apk-signer
免责声明:我是开发人员:)
您需要生成一次密钥库并使用它来签署您的unsigned
apk.使用JDK中提供的keytool
%JAVA_HOME%/bin/
keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app
Run Code Online (Sandbox Code Playgroud)
zipalign
这是Android SDK提供的工具,例如,%ANDROID_HOME%/sdk/build-tools/24.0.2/
如果您想将apk上传到Play商店,则必须采用强制优化步骤.
zipalign -p 4 my.apk my-aligned.apk
Run Code Online (Sandbox Code Playgroud)
注意:使用旧版jarsigner
时需要在签名后进行zipalign .使用新apksigner
方法时,请在签名之前进行(令人困惑,我知道).在apksigner工作正常之前调用zipalign是因为apksigner保留了APK对齐和压缩(与jarsigner不同).
您可以验证对齐方式
zipalign -c 4 my-aligned.apk
Run Code Online (Sandbox Code Playgroud)
使用jarsigner
与keytool一样的JDK发行版, %JAVA_HOME%/bin/
并使用它,如下所示:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name
Run Code Online (Sandbox Code Playgroud)
并且可以通过验证
jarsigner -verify -verbose my_application.apk
Run Code Online (Sandbox Code Playgroud)
Android 7.0引入了APK Signature Scheme v2,这是一种新的应用程序签名方案,可提供更快的应用程序安装时间,并提供更多保护,防止对APK文件进行未经授权的更改(有关详细信息,请参阅此处和此处).因此,Google实现了自己的apk签名者apksigner
(duh!).脚本文件可以在%ANDROID_HOME%/sdk/build-tools/24.0.3/
(.jar在/lib
子文件夹中)找到.像这样使用它
apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name
Run Code Online (Sandbox Code Playgroud)
并且可以通过验证
apksigner verify my-app.apk
Run Code Online (Sandbox Code Playgroud)
Pel*_*let 13
最快的方法是使用debug keystore进行签名:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore ~/.android/debug.keystore app.apk androiddebugkey -storepass android
Run Code Online (Sandbox Code Playgroud)
或在Windows上:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore %USERPROFILE%/.android/debug.keystore test.apk androiddebugkey -storepass android
Run Code Online (Sandbox Code Playgroud)
你使用jarsigner签署APK.您不必使用原始密钥库进行签名,只需生成一个新密钥库即可.阅读详细信息:http://developer.android.com/guide/publishing/app-signing.html
归档时间: |
|
查看次数: |
153890 次 |
最近记录: |