如何获取CRepository设置项的RepUID和key
2010-03-17 17:58
281 查看
注:本文原创思路来自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能力。
以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能力。
相关文章推荐
- 如何获取CRepository设置项的RepUID和key(转)
- 获取/设置key的值,相当于Cocos2d-x的UserDefault
- Mysql 如何设置字段自动获取当前时间
- Goodix系列------如何取消原生的屏幕上的三个key(如何在java里获取property)
- 黄聪:如何获取Akismet API Key
- 如何获取和设置输入法
- 如何得到Selenium2/Webdriver: FirefoxProfile设置属性的key-value
- 如何获取当前数据库名称及在存储过程中临时设置数据库兼容级别
- window上如何设置才能获取dump文件
- Zookeeper如何正确设置和获取watcher
- js object如何获取key值
- 如何获取动态key的json数据
- redis key 过期时间如何设置
- vb6如何设置和获取 cookie,使用 WinInet api url
- [Android]如何获取当前用户设置的时区
- 如何获取注册高德Key使用的SHA1值与包名?
- 如何获取并设置自己的浏览器为默认浏览器
- Mysql 如何设置字段自动获取当前时间
- win7系统如何设置自己获取IP地址
- Fedora Linux如何设置网卡自动获取网络地址