一、破解外置SD卡写入限制:
1、修改手机里这个文件:/system/etc/permissions/platform.xml
2、找到一下代码:
复制代码
3、修改成以下样子:
复制代码
二、破解系统签名验证:
系统apk修改后可以重新签名、系统apk AndroidManifest.xml修改和加入新权限需要破解签名验证。
1、反编译:/system/framework/services.jar
2、修改文件:PackageManagerService.smali,位置: \services\com\android\server\pm
3、搜索系统签名特征验证方法函数:只有一个!
复制代码
4、
如果你的代码中多出 .line .param等,直接删除就是,这是我清理以后的代码!
以下是原始代码:
复制代码
改为:注意这里的V6和
.registers 9是我手机上的,请对照你自己的!
复制代码
5、回编,如果不生成odex文件,把原odex文件删除,再替换,搞定!!
三、破解系统官方字体验证:
可以随意安装并使用第三方直装版字体,不会出现:“不支持该字体。联系字体提供商。是否卸载该字体?”
也可自己用电脑可以使用的字体DIY制作 直装版字体!
制作教程: http://bbs.gfan.com/android-7817642-1-1.html
1、反编译: /system/priv-app/SecSettings.apk
2、修改两个文件:FontListPreference.smali 和 FontListActivity.smali,位置:\smali\com\android\settings\flipfont,修改方法一样!
3、搜索下列面字符,字体是否官方验证的方法函数,只有一个!
复制代码
4、接着搜索:aget-object ,只搜索一次!出现以下代码:
如果你的代码中多出 .line .param等,直接删除就是,这是我清理以后的代码!
复制代码
5、回编,如果不生成odex文件,把原odex文件删除,再替换,搞定!!
1、修改手机里这个文件:/system/etc/permissions/platform.xml
2、找到一下代码:
- <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
- <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
- <group gid="sdcard_r" />
- <group gid="sdcard_rw" />
- <group gid="media_rw" />
- </permission>
系统apk修改后可以重新签名、系统apk AndroidManifest.xml修改和加入新权限需要破解签名验证。
1、反编译:/system/framework/services.jar
2、修改文件:PackageManagerService.smali,位置: \services\com\android\server\pm
3、搜索系统签名特征验证方法函数:只有一个!
- .method static compareSignatures
以下是原始代码:
- .method static compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
- .registers 9
- if-nez p0, :cond_8
- if-nez p1, :cond_6
- const/4 v6, 0x1
- :goto_5
- return v6
- :cond_6
- const/4 v6, -0x1
- goto :goto_5
- :cond_8
- if-nez p1, :cond_c
- const/4 v6, -0x2
- goto :goto_5
- :cond_c
- new-instance v3, Ljava/util/HashSet;
- invoke-direct {v3}, Ljava/util/HashSet;-><init>()V
- move-object v0, p0
- array-length v2, v0
- const/4 v1, 0x0
- :goto_14
- if-ge v1, v2, :cond_1e
- aget-object v5, v0, v1
- invoke-virtual {v3, v5}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
- add-int/lit8 v1, v1, 0x1
- goto :goto_14
- :cond_1e
- new-instance v4, Ljava/util/HashSet;
- invoke-direct {v4}, Ljava/util/HashSet;-><init>()V
- move-object v0, p1
- array-length v2, v0
- const/4 v1, 0x0
- :goto_26
- if-ge v1, v2, :cond_30
- aget-object v5, v0, v1
- invoke-virtual {v4, v5}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
- add-int/lit8 v1, v1, 0x1
- goto :goto_26
- :cond_30
- invoke-virtual {v3, v4}, Ljava/util/HashSet;->equals(Ljava/lang/Object;)Z
- move-result v6
- if-eqz v6, :cond_38
- const/4 v6, 0x0
- goto :goto_5
- :cond_38
- const/4 v6, -0x3
- goto :goto_5
- .end method
- .method static compareSignatures([Landroid/content/pm/Signature;[Landroid/content/pm/Signature;)I
- .registers 9
- const/4 v6, 0x0
- return v6
- .end method
三、破解系统官方字体验证:
可以随意安装并使用第三方直装版字体,不会出现:“不支持该字体。联系字体提供商。是否卸载该字体?”
也可自己用电脑可以使用的字体DIY制作 直装版字体!
制作教程: http://bbs.gfan.com/android-7817642-1-1.html
1、反编译: /system/priv-app/SecSettings.apk
2、修改两个文件:FontListPreference.smali 和 FontListActivity.smali,位置:\smali\com\android\settings\flipfont,修改方法一样!
3、搜索下列面字符,字体是否官方验证的方法函数,只有一个!
- .method protected checkFont
如果你的代码中多出 .line .param等,直接删除就是,这是我清理以后的代码!
- sget-object v11, Lcom/android/settings/flipfont/FontListActivity;->apkNameList:[Ljava/lang/String;
- aget-object v11, v11, v6 ---->搜索出来的位置:可能后面的V11等不一样
- move-object/from16 v0, p1
- invoke-virtual {v0, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v11
- if-eqz v11, :cond_2 ---->把这段判断跳转语句删除了
- sget-boolean v11, Lcom/android/settings/flipfont/FontListActivity;->DEBUG:Z
- if-eqz v11, :cond_1
- const-string v11, "FlipFont"
- const-string v13, "**Apk name matches list**"