1. App Name
建议选择一个与之前不同的名称。建议在相关网站上搜索该名称,以确定是否存在其他同名情况,特别是已经进行商标保护的情况。如果有这样的情况存在,更应避免使用相同的名称。
2. 包名
同样地,选择一个与之前不同的选项。
同时,例如公司名称简称为SL,建议在包名中避免使用SL。
3. Logo
设计一个新的即可
4. 签名
请重新生成一个全新的jks文件,并将密码和名称进行更改,确保与之前的文件没有任何关联。
例如,对于公司名称简称为sl的建议,建议在jks中避免使用sl。
5. 域名
购买一个全新的域名,每个应用都使用独立的域名。
6. 项目结构目录
对结构目录进行调整,包括名称和嵌套顺序等方面的修改。
7. 文件名(类名、布局文件名、资源文件名)
对所有的类名、布局文件名和资源文件名进行修改。
8. 如果有相应的依赖Module
还可以对包名、项目结构目录和文件名进行调整。
9. UI
特别是在重新设计启动页和首页时,建议尽量改变主题色彩,最好与之前的设计有明显的差异。
10. 图标
需要对图标的文件名进行全面修改,仅仅修改文件名是不够的。即使一个文件的MD5值不会改变,但如果需要修改文件内容,则必须进行相应操作。
除了可以对图片进行压缩和格式转换外,还能将PNG格式转换为WebP格式。
或将webp转换为png格式
11. 布局文件的控件id
比如之前是btn_login,调整为btn_submit等
12. 布局文件的控件类型
例如,以前使用的是LinearLayout,现在改为androidx.appcompat.widget.LinearLayoutCompat。
例如,先前使用的是TextView,现在改为androidx.appcompat.widget.AppCompatTextView。
13.strings.xml
比如之前是
密码密码复制代码14. 代码混淆
可参考1:github.com/king-ma1993…
建议对bt-proguard.txt的内容进行相应替换,以确保每个app的混淆内容都是独特的。
Android超级变态的混淆词典
常规的混淆方式,如abcd等,并不能对逆向工程产生太大的干扰。因此,我们需要一种非常特殊的字典来进行操作,使用方法如下:
进行配置的地方是在proguard-rules.pro文件中。
可以参考以下内容:「可参考2:github.com/bytedance/A...」对aab包的资源处理
15. ARouter
如果您使用了ARouter路由框架,我们建议您进行相应的修改。
比如之前路由表
val HOME = /app/home```kotlin const val INDEX: String = /newapp/index ```16. 接口映射
举个例子”
比如之前登录接口是
suspend fun login(@Body params: HashMap): NetResult可以看到有几个变化: ```kotlin @POST(ax/FEW/MQx) suspend fun loginInter(@Body params: HashMap): BaseResult ``` 注意:这是一段Kotlin代码,用于发送一个POST请求到路径ax/FEW/MQx,并接收一个HashMap类型的参数。返回结果为BaseResult类型。1、接口请求的具体地址变了
2、NetResult的返回请求已经发生了变化。
3、请求返回的实体名称也变了
4、接口请求的方法名称也发生了变化。
如果公司内部有多个应用程序,每个应用程序生成的具体请求地址都是不同的。
每个app都具备相应的请求头。
比如之前是
val map = HashMap() map[appName] = AppNameval map = HashMap() map[xAfew] = AppName 最后再进行加密复制代码17. 未混淆的类(实体类等)
比如之前是”
data class LoginResultEntity( val token: String? = , val avatar: String? = )1、名称变更
2、增加垃圾字段
dataclassLoginEntity( val a="", val b="", val token: String? = "", val avatar: String? = "", val c="")复制代码
18. 垃圾代码
加点垃圾代码
可以参考以下链接:github.com/qq549631030...需要注意的是,要确保对应的垃圾代码不被混淆。
19. 变量、方法名
在混淆过程中,大多数变量和方法都会被重新命名。
特别要注意的是,在打包的aab文件中,对于没有重名的部分需要进行相应修改。
您可以使用工具 jadx-gui 来查看。
20. 三方库
进行相关三方库的升级,或者考虑使用其他相关库进行替换。
21. 三方SDK key
关于使用一些第三方SDK的相关事项
举例来说,当你在AppFlyer上新建一个应用时,系统会为该应用生成一个开发者密钥(dev key)。值得注意的是,AppFlyer默认情况下每个应用的开发者密钥都是相同的。如果需要修改该密钥,请与相关商户联系进行更改。
22. XmlClassGuard
请点击以下链接查看混淆xml文件所使用的类:https://github.com/liujingxing/XmlClassGuard如果您遇到任何苹果或谷歌上架的问题,我都可以帮助您解决。请随时私信联系我,我的微信号是:@ruirui025。
还木有评论哦,快来抢沙发吧~