Android系统要求每个Android应用程序必需要经过数字签名才可以安装到系统中,也就是说假设一个Android应用程序没有经过数字签名,是没有办法安装到系统中的!


Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定终于用户能够安装哪些应用程序。


这个数字签名由应用程序的作者完毕,并不须要权威的数字证书签名机构认证,它仅仅是用来让应用程序包自我认证的




假如改动了APK中的一个文件,或者在APK中新添�了一个文件,则须要对APK又一次签名,在ubuntu下过程例如以下:


须要keytool和jarsigner这2个命令,这2个命令在jdk中


APK ubuntu下 数字签名_jar




1:我要在APK中加入�一个新文件,打开APK是以下这种


APK ubuntu下 数字签名_应用程序_02




2:添�1个新文件log,删除META-INF(不删除有时签名完不能安装),例如以下图


APK ubuntu下 数字签名_数字证书_03


3:使用命令获取密钥


命令:


keytool -genkey -v -keystore android.keystore -alias android -keyalg RSA -validity 20000


解释:


keytool -genkey -v -keystore (生成的密钥名称) -alias (密钥别名) -keyalg RSA -validity (有效期)


Android Market强制要求全部应用程序数字证书的有效期要持续到2033年10月22日以后




须要设置password,能够随便写,可是在签名时要用到,以下的内容都是我随便填的


APK ubuntu下 数字签名_数字证书_04




4:開始签名


命令:


jarsigner -verbose -keystore android.keystore -signedjar ~/Desktop/PlayerProject.apk    PlayerProject.apk android


解释:


jarsigner -verbose -keystore (上面生成的密钥名称) -signedjar (签名后的APK路径)    (签名前的APK路径) (密钥android.keystore的别名)




这里就须要上面设置的password


APK ubuntu下 数字签名_应用程序_05




5:安装測试


APK ubuntu下 数字签名_数字签名_06