前言

近期看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 反编译入门指南

更改 android apk 名字、包名 可双开及躲过检测

Android反编译之修改应用包名的更多相关文章

  1. 工欲善其事,必先利其器 软件工具开发关键词 protractor自动化测试工具 RegexBuddy正则 CodeSmith,LightSwitch:代码生成 CheatEngine:玩游戏修改内存值必备神器 ApkIDE:Android反编译工具 Reflector:反编译dll动态链接库

    工欲善其事,必先利其器 本文版权归翟士丹(Stan Zhai)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利. 原文地址:http ...

  2. 将JAR包反编译,修改后重新打包(转)

     将JAR包反编译,修改后重新打包(转)   在学习和开发JAVA项目中,我们经常会用到第三方提供的一些jar.使用这些第三方工具包,可以提高我们开发的效率,缩短开发的时间.有的第三方工具,提供具体的 ...

  3. 在Android Studio中修改应用包名

    紧凑模式下(包名中的每个字段紧贴在一起,例如),右键单击包名,Refactor -> Rename,只能修改包名最外层的字段 分离模式下(点击设置,将Hide Empty Middle Pack ...

  4. Android反编译(三)之重签名

    Android反编译(三) 之重签名 [目录] 1.原理 2.工具与准备工作 3.操作步骤 4.装X技巧 5.问题 1.原理 1).APK签名的要点 a.所有的应用程序都必须有数字证书 ,Androi ...

  5. Android反编译(二)之反编译XML资源文件

    Android反编译(二) 之反编译XML资源文件 [目录] 1.工具 2.反编译步骤 3.重新编译APK 4.实例 5.装X技巧 6.学习总结 1.工具 1).反编译工具  apktool http ...

  6. Android 反编译

    Android 反编译 步骤:1.下载apktool 工具,这一步 主要是反编译 xml 文件. 步骤:2 把xx.smali 文件转为java 工具 (单个) 图形界面 下载dex2jar  和xj ...

  7. 转 谈谈android反编译和防止反编译的方法

    谈谈android反编译和防止反编译的方法   android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原. 因此开发人员如果不准备开源自己的项 ...

  8. 谈谈android反编译和防止反编译的方法(转)

    谈谈android反编译和防止反编译的方法(转) android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原. 因此开发人员如果不准备开源自己的 ...

  9. Android反编译odex然后重新打包

    #Android反编译odex然后重新打包 最近不知道怎么回事,突然把我那刷了氧OS的root了,然后就开始好奇起来氢OS所带有的那些本地化的东西,比如通话录音就是典型的一个之一.其中也做了很多的尝试 ...

  10. Android反编译(一)之反编译JAVA源码

    Android反编译(一) 之反编译JAVA源码 [目录] 1.工具 2.反编译步骤 3.实例 4.装X技巧 1.工具 1).dex反编译JAR工具  dex2jar   http://code.go ...

随机推荐

  1. Blazor前后端框架Known-V1.2.8

    V1.2.8 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行. Gitee: https://gitee.com/known/Known Gith ...

  2. Django: 获取头信息

    如何获取请求头信息 使用如下函数request.META.get("HTTP_请求头函数"),需要注意的是,请求头变量需要全部大写. 其他注意事项如下所示: 如果headerkey ...

  3. Django创建超级管理员用户

    python manage.py createsuperuser 后面就会提示你输入用户名.邮箱以及密码.

  4. VScode 中golang 单元测试,解决单元测试超时timeout30s

    目的:单元测试的主要目的是验证代码的每个单元(函数.方法)是否按照预期工作. 提示:解决单元测试超时30s的问题在序号4 1 准备以_test.go结尾文件和导入testing包 在命名文件时需要让文 ...

  5. 大数据请把文章推给想了解DLL的人

    DLL(Dynamic Link Library)动态链接库在 webpack 中用来将可共享且不常改变的代码抽取成公共的库. 没有使用 DLL react 和 react-dom 在 react 项 ...

  6. Ceres简单应用-求解(Powell's Function)鲍威尔函数最小值

    Ceres 求解 Powell's function 的最小化 \(\quad\)现在考虑一个稍微复杂一点的例子-鲍威尔函数的最小化. \(\quad{}\) \(x=[x_1,x_2,x_3,x_4 ...

  7. Programming abstractions in C阅读笔记: p118-p122

    <Programming Abstractions In C>学习第49天,p118-p122,总结如下: 一.技术总结 1.随机数 (1)seed p119,"The init ...

  8. Unity UGUI的Button组件的介绍及使用

    UGUI的Button(按钮)组件的介绍及使用 1. 什么是UGUI的Button组件? UGUI(Unity GUI)是Unity引擎中的一套用户界面系统,Button(按钮)是其中的一个常用组件. ...

  9. VA01/VA02/VA03/VA05 销售订单隐藏价格

    1.业务需求 针对用户使用销售订单时,判断是否有权限,没有权限时隐藏销售订单抬头和行项目的价格相关字段 2.增强实现 2.1.隐藏抬头和行项目价格 隐藏抬头和行项目表格中的净值和净价字段 在程序MV4 ...

  10. Pytorch语法——torch.autograd.grad

    The torch.autograd.grad function is a part of PyTorch's automatic differentiation package and is use ...