apk签名相关

最近写自动化用例发现用之前的签名文件重新签名的包安装的时候提示invalid apk,安装不上,于是要了正式的keystore,但是发现正式的keystore在使用的时候有一系列的问题,比如修改keystore密码,更改key和sha1等等,在网上找了一些资料,再次记录一下。


转载自: http://blog.csdn.net/u012049463/article/details/41822051

修改Android签名证书keystore的密码、别名alias以及别名密码

之前在测试Eclipse ADT的Custom debug keystore自定义调试证书的时候,发过一篇关于调试证书规格的博文:Eclipse ADT的Custom debug keystore所需证书规格,提到过自定义调试证书的密码和alias命名以及alias密码都是有规矩的。其实Android应用开发接入各种SDK时会发现,有很多SDK是需要靠package name和keystore的指纹hash来识别的(百度地图SDK、Facebook SDK等等…),这样如果使用默认自动生成的debug keystore的话就会给开发调试工作带来一些麻烦。这时可以通过修改正式的release keystore,生成一份“遵守规矩”的临时自定义调试证书给开发时用,就方便多了,具体方法如下:

 

1. 首先当然是先复制一份正式证书出来作为要修改为的临时调试证书。这里我们这支的keystore 的密码为hahaha,alias为silence,alias的密码为xixixi

2. 修改keystore密码的命令(keytool为JDK带的命令行工具):

keytool -storepasswd -keystore my.keystore

其中,my.keystore是复制出来的证书文件,执行后会提示输入证书的当前密码(hahaha),和新密码(android)以及重复新密码(android)确认。这一步需要将密码改为android

3. 修改keystore的alias

keytool -changealias -keystore my.keystore -alias my_name -destalias androiddebugkey

这一步中,my_name是证书中当前的alias(silence),-destalias指定的是要修改为的alias,这里按规矩来,改为androiddebugkey!这个命令会先后提示输入keystore的密码(android,已经在第二步中进行了修改)和当前alias的密码(xixixi)。

4. 修改alias的密码:

keytool -keypasswd -keystore my.keystore -alias androiddebugkey

这一步执行后会提示输入keystore密码(android),alias密码(xixixi),然后提示输入新的alias密码(android),同样,按规矩来,改为android!

以上几个操作执行后,my.keystore就是符合规矩的debug keystore了,接着在Eclipse的ADT设置中选中这个custom debug keystore即可,如下:

sdk-an5

同时还可以看到证书的MD5以及SHA1指纹。

PS:以上3步命令行并没有先后顺序。


key.alias= 别名

此别名一开始以为可以随便写,后来多次尝试发现乱写打包一定不成功,此别名要与第一次生成签名时的别名一至,由于签名不是我申请的,申请签名的同事也忘记了签名的别名,如此只好找工具看一下签名的信息了,其实工具不用找了,在jdk中有

直接keytool -list  -v -keystore xxxx.keystore -storepass 密码  签名的信息就有了



查看已有apk的签名 sha1值:
查看三方应用或是系统应用签名,把apk改成rar后缀,然后解压出来,将其中META-INF下的ANDROID.RSA文件(有的不是,反正就是.RSA文件),通过命令   keytool -printcert -file META-INF/CERT.RSA查看,keytool 命令在jdk的bin目录下,配置了jdk环境变量的可以直接输入该命令,没有配置的话就跳转到jdk的bin目录下再执行如下命令。如下:
C:\SoftwareInstallSpace\Java\jdk1.8.0_77\bin>keytool -printcert -file D:\ForComputer\chromDownload\JinfengAppV2p0\META-INF\ANDROID1.RSA


查看已有apk的版本信息:
使用aapt命令,该命令在android sdk的buildTools里面.
D:\ForWork\tools\softInstallSpace\androidstudioSDK\build-tools\24.0.1>aapt dump
badging D:\ForWork\JG_c10n2.7_20170109.apk

转载自: http://blog.csdn.net/andyddd/article/details/45307587

在使用第三方sdk时,例如百度地图,需要使用签名的sha1的值。这个值可以在eclipse->windows->preferences->Android->build里看到。

但这个值和发布key的sha1是不一样的。其实可以通过设置custom keystore的方式,使debug.keystore和发布的keystore的sha1值一样。

方法是:

1. 拷贝一份你的发布key

2. 修改这个key的别名为:androiddebugkey

3. 修改这个key的storepasswd 和 keypasswd为"android". (实际上debug.keystore这个默认生成的key的别名就是:"androiddebugkey",两个口令是“android”)

在命令窗口执行的命令如下:

keytool -changealias -keystore mykeystore.keystore -alias [old alias] -destalias androiddebugkey 

keytool -keypasswd -keystore mykeystore.keystore -alias androiddebugkey 

keytool -storepasswd -keystore mykeystore.keystore


修改时,需要知道原来发布key的alias,可以通过以下命令查看alias:

keytool -list -v -keystore mykeystore.keystore


4. 设置eclipse->windows->preferences->android->build中的custom keystore为你这个改完口令的key文件,设置完成后,可以看到,这个key的sha1值和发布key的sha1值一样。


5. 拷贝这个key到同事的机器上,并设置custom keystore为这个key



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中,APK签名是一种用于验证应用程序的完整性和来源的安全机制。通过对APK文件进行签名,可以确保应用程序在安装和更新过程中没有被篡改或恶意修改。 Android支持多种应用签名方案,包括v1、v2、v3和v4方案。v1方案是基于JAR签名,是最早引入的签名方案。v2方案是在Android 7.0引入的APK签名方案,提供了更强的安全性和完整性保护。v3方案是在Android 9.0引入的APK签名方案,进一步增强了应用程序的安全性。v4方案是在Android 11.0引入的APK签名方案,提供了更多的功能和安全性。 要对APK进行签名,可以使用命令行工具或者使用Android开发工具包(SDK)提供的工具。一个常见的签名操作是使用Java命令行工具执行签名操作,具体命令如下: ``` java -jar signapk.jar platform.x509.pem platform.pk8 input.apk output.apk ``` 这个命令将使用指定的签名证书和私钥对输入的APK文件进行签名,并生成一个新的已签名APK文件。 通过对APK进行签名,应用程序将获得系统权限。具体的权限可以在AndroidManifest.xml文件中查看,该文件位于frameworks/base/core/res/目录下。如果将应用程序的签名预置到系统中,应用程序将具有更多的系统权限,而如果使用应用程序自身的签名,则只会具有普通权限。 总结起来,APK签名是一种用于验证应用程序完整性和来源的安全机制,在Android中支持多种签名方案。通过对APK进行签名,应用程序可以获得系统权限。 #### 引用[.reference_title] - *1* *3* [android apk 签名(平台和普通签名)](https://blog.csdn.net/topsecrethhh/article/details/103376745)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Android apk签名原理](https://blog.csdn.net/weixin_42600398/article/details/122843107)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值