Android反编译之修改应用包名
前言
近期看B站数码区这条视频 【大米】破处理器,它能行吗?K50电竞版评测_哔哩哔哩_bilibili 时,发现了UP主的一个比较骚的操作:

嗯?apk文件可以直接拿来使用修改包名的?作为 Android 开发者的我竟然都不知道,是不是太 low 了点儿。。接下来一块看看怎么修改apk的包名吧。
基本操作
以 Android 应用的跑分软件 com.primatelabs.geekbench5_5.4.4.apk 为例。
apk 解包
先确认本地是否安装 Java 环境,JDK的bin文件夹目录是否引入到 环境变量PATH下。确认完毕后,下载 apktool 工具并保存到任意一环境变量目录下。

cmd执行:
apktool d com.primatelabs.geekbench5_5.4.4.apk # 后面是apk路径
修改 apk 信息
本次修改的应用信息除了应用包名外,另外一个就是应用名。修改的方法大同小异,寻找解包后文件夹内对应字符,进行替换。
修改包名
包名使用的地方可能比较多,这里使用Notepad++进行文件夹内查找:

可以看到修改的地方并不多,且并不包含.so等二进制文件。接下来可以双击定位到每一行手动修改,也可以使用文件夹内查找并替换的功能。这里把原有的包名com.primatelabs.geekbench5修改为cn.wx2020.testbench。
修改文件名
文件名的路径是比较固定的,一般就在 res\values\strings.xml中,如果存在翻译的话还可以去找对应资源文件夹,比如中文就在 res\values-zh-rCN\strings.xml 中。
接下来搜索 app_name:

