关于修改部分ODEX文件的理解与解析 在深入探讨“关于修改部分ODEX”这一主题之前,我们首先需要明确ODEX(Optimized Dalvik EXecutable)文件的基本概念及其在Android系统中的作用。ODEX文件是Android系统为了提高应用程序运行效率而生成的一种优化格式。当一个APK文件被安装到设备上后,Dalvik虚拟机(或ART运行时)会将其中的DEX(Dalvik EXecutable)文件编译成针对特定硬件架构优化的ODEX文件,以便于更快地执行代码。 ### 重要性与修改原因 修改ODEX文件通常涉及到对已安装应用性能的优化、修复系统级错误或调整系统配置参数等操作。例如,调整屏幕亮度阈值、修改电源管理策略、以及优化内存管理等,这些都是直接关系到用户体验和设备性能的关键因素。 ### 屏幕亮度调节 在给出的示例中,有一段代码片段涉及到了屏幕亮度的调节,具体体现在对资源文件`framework-res-integer.xml`的引用。这表明,通过修改特定的资源文件,可以调整屏幕在不同环境下的亮度表现,如降低亮度阈值(`BRIGHTNESS_DIM`),以适应不同的使用场景,比如夜间模式下减少眼睛疲劳。 ### 电源管理与亮度设置 另一段代码示例提到了`framework-android/os/power.smali`文件,这同样与电源管理和屏幕亮度控制相关。通过调整`BRIGHTNESS_DIM`值,可以动态改变设备的功耗,这对于延长电池寿命至关重要。此外,这部分修改可能还涉及到了更深层次的电源管理策略,如处理器频率调整、无线模块的智能开关等,以实现更精细的能耗控制。 ### 内存管理优化 第三段示例则聚焦于内存管理,尤其是针对低内存状态下的进程处理策略。这里提到了`OMM_Service.Odex`中的`ProcessList.smali`文件,以及`oom_min_free_low`和`oom_min_free_high`两个关键参数。这些参数定义了在不同内存压力级别下,系统如何决定哪些进程可以被杀死以释放更多内存空间。通过调整这些阈值,可以在保证系统稳定性和响应速度的同时,尽可能减少用户可见的性能下降。 ### 具体数值解读 给出的部分数值,如`00070F95`至`0070FF4`,代表了内存管理的不同阈值,分别对应着从低到高的内存压力等级。例如,`OomMinFreeLow`和`OomMinFreeHigh`分别设定了在低内存和高内存压力下,系统应预留的最小空闲内存量。这些数值的调整需基于设备的具体配置和使用场景,以达到最佳平衡。 ### 总结 修改ODEX文件是一项高级且敏感的操作,它能够显著提升Android设备的性能和用户体验,但同时也需要高度的技术知识和谨慎的态度。通过上述分析,我们可以看出,无论是屏幕亮度调节、电源管理优化还是内存管理策略调整,都是为了在保持系统稳定性和响应速度的前提下,最大化利用硬件资源,提供更佳的用户体验。因此,理解并掌握这些技术细节,对于从事Android系统开发和维护的专业人员来说,是至关重要的。
2、关于设置中最低亮度设置值为framework中android/os/power.smali的 BRIGHTNESS_DIM 值默认为120。在framework.odex中的偏移地址为:00351A10
3、关于OOM,在SERVICES.ODEX中的com\android\server\am\ProcessList.smali中,OomMinFreeLow在SERVICES.ODEX中的偏移地址分别是:
00070F95 00070F9D 00070FA5 00070FAD 00070FB4 00070FBB ;
OomMinFreeHigh的偏移地址分别是:
00070FCD 00070FD5 00070FDD 00070FE5 00070FED 0070FF4 ;
注意:此处地址可能因编辑删除过其它语句出现偏移地址不定。但是都是以06 00 00 00 00 开始,中间以:00 00 00 00 00 03 08 00隔断(不可修改),以00 00 00 00 15 00 04结尾的大块填充0值的区域。
取数方式如下:00 00 00 00 00 F4 01 00 则正确的值是:01F400 换算为10进制数为:128000 因1M=1024K,换算为M值为125.如果希望将该值换为130,则可以将130*1024的结果转换为16进制值即可。
0 2 4 7 9 15 ADJ
8 12 16 24 28 32 OomMinFreeLow
12 16 56 100 150 280 OomMinFreeHigh
16 32 66 125 176 320 初次预想修改值
旧的值:
shell@android:/ $ cat /sys/module/lowmemorykiller/parameters/minfree
cat /sys/module/lowmemorykiller/parameters/minfree
2590,3614,9517,16444,23702,41803
10M,14M,38M,66M,95,167M
新的值:
shell@android:/ $ cat /sys/module/lowmemorykiller/parameters/minfree
cat /sys/module/lowmemorykiller/parameters/minfree
2650,5300,10390,18868,27226,47224
10M,21M,41M,75M,109M,188M
新修改版的Services可修改ADJ值,偏移地址是: 70EB3 ; 00130001 开始往后的六个值,规律是001300 ADJ数组编号为0的值为 01.以下类推.
新修改版的Services可修改OomMinFreeLow值,偏移地址是:70F65 规律同上面的OomMinFreeLow修改一样.
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助