如何获取CRepository设置项的RepUID和key


注:本文原创思路来自chenziteng大神,本人只是对其流程进行了详细阐述和部分改进。

以3rd MR模拟器为例。
假如我们想知道“设置”程序中的某个选项对应的RepUID和key的话,我们可以使用如下方法获取:
1.运行MR模拟器,打开“设置”程序,修改你欲获取的设置项。
2.打开/Symbian/9.1/S60_3rd_MR/Epoc32/winscw/c/private/10202be9/persists,按修改日期排序,找到最新修改的cre文件,比如0×101f8873.cre。此时我们已经知道了RepUID,就是0×101f8873。
3.打开/Symbian/9.1/S60_3rd_MR/Epoc32/release/winscw/udeb/z/private/10202be9/101f8873.txt
其内容中包含如下section:
[Main]
0×1 string “” 0 cap_rd=alwayspass cap_wr=WriteDeviceData
0×2 string “” 0 cap_rd=alwayspass cap_wr=WriteDeviceData
0×3 string “” 0 cap_rd=alwayspass cap_wr=WriteDeviceData
0×4 string “” 0 cap_rd=alwayspass cap_wr=WriteDeviceData
0×5 int 0 0 cap_rd=alwayspass cap_wr=WriteDeviceData
0×6 int 0 0 cap_rd=alwayspass cap_wr=WriteDeviceData
0×7 int 0 0 cap_rd=alwayspass cap_wr=WriteDeviceData
0×8 int 0 0 cap_rd=alwayspass cap_wr=WriteDeviceData
表示0×101f8873这个UID下拥有8个key,从0×1一直到0×8,而且也知道各自的类型、默认值、CRepository::Get权限和CRepository::Set权限分别为None和WriteDeviceData。
知道这些信息之后就好办了,我们可以很方便地知道我们要的是哪个key。
如果key的默认value比较明显的话,你完全可以一眼看出是哪个key,如果一下子看不出的话,笨办法一个一个试也不要多大工作量。当然,最科学和保险的办法就是写个循环对这些key依次进行Get,然后打log记录一下。接着改动我们需要的那个设置项,再次log。对两个log文件merge一下,就能精确定位到那个key了。感觉和以前金山游侠改游戏一样啊,呵呵。
4.RepUID和key都拿到了,类型也知道,下面怎么改value总不用说了吧,Set一下即可。不要忘了加WriteDeviceData能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值