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找到

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章