测试机型1: 天语 nibiru h1
系统版本1: Resurrection Remix (安卓6.0.1)
测试机型2: 华硕zenfone2(ze551ml)(z00a)
系统版本2: 魔趣(安卓7.1.2)
1.安装使用 镧·系统工具箱(需要root权限)
打开后允许 根 权限
2.可以直接在软件内 修改 屏幕分辨率和像素密度
稍等片刻,等待修改生效后,重启设备(这里将默认的屏幕分辨率改为了720x1280,屏幕像素密度改为320.注意保持屏幕默认的分辨率比例以防止出现变形或黑边,同时分辨率数值的缩小倍数应和像素密度的缩小比例一致)
3.虚拟按键(功能键正常的系统可以不用管,比如 夏新a918t机型的出厂系统)
3.1重启完成后,会发现屏幕外的虚拟按键失灵.
可以在屏幕中开启虚拟按键作为替代功能(打开文件/system/build.prop并在最后加入 qemu.hw.mainkeys=0,保存后重启设备生效)
3.2修复屏幕外的虚拟按键(上面的方法虽然简单,但是会占用屏幕面积.这里说下直接解决这个失灵的方法)
提取/system/lib/libinputflinger.so文件,在电脑上使用UltraEdit打开此文件,找到图中选中的内容进行内容替换
(1.手机上已有类似UltraEdit电脑应用 功能的软件也是可以的. 2. libinputflinger.so也可能是其它input开头的so文件,不同机型不同系统存在差异, 3.多构架系统也可能存在不止一个文件 如:华硕ze551ml需要修改x86和arm两个平台的两个文件)
天语 nibiru h1
华硕zenfone2
替换成下图内容
天语 nibiru h1
华硕zenfone2
修改完成后替换掉原文件
接下来提取文件/sys/board_properties/virtualkeys.mtk-tpd,将该文件内的数字按照分辨率和像素密度 变化的相同同比例 进行变更(数字取整)
(不同系统文件可能不同,如 华硕ze551ml对应的该文件文件名为virtualkeys.ftxxxx_ts)
修改完成后 放入 /system/virtualkeys.mtk-tpd
全部完成后,开机可以看到修改分辨率后失灵的虚拟按键恢复正常
4.解决部分软件或刷机包任然以屏幕原dpi显示值释放文件或者显示内容的问题
如 :卡刷包 opengapps安装的谷歌框架,其中的谷歌应用商店自身及派发的其他应用任然可能为原dpi
解决:
1.移除已经确定出现问题的应用 卡刷包及其生成的其他文件
2.打开文件 /system/build.prop
找到红框中框出的内容,并将等号后的数值修改为目标dpi,之后保存.重启系统后生效
注意:
1.文件修改前后要保持文件的权限相同,文件内编码格式相同
2.libinputflinger.so文件不同系统一般不能通用,需要从本机当前系统提取
3.virtualkeys.mtk-tpd不要修改格式,与原系统文件内容的格式保持一致
4.新的配置生效后,若出现新的异常运行的软件,先尝试清除缓存,清除系统生成的应用优化数据,如果不行再尝试卸载后重新安装
5.刷机,双清,恢复出厂设置等操作可能会使部分修改或全部修改恢复,需要重新设置
6.谷歌应用商店分发的功能包或增量包中的 xhdpi常对应320dpi,xxhdpi 常对应480dpi...........