1.需求说明
Android目前显示分辨率为480*800,立项表中像素为720*1280。请修改屏幕分辨率到指定大小。
2.思路分析
如果从手机修改对应的分辨率,必须自上而下的进行修改分为两个层面进行修改。
1.驱动底层
2.软件上层
3.结局方法与相关说明
查看当前手机分辨率
adb root ->adb shell wm size
3.1驱动底层
//修改文件//kernel为您的内核xxxxx为您该设备对应的文件
vi device/mediateksample/XXXXX/ProjectConfig.mk
vi device/mediateksample/xxxxx/system.prop(未找到,未修改)//xxxxx版本名称
vi kernel/arch/arm64/boot/dts/mediatek/yk956_xxxxxp.dts
vi kernel/arch/arm64/configs/yk956_xxxxx_debug_defconfig
vi kernel/arch/arm64/configs/yk956_xxxxx_defconfig// ####LCD屏幕型号
vi kernel/drivers/misc/mediatek/lcm/####/####.c
vi vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm/####/####.c
vi device/mediateksample/xxxxx/ProjectConfig.mk
此处修改相应的分辨率大小
vi kernel/arch/arm64/boot/dts/mediatek/yk956_xxxxxp.dts
vi kernel/arch/arm64/configs/yk956_xxxxx_debug_defconfig
vi kernel/arch/arm64/configs/yk956_xxxxx_defconfig
vi kernel/drivers/misc/mediatek/lcm/####/####.c
vi vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm/####/####.c
按照人家的逻辑添加自己指定的分辨率,如无特殊指定加到else里面,至于为啥lk路径下也要改,我的驱动同事告诉我是(读id的阶段),我也不是很懂。 望驱动大神跟我讲讲
3.2软件上层
//软件上层修改vi frameworks/base/packages/SettingsProvider/res/values/defaults.xml
vi vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/defaults.xmlvi frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
vi vendor/mediatek/proprietary/packages/apps/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
1.上面两个defaults.xml只是添加个字符串即可(frameworks和verdor都要加)
2.下面两个DatabaseHelper.java文件需注意添加到相应的(frameworks和verdor都要加)
4.总结
这样修改完编译完手机分辨率就会改变啦,在安兔兔机侧软件上是可以正常显示他分辨率的。
我的参考文章是在简书上找的,参考之后修改有效形成本文。
参考文章
Android8.1 MT67xx 修改屏幕物理分辨率 Physical Size - 简书