首先提取system/framework下的core.jar和services.jar,反编译
先修改core.jar
打开core.jar.out/smali/java/security/MessageDigest.smali
搜索.method public static isEqual,只有一个地方
.method public static isEqual([B[B)Z
.locals 4
.parameter "digesta"
.parameter "digestb"
.prologue
const/4 v1, 0x0
.line 302
array-length v2, p0
array-length v3, p1
if-eq v2, v3, :cond_1
.line 310
.....
.....
.....
.end method
把.prologue下面,.end method上面的全部删掉,删之前保留.prologue下面的第一行出现的.line XXX
在.line XXX(比如我这里是.line 302)下面一行,输入 const/4 v0, 0x1,留空一行,再下一行输入 return v0
修改好后是这样
.method public static isEqual([B[B)Z
.locals 1
.parameter "digesta"
.parameter "digestb"
.prologue
.line 302
const/4 v0, 0x1
return v0
.end method
保存
这个改了以后apk只要有签名就可以安装,不管签名后的apk是否修改过
先修改core.jar
打开core.jar.out/smali/java/security/MessageDigest.smali
搜索.method public static isEqual,只有一个地方
.method public static isEqual([B[B)Z
.locals 4
.parameter "digesta"
.parameter "digestb"
.prologue
const/4 v1, 0x0
.line 302
array-length v2, p0
array-length v3, p1
if-eq v2, v3, :cond_1
.line 310
.....
.....
.....
.end method
把.prologue下面,.end method上面的全部删掉,删之前保留.prologue下面的第一行出现的.line XXX
在.line XXX(比如我这里是.line 302)下面一行,输入 const/4 v0, 0x1,留空一行,再下一行输入 return v0
修改好后是这样
.method public static isEqual([B[B)Z
.locals 1
.parameter "digesta"
.parameter "digestb"
.prologue
.line 302
const/4 v0, 0x1
return v0
.end method
保存
这个改了以后apk只要有签名就可以安装,不管签名后的apk是否修改过