1*e4a36f41SAndroid Build Coastguard Worker### ADB in trade-in mode 2*e4a36f41SAndroid Build Coastguard Workertype adbd_tradeinmode, domain, coredomain, adbd_common; 3*e4a36f41SAndroid Build Coastguard Worker 4*e4a36f41SAndroid Build Coastguard Worker# Create and use network sockets. 5*e4a36f41SAndroid Build Coastguard Workernet_domain(adbd_tradeinmode) 6*e4a36f41SAndroid Build Coastguard Worker 7*e4a36f41SAndroid Build Coastguard Worker# Run /system/bin/tradeinmode 8*e4a36f41SAndroid Build Coastguard Workerdomain_auto_trans(adbd_tradeinmode, tradeinmode_exec, tradeinmode) 9*e4a36f41SAndroid Build Coastguard Worker 10*e4a36f41SAndroid Build Coastguard Worker# Baseline rules to make adbd work after setcon(). 11*e4a36f41SAndroid Build Coastguard Workerallow adbd_tradeinmode adbd:unix_stream_socket { 12*e4a36f41SAndroid Build Coastguard Worker rw_socket_perms_no_ioctl 13*e4a36f41SAndroid Build Coastguard Worker listen 14*e4a36f41SAndroid Build Coastguard Worker accept 15*e4a36f41SAndroid Build Coastguard Worker}; 16*e4a36f41SAndroid Build Coastguard Workerallow adbd_tradeinmode adbd:fd use; 17*e4a36f41SAndroid Build Coastguard Workerallow adbd_tradeinmode adbd:unix_dgram_socket { connect write }; 18*e4a36f41SAndroid Build Coastguard Workerallow adbd_tradeinmode functionfs:dir r_dir_perms; 19*e4a36f41SAndroid Build Coastguard Workerallow adbd_tradeinmode functionfs:file rw_file_perms; 20*e4a36f41SAndroid Build Coastguard Workerallow adbd_tradeinmode proc_uptime:file r_file_perms; 21*e4a36f41SAndroid Build Coastguard Workerallow adbd_tradeinmode rootfs:dir r_dir_perms; 22*e4a36f41SAndroid Build Coastguard Worker 23*e4a36f41SAndroid Build Coastguard Workerset_prop(adbd_tradeinmode, ffs_control_prop) 24*e4a36f41SAndroid Build Coastguard Worker 25*e4a36f41SAndroid Build Coastguard Worker# Allow changing persist.adb.tradeinmode when testing. 26*e4a36f41SAndroid Build Coastguard Workeruserdebug_or_eng(`set_prop(adbd_tradeinmode, shell_prop)') 27