The Android ADB principle (1) --- ADB enable / disable
http://www.phonesdevelopers.info/1780833/
When the user to select "Settings" -> "Applictions" -> "devleopment" -> "USB Debugging"
1. Call: Settings.Secure.putInt (getContentResolver (), Settings.Secure.ADB_ENABLED, 1) in packages / apps / Settings / src / com / android / settings / DevelopmentSettings.java
2. Frameworks / base / services / java / com / android / server / SystemServer.java in a AdbSettingsObserver:
mContentResolver.registerContentObserver (Settings.Secure.getUriFor (Settings.Secure.ADB_ENABLED),
false, new AdbSettingsObserver ());
Will receive a notification when ADB_ENABLED change, and will then the set persist.service.adb.enable 1 or 0.
In init.rc medium:
# Adbd is controlled by the persist.service.adb.enable system property
service adbd / sbin / adbd
# Disabled
on property: persist.service.adb.enable = 1
start adbd
on property: persist.service.adb.enable = 0
stop adbd
Therefore, when changes persist.service.adb.enable, the adbd will be started or stopped.
the adbd source code system / core / adb below