Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # installer daemon
- type installd, domain, domain_deprecated;
- type installd_exec, exec_type, file_type;
- init_daemon_domain(installd)
- typeattribute installd mlstrustedsubject;
- allow installd self:capability { chown dac_override fowner fsetid setgid setuid };
- # Allow labeling of files under /data/app/com.example/oat/
- allow installd dalvikcache_data_file:dir relabelto;
- allow installd dalvikcache_data_file:file { relabelto link };
- # Allow movement of APK files between volumes
- allow installd apk_data_file:dir { create_dir_perms relabelfrom };
- allow installd apk_data_file:file { create_file_perms relabelfrom link };
- allow installd apk_data_file:lnk_file { create read unlink };
- allow installd asec_apk_file:file r_file_perms;
- allow installd apk_tmp_file:file { r_file_perms unlink };
- allow installd apk_tmp_file:dir { relabelfrom create_dir_perms };
- allow installd oemfs:dir r_dir_perms;
- allow installd oemfs:file r_file_perms;
- allow installd cgroup:dir create_dir_perms;
- allow installd mnt_expand_file:dir { search getattr };
- # Check validity of SELinux context before use.
- selinux_check_context(installd)
- # Read /seapp_contexts and /data/security/seapp_contexts
- security_access_policy(installd)
- # Search /data/app-asec and stat files in it.
- allow installd asec_image_file:dir search;
- allow installd asec_image_file:file getattr;
- # Create /data/user and /data/user/0 if necessary.
- # Also required to initially create /data/data subdirectories
- # and lib symlinks before the setfilecon call. May want to
- # move symlink creation after setfilecon in installd.
- allow installd system_data_file:dir create_dir_perms;
- allow installd system_data_file:lnk_file { create setattr unlink };
- # Upgrade /data/media for multi-user if necessary.
- allow installd media_rw_data_file:dir create_dir_perms;
- allow installd media_rw_data_file:file { getattr unlink };
- # restorecon new /data/media directory.
- allow installd system_data_file:dir relabelfrom;
- allow installd media_rw_data_file:dir relabelto;
- # Upgrade /data/misc/keychain for multi-user if necessary.
- allow installd misc_user_data_file:dir create_dir_perms;
- allow installd misc_user_data_file:file create_file_perms;
- allow installd keychain_data_file:dir create_dir_perms;
- allow installd keychain_data_file:file {r_file_perms unlink};
- # Create /data/.layout_version.* file
- type_transition installd system_data_file:file install_data_file;
- allow installd install_data_file:file create_file_perms;
- # Create files under /data/dalvik-cache.
- allow installd dalvikcache_data_file:dir create_dir_perms;
- allow installd dalvikcache_data_file:file create_file_perms;
- # Create files under /data/resource-cache.
- allow installd resourcecache_data_file:dir rw_dir_perms;
- allow installd resourcecache_data_file:file create_file_perms;
- # Run dex2oat in its own sandbox.
- domain_auto_trans(installd, dex2oat_exec, dex2oat)
- # Run profman in its own sandbox.
- domain_auto_trans(installd, profman_exec, profman)
- # Run idmap in its own sandbox.
- domain_auto_trans(installd, idmap_exec, idmap)
- # Upgrade from unlabeled userdata.
- # Just need enough to remove and/or relabel it.
- allow installd unlabeled:dir { getattr search relabelfrom rw_dir_perms rmdir };
- allow installd unlabeled:notdevfile_class_set { getattr relabelfrom rename unlink setattr };
- # Read pkg.apk file for input during dexopt.
- allow installd unlabeled:file r_file_perms;
- # Upgrade from before system_app_data_file was used for system UID apps.
- # Just need enough to relabel it and to unlink removed package files.
- # Directory access covered by earlier rule above.
- allow installd system_data_file:notdevfile_class_set { getattr relabelfrom unlink };
- # Manage /data/data subdirectories, including initially labeling them
- # upon creation via setfilecon or running restorecon_recursive,
- # setting owner/mode, creating symlinks within them, and deleting them
- # upon package uninstall.
- # Types extracted from seapp_contexts type= fields.
- allow installd {
- system_app_data_file
- bluetooth_data_file
- nfc_data_file
- radio_data_file
- shell_data_file
- app_data_file
- autoplay_data_file
- }:dir { create_dir_perms relabelfrom relabelto };
- allow installd {
- system_app_data_file
- bluetooth_data_file
- nfc_data_file
- radio_data_file
- shell_data_file
- app_data_file
- autoplay_data_file
- }:notdevfile_class_set { create_file_perms relabelfrom relabelto };
- # Similar for the files under /data/misc/profiles/
- allow installd user_profile_data_file:dir create_dir_perms;
- allow installd user_profile_data_file:file create_file_perms;
- allow installd user_profile_data_file:dir rmdir;
- allow installd user_profile_data_file:file unlink;
- allow installd user_profile_foreign_dex_data_file:dir { add_name getattr rmdir open read write search remove_name };
- allow installd user_profile_foreign_dex_data_file:file { getattr rename unlink };
- # Files created/updated by profman dumps.
- allow installd profman_dump_data_file:dir { search add_name write };
- allow installd profman_dump_data_file:file { create setattr open write };
- # Create and use pty created by android_fork_execvp().
- allow installd devpts:chr_file rw_file_perms;
- # execute toybox for app relocation
- allow installd toolbox_exec:file rx_file_perms;
Advertisement
Add Comment
Please, Sign In to add comment