把原有的 Geekbenck 5 改成 Testbench。
重打包
cmd 执行:
apktool b com.primatelabs.geekbench5_5.4.4 # 后面是解包后生成的文件夹路径
重签名
针对最新的 Android 11 系统,需要三个步骤:v1签名、4k对齐、v2签名;针对Android 10 以及以下的系统,使用v1签名的步骤即可。
v1签名
生成签名证书
keytool -genkey -v -keyalg RSA -keysize 1024 -sigalg SHA1withRSA -validity 20000 -keystore {签名文件} -alias {签名别名} -keypass {key密码} -storepass {store密码}
进行签名
jarsigner -keystore {签名文件} -storepass {store密码} -keypass {key密码} -signedjar {签名后的APK文件} {待签名的APK文件} {签名别名}
执行以下命令前,确保Android SDK build-tools文件夹下的特定版本路径存在于 环境变量PATH 下。这里使用当前最新的 31.0.0 版本。
4K对齐
zipalign 4 {已签名的APK文件} {对齐后的APK文件}
v2签名
apksigner.bat sign --ks {签名文件路径} --ks-key-alias {签名别名} --ks-pass pass:{KeyStore_Password} --key-pass pass:{Key_Password} --out {V2签名后的APK文件} {对齐后的APK文件}
到此,基本操作就结束了。但其实基本操作并不是彻底地修改包名。彻底地修改包名需要配合修改代码文件才可以。
高级操作
未完待续。。。
参考地址
Android反编译之修改应用包名的更多相关文章
- 工欲善其事,必先利其器 软件工具开发关键词 protractor自动化测试工具 RegexBuddy正则 CodeSmith,LightSwitch:代码生成 CheatEngine:玩游戏修改内存值必备神器 ApkIDE:Android反编译工具 Reflector:反编译dll动态链接库
工欲善其事,必先利其器 本文版权归翟士丹(Stan Zhai)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利. 原文地址:http ...
- 将JAR包反编译,修改后重新打包(转)
将JAR包反编译,修改后重新打包(转) 在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar.使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间.有的第三方工具,提供具体的 ...
- 在Android Studio中修改应用包名
紧凑模式下(包名中的每个字段紧贴在一起,例如),右键单击包名,Refactor -> Rename,只能修改包名最外层的字段 分离模式下(点击设置,将Hide Empty Middle Pack ...
- Android反编译(三)之重签名
Android反编译(三) 之重签名 [目录] 1.原理 2.工具与准备工作 3.操作步骤 4.装X技巧 5.问题 1.原理 1).APK签名的要点 a.所有的应用程序都必须有数字证书 ,Androi ...
- Android反编译(二)之反编译XML资源文件
Android反编译(二) 之反编译XML资源文件 [目录] 1.工具 2.反编译步骤 3.重新编译APK 4.实例 5.装X技巧 6.学习总结 1.工具 1).反编译工具 apktool http ...
- Android 反编译
Android 反编译 步骤:1.下载apktool 工具,这一步 主要是反编译 xml 文件. 步骤:2 把xx.smali 文件转为java 工具 (单个) 图形界面 下载dex2jar 和xj ...
- 转 谈谈android反编译和防止反编译的方法
谈谈android反编译和防止反编译的方法 android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原. 因此开发人员如果不准备开源自己的项 ...
- 谈谈android反编译和防止反编译的方法(转)
谈谈android反编译和防止反编译的方法(转) android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原. 因此开发人员如果不准备开源自己的 ...
- Android反编译odex然后重新打包
#Android反编译odex然后重新打包 最近不知道怎么回事,突然把我那刷了氧OS的root了,然后就开始好奇起来氢OS所带有的那些本地化的东西,比如通话录音就是典型的一个之一.其中也做了很多的尝试 ...
- Android反编译(一)之反编译JAVA源码
Android反编译(一) 之反编译JAVA源码 [目录] 1.工具 2.反编译步骤 3.实例 4.装X技巧 1.工具 1).dex反编译JAR工具 dex2jar http://code.go ...
随机推荐
- linux文本编辑YCM报错
linux文本编辑YCM报错 刚从github安装了vimplus,可是发现存在不少的问题.索性给直接记录一下. The ycmd server SHUT DOWN (restart with ':Y ...
- Django:数据库驱动安装
import pymysql pymysql.install_as_MySQLdb() 常见MySQL驱动介绍: MySQL-python:也就是MySQLdb.是对C语言操作MySQL数据库的一个简 ...
- 快速了解DevSecOps:构建安全软件开发的基石!
关键词 DevSecOps - 在不影响敏捷性的前提下,将安全充分融入到SDLC的所有环节中 SDLC-软件交付生命周期 SCA-软件组成分析-用于识别和检测软件中使用的开源/第三方组件的已知安全漏洞 ...
- 4.4 C++ Boost 数据集序列化库
Boost 库是一个由C/C++语言的开发者创建并更新维护的开源类库,其提供了许多功能强大的程序库和工具,用于开发高质量.可移植.高效的C应用程序.Boost库可以作为标准C库的后备,通常被称为准标准 ...
- 形象谈JVM-第四章-JVM内存结构
给我一个CPU,给我一块内存,我来执行一段代码. 我要如何分配呢? new User(); 这里有一个有一个User类,如果我要new出来User对象,必须先知道它长什么样子,我先搞一块区域出来,把U ...
- langchain中的LLM模型使用介绍
简介 构建在大语言模型基础上的应用通常有两种,第一种叫做text completion,也就是一问一答的模式,输入是text,输出也是text.这种模型下应用并不会记忆之前的问题内容,每一个问题都是最 ...
- WPF学习:Slider — 冒泡显示值
想做一个下图所示的Slider,以冒泡的方式显示其Value值,该怎么做呢? 功能要求,当鼠标放在滑块上的时候,冒"泡"显示值:当滑块移动的时候,"泡"跟随移动 ...
- Jquery ajax方式提交表单
Jquery ajax方式提交表单,目前用过的有两种方式: 1.引人jquery.js和jquery.easyui.min.js后,用下面的方法: $('#checkForm1').form('sub ...
- WPF动画入门教程
Windows Presentation Foundation (WPF)是一种用于创建Windows客户端应用程序的UI框架.它让我们能够创建丰富的图形界面,包括各种各样的动画效果.接下来,我们将介 ...
- Modbus转profinet网关连接位移计在1200程序控制案例
Modbus转profinet网关连接位移计在1200程序控制案例 本案例讲述了兴达易控Modbus转profinet网关(XD-MDPN100)连接现场用台达LD-E镭射位移计检测控制在1200PL ...