工具:
apktool
ADT
命令:
反编译
java -jar apktool.jar d test.apk
重打包
java -jar apktool.jar b test
签名使用ADT
smail语言粗略理解(其实对于修改来说, 大概熟悉就就ok)
类定义
.class public Lcom/example/MyClass;
.super Ljava/lang/Object;
.class 指定类名和修饰符。
.super 指定父类。
字段定义
.field public myField:I
.field 定义字段。
I 表示整数类型(int)。
方法定义
.method public myMethod()V
.locals 1
.prologue
.line 10
return-void
.end method
.method 定义方法,V 表示返回类型为 void。
.locals 声明局部变量数量。
.prologue 和 .line 用于调试和代码注释。
return-void 表示方法结束并返回。
Smali 使用汇编语言风格的指令,以下是一些常见指令:
加载和存储指令
const/4 v0, 0x1 ; 将整数 1 加载到寄存器 v0
算术指令
add-int v0, v1, v2 ; v0 = v1 + v2
方法调用
invoke-virtual {v0}, Lcom/example/MyClass;->myMethod()
实战
三星通话app修复
这个类找不到
增加类
重打包签名后安装测试!
ok, 报其他类错误了, 依葫芦画瓢一一修复即可大功告成!