工具:
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, 報其他類錯誤了, 依葫蘆畫瓢一一修復即可大功告成!