| ### |
| ### Untrusted apps. |
| ### |
| ### This file defines the rules for untrusted apps. |
| ### Apps are labeled based on mac_permissions.xml (maps signer and |
| ### optionally package name to seinfo value) and seapp_contexts (maps UID |
| ### and optionally seinfo value to domain for process and type for data |
| ### directory). The untrusted_app domain is the default assignment in |
| ### seapp_contexts for any app with UID between APP_AID (10000) |
| ### and AID_ISOLATED_START (99000) if the app has no specific seinfo |
| ### value as determined from mac_permissions.xml. In current AOSP, this |
| ### domain is assigned to all non-system apps as well as to any system apps |
| ### that are not signed by one of the four platform keys. To move |
| ### a system app into a specific domain, add a signer entry for it to |
| ### mac_permissions.xml and assign it one of the pre-existing seinfo values |
| ### or define and use a new seinfo value in both mac_permissions.xml and |
| ### seapp_contexts. |
| ### |
| ### untrusted_app includes all the appdomain rules, plus the |
| ### additional following rules: |
| ### |
| |
| type untrusted_app, domain; |
| permissive_or_unconfined(untrusted_app) |
| app_domain(untrusted_app) |
| net_domain(untrusted_app) |
| bluetooth_domain(untrusted_app) |
| |
| # Some apps ship with shared libraries and binaries that they write out |
| # to their sandbox directory and then execute. |
| allow untrusted_app app_data_file:file rx_file_perms; |
| |
| allow untrusted_app tun_device:chr_file rw_file_perms; |
| |
| # Internal SDCard rw access. |
| allow untrusted_app sdcard_internal:dir create_dir_perms; |
| allow untrusted_app sdcard_internal:file create_file_perms; |
| |
| # External SDCard rw access. |
| allow untrusted_app sdcard_external:dir create_dir_perms; |
| allow untrusted_app sdcard_external:file create_file_perms; |
| |
| # ASEC |
| allow untrusted_app asec_apk_file:dir { getattr }; |
| allow untrusted_app asec_apk_file:file r_file_perms; |
| # Execute libs in asec containers. |
| allow untrusted_app asec_public_file:file execute; |
| |
| # Allow the allocation and use of ptys |
| # Used by: https://play.google.com/store/apps/details?id=jackpal.androidterm |
| create_pty(untrusted_app) |
| |
| # Used by Finsky / Android "Verify Apps" functionality when |
| # running "adb install foo.apk". |
| # TODO: Long term, we don't want apps probing into shell data files. |
| # Figure out a way to remove these rules. |
| allow untrusted_app shell_data_file:file r_file_perms; |
| allow untrusted_app shell_data_file:dir r_dir_perms; |