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

此处修改相应的分辨率大小

Androd 12 (MTK)修改屏幕物理分辨率Physical Size-LMLPHP

vi kernel/arch/arm64/boot/dts/mediatek/yk956_xxxxxp.dts

Androd 12 (MTK)修改屏幕物理分辨率Physical Size-LMLPHP

vi kernel/arch/arm64/configs/yk956_xxxxx_debug_defconfig
vi kernel/arch/arm64/configs/yk956_xxxxx_defconfig

Androd 12 (MTK)修改屏幕物理分辨率Physical Size-LMLPHP

vi kernel/drivers/misc/mediatek/lcm/####/####.c

vi vendor/mediatek/proprietary/bootable/bootloader/lk/dev/lcm/####/####.c

按照人家的逻辑添加自己指定的分辨率,如无特殊指定加到else里面,至于为啥lk路径下也要改,我的驱动同事告诉我是(读id的阶段),我也不是很懂。  望驱动大神跟我讲讲

Androd 12 (MTK)修改屏幕物理分辨率Physical Size-LMLPHP

3.2软件上层

//软件上层修改

vi frameworks/base/packages/SettingsProvider/res/values/defaults.xml
vi vendor/mediatek/proprietary/packages/apps/SettingsProvider/res/values/defaults.xml

vi 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都要加)

Androd 12 (MTK)修改屏幕物理分辨率Physical Size-LMLPHP

2.下面两个DatabaseHelper.java文件需注意添加到相应的(frameworks和verdor都要加)

Androd 12 (MTK)修改屏幕物理分辨率Physical Size-LMLPHP

4.总结

这样修改完编译完手机分辨率就会改变啦,在安兔兔机侧软件上是可以正常显示他分辨率的。

我的参考文章是在简书上找的,参考之后修改有效形成本文。

参考文章

Android8.1 MT67xx 修改屏幕物理分辨率 Physical Size - 简书

07-11 14:23