zoukankan      html  css  js  c++  java
  • 如何获取CRepository设置项的RepUID和key(转)

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

    如何获取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能力。

    再次感谢chenziteng大神提供这个思路!!

  • 相关阅读:
    用getBoundingClientRect()来获取页面元素的位置
    asp.net 发送邮件
    MVC5笔记【一】
    WEB前端组件思想【日历】
    WEB前端组件思想【分页】
    【转】前端进阶之路:如何高质量完成产品需求开发
    KindeEditor图片上传插件用法
    jQuery Post 提交内容中有标签报错
    【转发】彻底理解 JS 中 this 的指向
    chrome扩展程序开发之在目标页面运行自己的JS
  • 原文地址:https://www.cnblogs.com/yaoliang11/p/2087441.html
Copyright © 2011-2022 走看看