一、背景
修改system/etc/hosts,需要具备root权限,而且remount后,才能修改,本文介绍非root状态下修改system/etc/hosts方案。
环境:高通 Android 13
二、方案
非root,system/etc/hosts只有只读权限,无权限修改,如果需要修改,需要将system/etc/hosts软链到data目录,然后就可以达到修改的效果。
三、实现步骤
1、实现软链
1.1 将system/etc/hosts软链到/data/misc/hosts,涉及到的文件如下:
android/system/core/rootdir/Android.mk
LOCAL_POST_INSTALL_CMD += ; ln -sf /data/misc/hosts $(TARGET_OUT_ETC)/hosts
1.2 屏蔽原来的system/etc/hosts 拷贝动作,涉及到的mk文件修改如下
device/generic/uml/uml.mk
device/generic/goldfish/minimal_system.mk
build/make/target/product/base_system.mk
device/generic/trusty/qemu_trusty_base.mk
在以上文件中,找到system/core/rootdir/etc/hosts:system/etc/hosts语句,并删除或者注释掉,下面列出其中一个uml.mk的修改方法,其他类似:
PRODUCT_COPY_FILES += \