| ### ADB in trade-in mode |
| type adbd_tradeinmode, domain, coredomain, adbd_common; |
| |
| # Create and use network sockets. |
| net_domain(adbd_tradeinmode) |
| |
| # Run /system/bin/tradeinmode |
| domain_auto_trans(adbd_tradeinmode, tradeinmode_exec, tradeinmode) |
| |
| # Baseline rules to make adbd work after setcon(). |
| allow adbd_tradeinmode adbd:unix_stream_socket { |
| rw_socket_perms_no_ioctl |
| listen |
| accept |
| }; |
| allow adbd_tradeinmode adbd:fd use; |
| allow adbd_tradeinmode adbd:unix_dgram_socket { connect write }; |
| allow adbd_tradeinmode functionfs:dir r_dir_perms; |
| allow adbd_tradeinmode functionfs:file rw_file_perms; |
| allow adbd_tradeinmode proc_uptime:file r_file_perms; |
| allow adbd_tradeinmode rootfs:dir r_dir_perms; |
| |
| set_prop(adbd_tradeinmode, ffs_control_prop) |
| |
| # Allow changing persist.adb.tradeinmode when testing. |
| userdebug_or_eng(`set_prop(adbd_tradeinmode, shell_prop)') |