这种做法没有删除任何adb相关的东西,只是设置persist.sys.usb.config中的adb相关属性时添加宏控制。
userdebug版本一样可以禁用
添加宏开关
- device/mediatek/mt6761/BoardConfig.mk
# for adb
ADB_ENABLE:=false
添加ro.adb.enabled属性
- build/make/core/main.mk
# for adb
ifeq (true,$(strip $(ADB_ENABLE)))
ADDITIONAL_SYSTEM_PROPERTIES += ro.adb.enabled=1
else
ADDITIONAL_SYSTEM_PROPERTIES += ro.adb.enabled=0
endif
根据ro.adb.enabled设置persist.sys.usb.config
- system/core/init/property_service.cpp
static uint32_t PropertySet(const std::string& name, const std::string& value, std::string* error) {
// for adb
if (name == "persist.sys.usb.config" /*|| name == "sys.usb.config"*/){
LOG(INFO) << " name= " << name << " value= " << value;
std::string adb_value = GetProperty("ro.adb.enabled", "0");
if (adb_value == "0"){
if (value.find("adb") != std::string::npos){