转:http://bbs.pediy.com/showthread.php?p=1213059#post1213059
首先声明本人也是菜鸟一个,发出来跟大家共同交流学习,本文也仅供学习交流,禁止商业用途,如果因此而产生的法律责任与本人无关。
MIUI的ROM做的非常不错,在此先赞一下rom的开发团队们。
不知何时起,主题也开始收费了,看着各种漂亮的主题很心动,有木有?那就自己想想办法吧。
第一种方法:
刚开始考虑,主题他是怎么来做收费认证的呢?想从这里入手,分析了一下ThemeManager.apk,当你使用主题时,会判断/sdcard/MIUI/theme/.data/rights/下是否存在该主题的.mra文件,如果不存在,那么根据你的小米帐号到小米网站确认你是否可以使用该主题,如果可以就下载该主题的rights文件到/sdcard/MIUI/theme/.data/rights/;如果存在.mra文件,那么根据该文件的信息判断你是否可以使用该主题。
本来想通过分析程序判断怎么解析.mra文件,然后根据算法自己生成.mra文件,这条路是正道,但是此条路不好走;
第二种方法:
通过修改ThemeManager.apk,跳过验证.mra文件来使用主题,后来证明这种方法是最省事的。
首先要跳过购买,直接下载主题,通过分析发现在点击购买按钮时,会调用函数notifyBuyEventPerformed()V,如果将该函数直接改为notifyDownloadEventPerformed()V,那么就可以直接下载并使用主题了。
另外还有一个地方也需要修改,reset()V中的的默认返回值改为1
另外再将ThemeManager\res\values-zh-rCN\strings.xml里的购买改为下载
最后重新编译apk文件,复制到/system/app/下即可了
PS:成为正式会员太麻烦了,好不容易靠在线时间赚的了邀请码
注:直接改CALL的破解思路不错.