Skip to content
Snippets Groups Projects
  • Stephen Smalley's avatar
    42fb824c
    Refactor the shell domains. · 42fb824c
    Stephen Smalley authored
    
    Originally we used the shell domain for ADB shell only and
    the init_shell domain for the console service, both transitioned
    via automatic domain transitions on sh.  So they originally
    shared a common set of rules.  Then init_shell started to be used
    for sh commands invoked by init.<board>.rc files, and we switched
    the console service to just use the shell domain via seclabel entry
    in init.rc.  Even most of the sh command instances in init.<board>.rc
    files have been converted to use explicit seclabel options with
    more specific domains (one lingering use is touch_fw_update service
    in init.grouper.rc).  The primary purpose of init_shell at this point
    is just to shed certain permissions from the init domain when init invokes
    a shell command.  And init_shell and shell are quite different in
    their permission requirements since the former is used now for
    uid-0 processes spawned by init whereas the latter is used for
    uid-shell processes spawned by adb or init.
    
    Given these differences, drop the shelldomain attribute and take those
    rules directly into shell.te.  init_shell was an unconfined_domain(),
    so it loses nothing from this change.  Also switch init_shell to
    permissive_or_unconfined() so that we can see its actual denials
    in the future in userdebug/eng builds.
    
    Change-Id: I6e7e45724d1aa3a6bcce8df676857bc8eef568f0
    Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
    42fb824c
    History
    Refactor the shell domains.
    Stephen Smalley authored
    
    Originally we used the shell domain for ADB shell only and
    the init_shell domain for the console service, both transitioned
    via automatic domain transitions on sh.  So they originally
    shared a common set of rules.  Then init_shell started to be used
    for sh commands invoked by init.<board>.rc files, and we switched
    the console service to just use the shell domain via seclabel entry
    in init.rc.  Even most of the sh command instances in init.<board>.rc
    files have been converted to use explicit seclabel options with
    more specific domains (one lingering use is touch_fw_update service
    in init.grouper.rc).  The primary purpose of init_shell at this point
    is just to shed certain permissions from the init domain when init invokes
    a shell command.  And init_shell and shell are quite different in
    their permission requirements since the former is used now for
    uid-0 processes spawned by init whereas the latter is used for
    uid-shell processes spawned by adb or init.
    
    Given these differences, drop the shelldomain attribute and take those
    rules directly into shell.te.  init_shell was an unconfined_domain(),
    so it loses nothing from this change.  Also switch init_shell to
    permissive_or_unconfined() so that we can see its actual denials
    in the future in userdebug/eng builds.
    
    Change-Id: I6e7e45724d1aa3a6bcce8df676857bc8eef568f0
    Signed-off-by: default avatarStephen Smalley <sds@tycho.nsa.gov>