Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Android笔记】安卓APK安装包解包、重新打包和重新签名

【Android笔记】安卓APK安装包解包、重新打包和重新签名

作者头像
kr
发布于 2022-06-15 10:06:44
发布于 2022-06-15 10:06:44
7.1K00
代码可运行
举报
文章被收录于专栏:个人教程个人教程
运行总次数:0
代码可运行

解包&重新打包

前提

已安装Java且Java版本在1.8以上(我用的jdk-17.0.2

下载ApkTool工具

ApkTool官网安装说明页:Apktool - How to Install (ibotpeaches.github.io) 按照说明进入下载页下载apktool.jar文件,例如目前的下载页为:iBotPeaches / Apktool / Downloads — Bitbucket 选择最新的版本下载即可,例如目前是apktool_2.6.1.jar

解包

命令

前一个命令会解包到指定文件夹,后一个命令会解包到以[待解包的apk]文件名来命名的文件夹

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java  -jar  apktool_2.6.1.jar  d  [待解包的apk]  -o  [输出文件夹名]

java  -jar  apktool_2.6.1.jar  d  [待解包的apk]

重新打包

jarsigner签名版本为v1

命令

使用如下命令打包后打包的.apk文件会生成在[待打包的文件夹]内的dist目录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java -jar apktool_2.6.1.jar b [待打包的文件夹]

重新签名

生成.jks签名文件

我使用的是以前IDEA生成的证书,生成方法如下:

  1. 新建一个空项目,点击构建(B) -> 生成部署的Bundle/APK...
  2. 在弹出的窗口中选择APK,点击下一步
  3. 找到Key store path栏,点击Creste new...进入创建证书页面。
  4. 填写完点击OK即可。记得第一行的Key store path也就是证书储存位置要选择一个自己能找到的路径。

使用jarsigner重新签名

命令
  • 这里用的是jdk-17.0.2作为示例
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"C:\Program Files\Java\jdk-17.0.2\bin\jarsigner.exe" -keystore [jks文件路径] -signedjar [签名后输出的apk文件名/路径] [待签名的apk文件名/路径] [密钥别名]

【依照提示输入密码】
  • 实际示例
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"C:\Program Files\Java\jdk-17.0.2\bin\jarsigner.exe" -keystore E:\Temp\test.jks -signedjar TestAPK_out.apk TestAPK.apk key0
报错解决

错误:文件名、目录名或卷标语法不正确。 解决:路径用了单引号(例如'C:\Program Files'),用回双引号(例如"C:\Program Files")即可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022 年 04 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
brida和frida练习hook逆向技术【上】
这是zangcc大佬用于brida和frida练习hook逆向技术的安卓apk项目,针对encrypted_password字段值练习apk解密技术。
San3an
2024/09/10
1310
Android APK 加固重新签名
通过 ./gradlew assembleRelease 命令打包,此时的apk没有加固,不符合安全需要
草帽lufei
2022/07/29
3.8K0
Android APK  加固重新签名
Android 对apk进行重签名和查看签名(window 和mac)及生成签名
生成签名文件:其实是有很多工具可以做到,这里不过是想用命令来生成 其命令如下:生成的签名默认在c盘根目录下 keytool -genkey -alias aaaa.keystore -keyalg RSA -validity 2000 -keystore newandroid.keystore 备注说明:-alias后面跟着的是别名(android.keystore) -keystore后面跟着的是具体的签名文件(及签名文件的命名–newandroid.keystore) 当使用这个命令生成后,会有个警告,不符合pkcs12标准,需要消除掉(也可以不消除),使用如下命名: keytool -importkeystore -srckeystore android.keystore -destkeystore newandroid.keystore -deststoretype pkcs12 将上面的android.keystore签名迁移到newandroid.keystore中,其各种参数不变。 截图如下
全栈程序员站长
2022/08/10
6.5K0
Android 对apk进行重签名和查看签名(window 和mac)及生成签名
【Android 逆向】修改 Android 的 apk 安装包内的文件并重新打包 ( apktool_2.6.0.jar 下载和使用 | zipalign 文件对齐 | apksigner 签名 )
在 https://ibotpeaches.github.io/Apktool/ 页面下载最新的 apktool 工具 ;
韩曙亮
2023/03/30
2.3K0
破解APK修改资源文件
本文,乃是反编译(逆向)首战,在此,特意记录过程中遇到的点点滴滴问题,如有不足之处,欢迎指正~
贺biubiu
2019/06/11
10K3
android apk 签名(平台和普通签名)
因为做了太多的终端项目,客户总会有自己的apk提供,这时候各种签名问题就来了,最近整理了一下相关知识,分享给大家。
全栈程序员站长
2022/09/06
5.4K0
android apk 签名(平台和普通签名)
Android 空包签名(详细版)
可能一看标题你不知道是什么意思,我这里解释一下什么是空包签名,为什么要空包签名。那是一个风和日丽的早晨,我愉快地敲着代码,于是项目总监告诉有一个老项目维护,给了我源代码,在我修复bug运行成功之后,说要上架到应用市场,我说要上那就上呗,简简单单。然后我发现事情并不是那么简单,平台上之前上架过此应用,那还是16、17年的事情,那时我还在学校呢。而且之前的平台开发者账号找不到了,也就是那之前平台上的应用是个孤儿。平台上有这个应用再想上架的话有两个方案,一、更改包名,应用名,然后上架。二、认领应用。方案一花费的时间太长,因为不仅仅是改一个包名那么简单,里面对接的第三方SDK因为这个包名改动,那么就都要改一次配置才行,周期太长,太繁琐。于是走方案二,就有了本文。
晨曦_LLW
2021/03/28
2.1K0
Android自动化构建之-Ant多渠道打包(上)
前言 Ant是历史比较悠久的一个自动化构建工具,Android开发者可以通过它来实现自动化构建,也可以实现多渠道打包,关于apk打包的方式一般有Ant、Python、Gradle三种,这三种打包方式都各自有优点和缺点,本篇博文先给大家介绍如何使用Ant来实现自动构建和多渠道发布。 开发环境 Window7 Ant jdk android sdk mac系统下所需要的运行环境也是类似的,我们都需要配置Ant、jdk、sdk的环境变量,我们可以看一下window下是环境变量配了些什么: ANT_HOME : D
巫山老妖
2018/07/20
5640
Android反编译apk并重新打包签名(Mac环境)
根据apktool网站提示的下载方法,右击wrapper script,链接存储为apktool,不要带拓展名
Zachary46
2018/09/12
5.8K0
Android反编译apk并重新打包签名(Mac环境)
用命令行 给 apk 签名
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/131439.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/01
1K0
用命令行 给 apk 签名
App安全测试——Android APK反编译
我们下载到的Android App 安装包是 Apk文件(Android Application Package) 。通过 Apk 文件,我们也可以得到这个应用的代码和资源文件,对应用进行修改。
清风穆云
2021/08/09
1.8K0
APK签名流程介绍[通俗易懂]
实际上,现在Android开发IDE自带签名功能,但是有时我们还是可能遇到自己签名apk的场景的,比如你有一个未签名的apk,但是你要adb install到device上,这时我们在adb install之前就必须对该apk进行签名处理才能install成功,这篇文章就简单的介绍下apk签名流程吧。
全栈程序员站长
2022/07/01
1.9K0
APK签名流程介绍[通俗易懂]
Ionic3 Android签名
app签名,相当于是app在Anndroid系统上的一个认证,Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中,也就是说如果一个Android应用程序没有经过数字签名,是没有办法安装到系统中的!Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。这个数字签名由应用程序的作者完成,并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。应用市场上APP签名不允许相同,也不会相同,但允许有相同的包名,相同签名的APP高版本可以覆盖低版本。
spilledyear
2018/08/21
1.3K0
Ionic3 Android签名
Ant 打包安卓apk(1)-手动档
1. 根据资源文件和 AndroidManifest.xml 生成 R.java 文件  2. 处理 aidl,生成对应的 java文件,如果没有 aidl,则跳过  3. 编译工程源码(主项目,库)src 目录下所有的源码,同时上边生成的R.java和aidl生成的java文件也会被编译生成相应的 class 文件  4. 将第3步生成的class文件打包生成 .dex 文件  5. 将资源文件打包,生成初始的apk  6. 将第 4 步生成的 .dex 文件加入到apk中生成未签名的包  7. apk 签名
acc8226
2022/06/27
6040
Ant 打包安卓apk(1)-手动档
一文了解Android游戏SDK开发
SDK(Software Development Kit)是软件开发工具包的缩写,一般来说,SDK是用于给开发人员提供进行应用程序开发的工具的,这样程序员就可以快速的开发出应用软件,省去了编写硬件代码和基础代码框架的过程,我们常见的Android SDK就属于这一类。除了这种比较大的SDK,我们平时开发的library也属性SDK,只不过功能比较单一,适用的场合也比较简单,如短视频SDK、推送SDK,分享SDK等。 而我们所做的游戏SDK主要是用于第三方游戏开发接入我们的账号体系和支付体系,类似于友盟分享等聚合SDK。
xiangzhihong
2020/07/15
2.5K0
一文了解Android游戏SDK开发
Android应用签名、反编译与防止二次签名
我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行。签名就代表着自己的身份即keystore。小编所在项目,遇到应用被恶意篡改的情况。新版本客户端加入了在线签名逻辑以及防止二次签名逻辑。小编对相关知识加深了理解,并运用在项目测试中,分享给大家。
用户5521279
2019/06/02
5.5K0
android 反编译后再次打包流程
使用命令如下: apktool d -f [待反编译的apk] -o [反编译之后存放文件夹] 例如:
李小白是一只喵
2020/12/31
2.6K0
编译apk遇到的问题记录
其中,文件名.tar.gz是你要解压的.tar.gz文件的名称。解压命令选项的含义如下:
天天Lotay
2023/10/15
2560
Android安全攻防战,反编译与混淆技术完全解析(上)
之前一直有犹豫过要不要写这篇文章,毕竟去反编译人家的程序并不是什么值得骄傲的事情。不过单纯从技术角度上来讲,掌握反编译功能确实是一项非常有用的技能,可能平常不太会用得到,但是一旦真的需要用到的了,而你
用户1158055
2018/01/08
1.8K0
Android安全攻防战,反编译与混淆技术完全解析(上)
万字长文带你APK反编译&重签名&aab&apks转换
反编译(Decompilation)是将已编译的程序(比如二进制代码)转换回更高级别的编程语言代码的过程。这通常用于理解程序的工作原理,进行软件审计,恢复丢失的源代码,或者进行教学研究。反编译的难度和效果取决于原程序的编译过程中丢失了多少信息(比如变量名、注释等)。
梦无矶小仔
2024/04/18
1.8K0
万字长文带你APK反编译&重签名&aab&apks转换
相关推荐
brida和frida练习hook逆向技术【上】
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验