安卓系统修改hosts
在电子秤这种基于 Android 的嵌入式设备上修改 hosts,一般有以下几种思路,前提都是需要对系统有写权限(也就是设备已经获得了 root 权限 或 使用了可写 system 分区的定制固件)。
一、前提准备
-
获取 Root 权限
电子秤厂商往往并不会给你开放普通用户修改系统分区的权限,你需要先取得 root(比如通过刷入厂商提供的带有 su 的固件,或者利用 Magisk 等方式获取)。 -
打开 adb 调试
确保设备系统里开启了 “USB 调试” 或者 “ADB over TCP”,并用adb devices能看到你的秤。adb devices
二、通过 ADB Shell 直接修改 hosts
-
重挂系统分区为可写
adb root adb remount # 等同于 adb shell mount -o remount,rw /system -
备份原始 hosts
adb shell cp /system/etc/hosts /system/etc/hosts.bak -
编辑或推送新的 hosts
-
用 adb push:
在本地准备一个修改好的hosts文件(例如把192.168.1.100 my.server.local加进去),然后:adb push hosts /system/etc/hosts -
用 vi/vim(如果设备有编辑器):
adb shell su vi /system/etc/hosts # 在 vi 里添加或修改,保存退出
-
-
重启或刷新 DNS 缓存
adb shell reboot
三、在设备上用 Terminal Emulator 或 Host Editor 应用
如果你能在秤上安装 APK,可以用带有 root 权限的 hosts 编辑器:
-
安装一个开源的 “Hosts Editor” APK(需支持 Android 5+)
-
打开后授予 root 权限
-
在图形界面中添加、删除或注释掉那些你想屏蔽或重定向的域名
-
保存,应用会自动重挂分区并写入
/system/etc/hosts,无需重启大多数情况即可生效。
四、在自研应用中动态修改(高级)
如果你在自己的秤 Android 应用里想以编程方式修改 hosts,可以在安装时调用 su 命令:
public static boolean installHosts(String hostsContent) {
Process p = null;
DataOutputStream os = null;
try {
p = Runtime.getRuntime().exec("su");
os = new DataOutputStream(p.getOutputStream());
// 挂载 system 分区为可写
os.writeBytes("mount -o remount,rw /system\n");
// 将新内容写入临时文件
os.writeBytes("cat << 'EOF' > /system/etc/hosts\n"
+ hostsContent + "\nEOF\n");
// 挂载回只读
os.writeBytes("mount -o remount,ro /system\n");
os.writeBytes("exit\n");
os.flush();
p.waitFor();
return (p.exitValue() == 0);
} catch (Exception e) {
e.printStackTrace();
return false;
} finally {
if (os != null) try { os.close(); } catch (IOException ignored) {}
if (p != null) p.destroy();
}
}
调用时,把你想写入 hosts 的文本传给 hostsContent 即可。
五、注意事项
-
系统更新会覆盖:如果厂商推送 OTA 更新,可能会把你改的 hosts 覆盖回原始文件,需要重做一次。
-
文件路径差异:部分 Android 版本上 hosts 在
/etc/hosts(而不是/system/etc/hosts),可以先用adb shell ls /system/etc/hosts或ls /etc/hosts确认路径。 -
权限问题:一定要确认执行命令时已经拿到 root。可通过
adb shell su -c id看返回里是否有uid=0(root)。 -
安全性:修改了 hosts 后,可能会影响秤上其他联网功能的域名解析,操作前务必备份原始文件
/system/etc/hosts.bak。
通过以上方法,你就可以在电子秤的 Android 层面定制域名解析,实现屏蔽广告、重定向服务器或内网调试等需求。
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)