设为首页收藏本站

移动叔叔

搜索
查看: 1096|回复: 0
打印 上一主题 下一主题

锁屏

[复制链接]
跳转到指定楼层
楼主
发表于 2012-7-28 21:44:01 来自手机版 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
修改原锁,比如移植点心rom需要以下文件: 01、点心锁屏ROM提取system\framework\framework-res.apk 02、点心锁屏ROM提取system\framework\android.policy.jar 03、原生锁版ROM提取system\framework\framework-res.apk 04、原生锁版ROM提取system\framework\android.policy.jar 1、分别用winrar打开两个版本的android.policy.jar文件,提取classes.dex文件,注意因为是两个版本同名文件,所以全部操作最好放在两个文件夹下进行。 2、分别反编辑两个classes.dex文件,反编辑后可以看到classes\com\android\internal\policy\impl目录下的smali文件,在这里以LockScreen开头的文件就是锁屏文件了,LockScreen后面有$的文件是LockScreen.smali的子文件,其中有一个多一个LockScreen$5.smali,但这些不重要。 3、删除原生目录中LockScreen开头的所有文件,并复制点心目录中LockScreen开头的所有文件到点心锁目录,其它文件不要动,其它文件关系密码锁、路径锁、关机菜单等。 4、这时锁屏原码基本完成了,如果重编辑打包回去,就可以发现是用点心来解锁了,但是图片界面完全不对,无法使用,看来是调用的资源不对,所以我们还得改动一下。 5、如何查找资源,framework-res.apk里的\res\values\public.xml文件是定义资源的,所以我们还得分别反编译两个framework-res.apk来查看public.xml文件中资源的定义。 6、从public.xml中看出,所有资源都有被赋予了一个16进制的ID,而在点心锁文件中所以的资源应用都在LockScreen.smali中,它的子程序不用管,用文件编辑器打开它,搜索文本0x1,可以找到很多包括0x1的9位16进制代码,而在public.xml中的ID定义都是10位,这里的技巧是,LockScreen.smali中的0x后面都舍去了一个0,如0x1000001在public.xml中对应的是0x01000001,这个问题让我郁闷了很久很久,从修改点心锁界面开始直到现在才发现关键在这儿。 7、知道了这个,这简单了,在LockScreen.smali中找到这些ID,然后在原版锁public.xml中找到对应的资源名,再再点心锁public.xml中用资源名找到对应的ID,这下明白了吧,用原生锁对应的资源ID换下LockScreen.smali中的ID,这是个细活,一定要有耐心。 8、改完保存,重新编辑成classes.dex,用winrar打开点心锁原始android.policy.jar,把重编辑的classes.dex替换进去,大功告成
已有 1 人评分贡献 收起 理由
huskar + 5 很给力!

总评分: 贡献 + 5   查看全部评分

您需要登录后才可以回帖 登录 | 注册

© 2008-2024 移动叔叔. 版权所有,专业的网络售后平台 ( 闽ICP备18006692号-3 )

商务合作点击这里给我发消息|Email:service@mobileuncle.com|手机版|移动叔叔     

GMT+8, 2024-11-19 22:44 , Processed in 0.203925 second(s), 13 queries , Gzip On, Memcache On.

返回顶部