两种方式,一种开发工具eclipse,还有就是用apktool工具。I、只要Run As Android Application 过,到工作目录的bin文件夹下就能找到与项目同名的apk文件。II、 A选中项目,右键=》Andoid Tools=》Export Unsigned Application Package,直接保存,未签名的。 B选中项目,右键=》Andoid Tools=》Export Signed Application Package,后面一步步的去做,签过名的。 APK签名主要有两种:1 使用特殊的key签名可以获取到一些不同的权限。2 APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉。
1通过apktool工具解压当前apk(比如:demoapk),解压后,会生成CERTRSA文件
apktool d demoapk
备注:通过这种方式解压出来的Androidmenifestxml文件可以通过文件编辑器打开查看;
2通过keytool命令获取签名信息
keytool -printcert -file C:\Android\soft\apktool\demo\original\META-INF\CERTRSA所有者: CN=ryt, OU=ryt, O=ryt, L=nanjing, ST=china, C=cn
发布者: CN=ryt, OU=ryt, O=ryt, L=nanjing, ST=china, C=cn
序列号: 12893889
有效期开始日期:
证书指纹:
MD5: 1A:0F:52:94:8D:DB:7A:E9:7A:7E:A5:3B:A3:A7:F9:39
SHA1: 89:57:4E:E2:1F:CB:68:CB:66:80:D6:29:57:92:AD:AC:51:4F:76:F2
SHA256: BF:FB:9C:67:E1:7B:49:26:4A:D9:84:9D:48:DA:C1:4F:00:77:74:15:27:90:95:D0:B3:D8:0A:EA:2F:81:F1:B9
签名算法名称: SHA256withRSA
版本: 3
扩展:
#1: ObjectId: 252914 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: C3 D6 E3 9F C3 F3 1E BE 6E F9 BC 35 6F 8B 21 52 n5o!R
0010: 12 38 AD BC 8
]
]
3查看mykeystore签名文件的签名信息
keytool -list -keystore C:\Android\workspace\mykeystore
输入密钥库口令:
密钥库类型: JKS
密钥库提供方: SUN
您的密钥库包含 1 个条目
my, 2016-6-15, PrivateKeyEntry,
证书指纹 (SHA1): 89:57:4E:E2:1F:CB:68:CB:66:80:D6:29:57:92:AD:AC:51:4F:76:F2
因工作需要对系统的wifi和以太网进行配置,需要获取到系统权限以后才能进行 *** 作,因此研究了下对apk 进行系统签名以获取系统权限,其实本来打算如果root可以的话直接通过root的方式(设备已经root),后来找了半天发现没有api进行修改,无奈只能进行系统签名了,有童鞋知道root方式修改不妨告诉我一下。
这些文件可以问系统厂商获取,如果是原生系统可以到系统源码目录下获取。
如果报以下的错误 ,这时候就用到准备的libconscrypt_openjdk_jniso 文件
为了检测我们的应用是否已经签名成功 可以获取系统权限,看看能否获取到。
结果:
在上一种方式中,我们成功对我们的apk进行了系统签名,并且能使用系统权限,但是必须每次打包出apk再进行签名 对调试很不方便,下面我们可以生成带有系统签名的签名文件,在项目中使用,就不需要每次手动进行签名。
bubble可以替换为自己喜欢的名称,这一步要输入密码,我尝试输入其他不行,只能输入android。
bubble 可替换为自己喜欢的password和alias
到这里 两种对app进行系统签名的方式完成,如有不足,欢迎指出
## 使用自动签名的方法
1 创建或者修改 ~/gradle/gradleproperties
2 在gradleproperties 文件中增加下面的内容(具体内容需要根据实际来更改)
STORE_PASSWORD=xysys
KEY_ALIAS=xxsasd
KEY_PASSWORD=988asdf
3 这样每次build的时候,总是用keystore来签名,不会用生成的debug来签名了
## 使用命令行来构建APK
进入项目最高层目录,找到 gradlew 执行下面的命令来构建所有类型的APK,自动使用官方签名
## 验证签名是官方签名
1 使用keytool 获取apk包的指纹
例如:
2 查看keystore的指纹
apk的签名指纹跟keystore中的指纹一致表明该包是用keystore来签名的。
注意:若java版本是7之前的,需要先把apk解压,
来看包的指纹。
对apk签名的步骤(适用于找回apk,对空包进行签名)
1复制java的jdk,bin目录的绝对路径(如果是默认安装应该和我的路径差不多)C:\Program Files\Java\jdk180_111\bin
2进入cmd窗口,进入bin目录(如果是新手,输入cd C:\Program Files\Java\jdk180_111\bin)
输入命令 jarsigner -verbose -keystore d:\project\360Wallpaperkeystore -signedjar d:\qihusignapk d:\Qihuunsignapk QIHU360
将签名修改成自己签名的路径 ,生成的apk文件的名字路径修改一下,再输入需要签名的apk文件路径,最后输入自己签名的别名就可以
(新手,欢迎指正)
一般在证书包里面有个文档,上面都是有签名的。
如果没有,那么久需要下载一个工具GenSignature安装到手机上面。
安装好上述工具之后把apk包下载到手机上安装好。
安装好之后打开GenSignature,然后输入你apk文件的包名,就可以查看签名了。
使用手机的platform平台签名后,能够获取到系统权限。
1、在AndroidManifestxml设置android:sharedUserId="androiduidsystem"。
2、编译通过后,导出未签名的apk。
3、使用\out\host\Linux-x86\framework\signapkjar \build\target\product\security\platformpk8 +platformx509pem
4执行“Java -jar signapkjar platformx509pem platformpk8 testapk testSignedapk”做平台签名得到testSignedapk。
testapk必须放在上面同一个目录之下。
以上就是关于安卓APK安装包如何签名求教程全部的内容,包括:安卓APK安装包如何签名求教程、如何查看apk和签名文件的签名信息、Android apk 系统签名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)