Android APK 加固重新签名

简介: 打包APK通过 ./gradlew assembleRelease 命令打包,此时的apk没有加固,不符合安全需要。登录腾讯云执行加固操作,加固使用 腾讯云 -> 移动应用安全 -> 应用安全 加固方案,加固服务需要认证,自行选择适合自己的方式就行了。

APK 加固流程


打包APK


通过 ./gradlew assembleRelease 命令打包,此时的apk没有加固,不符合安全需要


登录腾讯云执行加固操作


加固使用 腾讯云 -> 移动应用安全 -> 应用安全 加固方案,加固服务需要认证,自行选择适合自己的方式就行了

367b6a06ddfd34e770d3f1159648c6d9.png


认证成功后,进入 应用加固 页面


bb68db792fd2a6319e82fd410e6e47ff.png


点击去加固,点击 立即加固 ,上传应用成功后如下


image.gif1ae812f20848fc795919d54d03fe4cc5.png


点击 确认加固,  在线加固需要几分钟,加固完成后有加固结果显示


image.gifda54aabae42da25b0e341301c3d760da.png


查看加固结果

image.gifc520f89c7b5a1f5b320de11b3a66ab38.png

此时加固就完成了,下载加固包就行了


重新签名


由于腾讯云应用安全需要将APK签名信息删除后才能加固,所以加固后的安装包是没有签名信息的,现在需要对加固包重新签名


使用 JDK 中的签名工具 jarsigner


运行 jarsigner,如果没有设置PATH环境变量,那可以从JDK安装路径下的bin目录中找到

$ jarsigner -help
用法: jarsigner [选项] jar-file 别名
       jarsigner -verify [选项] jar-file [别名...]
[-keystore <url>]           密钥库位置
[-storepass <口令>]         用于密钥库完整性的口令
[-storetype <类型>]         密钥库类型
[-keypass <口令>]           私有密钥的口令 (如果不同)
[-certchain <文件>]         替代证书链文件的名称
[-sigfile <文件>]           .SF/.DSA 文件的名称
[-signedjar <文件>]         已签名的 JAR 文件的名称
[-digestalg <算法>]        摘要算法的名称
...


签名命令

jarsigner -verbose -keystore keystore文件路径 -signedjar 签名后生成的apk路径 待签名的apk路径 alias别名


个人本地apk添加签名,签名文件 keystore 和 apk 都在同一个目录下, 签名后的 apk1.apk 也在本地


$ jarsigner -verbose -keystore .\my-release-key.keystore -signedjar .\myapp1.apk .\myapp.apk my-key-alias
输入密钥库的密码短语:
   正在添加: META-INF/MANIFEST.MF
   正在添加: META-INF/MY-KEY-A.SF
   正在添加: META-INF/MY-KEY-A.RSA
  正在签名: lib/arm64-v8a/libbetter.so
  正在签名: lib/arm64-v8a/libc++_shared.so
  ...
    正在签名: assets/0OO00l111l1l
  正在签名: tencent_stub
    [可信证书]
jar 已签名。
警告:
签名者证书为自签名证书。


这样就签名成功了。



目录
相关文章
|
4月前
|
Android开发
基于android-11.0.0_r39,系统应用的手动签名方法和过程
本文介绍了基于Android 11.0.0_r39版本进行系统应用手动签名的方法和解决签名过程中遇到的错误,包括处理`no conscrypt_openjdk_jni-linux-x86_64`和`RegisterNatives failed`的问题。
229 2
|
6月前
|
安全 Java Android开发
05. 【Android教程】Android 程序签名打包
05. 【Android教程】Android 程序签名打包
74 1
|
4月前
|
安全 Java Android开发
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
如何解压OTA升级包、编辑升级包内容(例如移除不需要更新的分区)、重新打包、签名以及验证OTA文件的过程。
369 2
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
|
4月前
|
Java Android开发 Windows
使用keytool查看Android APK签名
本文介绍了如何使用Windows命令行工具和keytool查看APK的签名信息,并提供了使用AOSP环境中的signapk.jar工具对APK进行系统签名的方法。
422 0
使用keytool查看Android APK签名
|
4月前
|
Android开发
解决android apk安装后出现2个相同的应用图标
解决android apk安装后出现2个相同的应用图标
383 2
|
4月前
|
Android开发 数据安全/隐私保护
Android Studio创建JKS签名遇到的坑
Android Studio创建JKS签名遇到的坑
173 1
|
4月前
|
Android开发
将AAB(Android App Bundle)转换为APK
将AAB(Android App Bundle)转换为APK
294 1
|
4月前
|
Android开发 开发者
Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)
Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)
352 1
|
5月前
|
Android开发 Java 数据安全/隐私保护
「移动端」Android平台签名证书(.keystore)生成指南
发布Android APK需签名证书,步骤如下: 1. 安装JRE,如[JRE8](https://www.oracle.com/technetwork/java/javase/downloads/index.html),并添加到环境变量。 2. 使用`keytool -genkey`命令生成证书,例如: ``` keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore ``` 输入相关个人信息及密码。
833 0
「移动端」Android平台签名证书(.keystore)生成指南
|
5月前
|
Android开发
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
155 0