android源码签名
❶ 如何给Android应用程序签名
Android系统要求所有程序必须经过数字签名才能安装,否则系统将不允许安装或运行此程序。无论是模拟器还是真实手机,都需要为应用程序设置数字签名。因此,如果要在设备或模拟器上调试程序,必须先为其设置数字签名。
所有程序都必须签名,未签名的程序将无法安装。可以使用自签署证书签署应用程序,无需授权凭证。系统仅会在安装时检查签名证书的有效期,即使在安装后证书过期,应用程序仍可正常启用。
使用标准工具Keytool和Jarsigner生成密钥来签名应用程序的.apk文件。Android SDK工具在调试时为应用程序签名,而ADT插件和Ant编译工具提供了两种签名模式:debug模式和release模式。
在debug模式下,编译工具使用JDK中的Keytool创建密钥,并通过已知方法和密码每次编译时签名应用程序的.apk文件。因为密码是已知的,所以工具无需每次编译时提示输入密钥。
当应用程序调试完毕准备发布release版本时,可以在release模式下编译。在这种模式下,编译工具不会签名.apk文件,需要自己生成密钥和密钥库,然后使用JDK中的Jarsigner工具签名.apk文件。
在发布release版本时,可以设置JAVA_HOME环境变量,或者在Windows系统环境变量PATH中添加Keytool的JDK路径。导出未签名的.apk文件后,使用Jarsigner和自己的密钥库签名,如果没有密钥库,可以使用Keystore创建密钥和密钥库。
将签名过程写成一个bat文件,只需运行该bat文件即可完成签名。下面给出一个完整的bat文件示例:
注释指令:
echo **********************************************************
if exist d:sign/MyFirstApp.keystore goto sign
创建签名文件MyFirstApp.keystore:
keytool -genkey -alias MyFirstApp -keyalg RSA -validity 40000 -keystore MyFirstApp.keystore
开始签名:
jarsigner -verbose -keystore MyFirstApp.keystore -signedjar MyFirstApp_signed.apk MyFirstApp.apk MyFirstApp.keystore
如果已经有一个密钥库,可以使用它来签名.apk文件。完成签名后,最好再压缩.apk文件,使用Android SDK安装路径下tools文件夹里的zipalign工具进行压缩。
按照以上步骤签名、压缩后,将压缩后的文件复制到手机上即可正常安装运行。
❷ android开发 怎么给apk文件用已有的签名文件进行签名,不用eclipse
给apk文件签名主要分三步:
1、创建证书
2、签名
3、优化(可选)
1)使用jdk的keytool工具生成签名用的证书> keytool -genkey -v -alias CERT -keyalg RSA -keysize 2048 -validity 10000 -keystoreCERT.keystore 创建过程需要输入一些标识信息和密码,一些重要的参数值说明如下(根据自己的需要要进行相应的修改): CERT.keystore ---- 证书保存的文件名 CERT ---- 证书的别名 10000 ---- 10000天的有效期 2048 ---- 默认为1024 bits,Android 建议使用2048 bits或更高其他的详细信息可以使用keytool -help查看帮助 证书生成后使用如下命令可以查看证书的信息:> keytool -list -alias CERT -keystore CERT.keystore
2)使用jdk的jarsigner工具对apk文件签名> jarsigner -verbose -keystore CERT.keystore to_sign.apk CERT 签名过程需要输入证书的密码,一些重要的参数值说明如下(根据自己的需要要进行相应的修改): CERT.keystore ---- 证书保存的文件名 CERT ---- 证书的别名 待签名的apk文件根根目录下如果有文件夹“META-INFO”,请先删除(重新签名就需要这样做)。如果不想创建过程输出太多信息,可以删除“-verbose” 。上述签名会直接覆盖原来的文件,如果不想被覆盖而签名为另外的新文件 signed.akp,只需将 to_sign.apk 改为 -signedjar to_sign.apk signed.akp 即可。签名后可以使用如下命令验证是否签名成功: > jarsigner -verify to_sign.apk 如果需要查看更详细的验证信息,可修改为:> jarsigner -certs -verbose -verify to_sign.apk
3)使用android sdk的zipalign工具优化已签名的apk文件> zipalign -v 4 unaligned.apk aligned.apk 注意要在签名后再zipalign。这个工具不是jdk自带的,而是在%ANDROID_HOME%\tools\zipalign.exe。
❸ 如何对android的apk签名进行验证
在Android开发中,确保应用的安全性和完整性至关重要。其中一个重要步骤是对APK文件进行签名。签名不仅可以验证应用的真实身份,还能确保应用在安装过程中没有被篡改。下面是一个详细的签名流程,适用于希望深入了解签名过程的开发者。
首先,我们需要进入命令行模式。可以通过菜单键调用命令提示符(cmd)。然后,我们需要指定JDK安装目录下的Bin子目录。如果JDK安装在E盘,我们可以直接进入E盘,再进入JDK的安装目录。接下来,通过执行keytool.exe工具,创建一个keystore文件。执行命令如下:
keytool -genkeypair -alias mydemo -keyalg RSA -validity 100 -keystore mydemo.keystore
这条命令包括几个参数:-genkeypair指定生成密钥对,-alias用于指定别名,-keyalg用于指定密钥算法,-validity设置证书的有效期,-keystore指定了证书存储的路径。
执行命令后,系统会要求输入证书的详细信息,包括密码、姓名、组织等。完成后,keystore文件即创建完成,可以保存在指定目录。
接下来,我们需要对未签名的APK文件进行签名。使用JDK安装目录下的jarsigner.exe工具,执行如下命令:
jarsigner -verbose -keystore mydemo.keystore -signedjar Notes.apk Notes.apk mydemo.keystore
这条命令中,-verbose参数用于生成详细的输出,-keystore参数指定了存储证书的路径,-signedjar参数用于指定签名后的APK文件、未签名的APK文件和证书别名。
完成签名后,我们还需要对APK进行优化。在SDK目录下的tool目录下,找到zipalign.exe工具。执行如下命令:
zipalign -f -v 4 Notes.apk Notes.apk
这个命令中,-f参数表示强制覆盖已有文件,-v参数表示生成详细的输出,4表示基于4字节对齐。执行后,会生成一个新的优化过的APK文件,这个文件可以对外发布。
整个过程完成后,我们就可以得到一个签名并优化过的APK文件,确保其安全性和完整性。