ROM定制开发教程-APK反编译案例分析

service.jar删除APP校验

 

miui6版本修改方法:

 

反编译framework/services.jar,

定位到 \smali\com\miui\server\SecurityManagerService.smali文件,

搜索校验的包名”com.xiaomi.market“,

把以下语句删除,记得把:cond_0对应上下文逻辑修改。

 

    .line 243

    const-string v1, "android"

##############################

    const-string v2, "com.xiaomi.market"

 

    invoke-virtual {v0, v1, v2}, Landroid/content/pm/PackageManager;->checkSignatures(Ljava/lang/String;Ljava/lang/String;)I

 

    move-result v1

 

    if-eqz v1, :cond_0

 

    .line 244

    new-instance v1, Ljava/lang/RuntimeException;

 

    const-string v2, "System error : cannot find system app : com.xiaomi.market"

 

    invoke-direct {v1, v2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

 

    throw v1

 

    .line 248

########################

    :cond_0

    return-void

.end method

 

 

miui7版本修改方法:

 

反编译framework/services.jar,

定位到 \smali\com\miui\server\SecurityManagerService.smali文件,

搜索

.method private checkSystemSelfProtection(Z)V

 

.method private checkSystemSelfProtection(Z)V

    .locals 1

    .param p1, "onlyCore"    # Z

 

    .prologue

########################################

    .line 307

    new-instance v0, Lcom/miui/server/SecurityManagerService$2;

 

    invoke-direct {v0, p0, p1}, Lcom/miui/server/SecurityManagerService$2;-><init>(Lcom/miui/server/SecurityManagerService;Z)V

 

    invoke-virtual {v0}, Lcom/miui/server/SecurityManagerService$2;->start()V

 

    .line 341

#############################

    return-void

.end method

 

####号之间的代码删除,并且删除framework下的

services.odex文件。

 

通用方案(去除所有校验):

 

打开SecurityManagerService.smali文件搜索checksystem定位到

 

然后删除

 

 

 

 

小米修改updater.apk屏蔽升级

 

实现效果:

点击【设置】-【关于手机】-【系统更新】选项:屏蔽升级提示,点击检查升级提示已经最新版,屏蔽下载完整包,选择本地升级包重启到recovery后提示刷机包校验失败。

 

实现方法:

反编译Updater.apk中的Updater2.smali,

第一步:屏蔽升级:

Updater2.smali找到onCheckFinish处,

增加如下代码,如上图红色框所示:

const/4 p3, 0x6

const/4 p2, 0x0

 

 

第二步:修改本地升级包路径:

根据选本地刷机包后logcat看到installInternalLocked中的p1是刷机包在recovery下的路径,修改之:

增加如下代码,如下图所示:

const-string p1, "/sd-card/base.zip"

 

 

 

 

注意framework/services.jar有校验updater.apk,所以需要去掉校验,否则会无法进入系统,反编译之:

SecurityManagerService$2.smali找到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X神之怒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值