安卓APK安装包如何签名求教程

安卓APK安装包如何签名求教程,第1张

两种方式,一种开发工具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 系统签名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9655966.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存