如何在Android模拟器中模拟真实设备的Build.HARDWARE
修改Android模拟器Build.HARDWARE值及模拟真实设备指纹方案
问题原因
Build.HARDWARE对应的ro.hardware属性在Android模拟器中并非仅由build.prop控制,系统启动时init进程或AVD硬件配置会强制将其设为ranchu,常规修改build.prop或setprop命令无法覆盖该默认设置。
解决方案
方案1:修改AVD配置文件(最简单)
- 定位AVD的配置目录:
- Linux/macOS:
~/.android/avd/Pixel_6_Pro_API_31.avd/ - Windows:
C:\Users\<你的用户名>\.android\avd\Pixel_6_Pro_API_31.avd\
- Linux/macOS:
- 打开
config.ini文件,添加或修改以下配置项:hw.hardware = 你的自定义硬件名称 ro.hardware = 你的自定义硬件名称 - 保存文件后重启模拟器,
Build.HARDWARE会返回自定义值。
方案2:用Magisk resetprop动态修改(已Root设备)
如果模拟器已Root并安装Magisk,可通过resetprop绕过系统只读属性限制:
adb root adb shell su resetprop ro.hardware 你的自定义硬件名称
执行完后用getprop ro.hardware验证,此时Build.HARDWARE会同步返回自定义值。
方案3:修改系统init脚本(彻底修改)
- 挂载system分区为可写:
adb root adb remount - 拉取模拟器的init硬件脚本:
adb pull /system/etc/init/hw/init.ranchu.rc - 打开文件找到
setprop ro.hardware ranchu行,将ranchu替换为你的自定义硬件名。 - 推回修改后的文件并重启:
adb push init.ranchu.rc /system/etc/init/hw/init.ranchu.rc adb reboot
模拟真实设备指纹的其他方法
- Magisk指纹 spoof 模块:安装如
Fingerprint Spoofer类的Magisk模块,可一键模拟任意真实设备的完整指纹信息(包括所有Build类属性),无需手动修改多个文件。 - 自定义编译AOSP镜像:从AOSP源码中修改硬件配置参数,编译带有自定义硬件标识的系统镜像,这种方法最彻底,但需要搭建AOSP编译环境。
内容的提问来源于stack exchange,提问作者Dranik
相关产品推荐
相关产品推荐

