如何在ROOT权限下通过代码修改Android的physical display size
ROOT权限下修改Android的physical size参数
physical size对应设备硬件层面上报的屏幕基础分辨率,和wm size设置的临时覆盖(override size)不同,它的存储位置因设备/模拟器而异,以下是ROOT后的可行修改方案:
针对Android模拟器
模拟器的物理分辨率参数存储在AVD的配置文件中,步骤如下:
- 找到你的AVD配置目录,例如Android Studio模拟器默认路径为
~/.android/avd/[你的AVD名称]/ - 编辑目录下的
config.ini文件,修改hw.lcd.width和hw.lcd.height的值,比如:hw.lcd.width=1080 hw.lcd.height=2340 - 重启模拟器,执行
wm size即可看到physical size已更新
针对真实ROOT设备
真实设备的physical size通常从设备树、sysfs节点或/vendor分区的配置文件读取,常见操作方式:
- 临时修改(重启失效):
进入ROOT shell,修改帧缓冲的sysfs节点(部分机型适用):su echo 1080 > /sys/class/graphics/fb0/width echo 2340 > /sys/class/graphics/fb0/height - 永久修改:
- 找到机型对应的屏幕参数配置文件,比如
/vendor/etc/display_manager.xml或类似文件,修改其中的分辨率参数 - 若文件所在分区为只读,需先重新挂载为可写(例如
mount -o remount,rw /vendor) - 部分机型需要修改设备树(DTBO),打包修改后的设备树文件重新刷入设备,具体步骤需参考对应机型的刷机文档
- 找到机型对应的屏幕参数配置文件,比如
注意事项
- 不同品牌/机型的参数存储位置差异极大,需自行排查对应路径
- 修改物理分辨率可能导致UI显示异常、触控偏移等问题,操作前请备份原始配置
- 永久修改涉及系统分区或设备树,操作不当可能导致设备无法开机,需谨慎操作
内容的提问来源于stack exchange,提问作者bilabila
相关产品推荐
相关产品推荐

