工具:
apktool
ADT
命令:
反编译
重打包
签名使用ADT

smail语言粗略理解(其实对于修改来说, 大概熟悉就就ok)
类定义
字段定义
方法定义
Smali 使用汇编语言风格的指令,以下是一些常见指令:
加载和存储指令
算术指令
方法调用
实战
三星app移植修复
因为三星app是依赖于自身framework的, 所以移植到其他系统, 会闪退
这个类找不到


增加类

重打包签名后安装测试!

ok, 报其他类错误了, 依葫芦画瓢一一修复即可大功告成!
反编译增加dex(网上找不到资料)
三种方式:
- 是将dex转smail, 然后把smali合并
- 可以不反编译dex文件, 放入dex文件后, 再重打包 apktool反编译命令详解
3.可以在build目录放入dex后重打包

测试通过!
其他遇到的一些实战问题
新增类的方式, 可以解决NoClassDefFound
但是不能覆盖类, 如果类是在android.os中, 那么他会优先加载/system/framework/framework.jar 的dex文件, 所以通过覆盖的方式不会生效
这种情况只能修改调用方把调用的包名改为自己的包名即可
特别注意
如果发现修改包名不生效的问题, 是因为
smali编译成dex的过程,包名是smali代码中决定的, 你修改文件夹的名称, 并不能改变包名
- 作者:拓森Leo
- 链接:https://www.uzilol.cn/article/a0914fdd-10bf-4190-8a9e-fe6d61568953
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。



