Skip to content
Snippets Groups Projects
  • Alex Klyubin's avatar
    Use _client and _server for Audio HAL policy · ac2b4cd2
    Alex Klyubin authored
    This starts the switch for HAL policy to the approach where:
    * domains which are clients of Foo HAL are associated with
      hal_foo_client attribute,
    * domains which offer the Foo HAL service over HwBinder are
      associated with hal_foo_server attribute,
    * policy needed by the implementation of Foo HAL service is written
      against the hal_foo attribute. This policy is granted to domains
      which offer the Foo HAL service over HwBinder and, if Foo HAL runs
      in the so-called passthrough mode (inside the process of each
      client), also granted to all domains which are clients of Foo HAL.
      hal_foo is there to avoid duplicating the rules for hal_foo_client
      and hal_foo_server to cover the passthrough/in-process Foo HAL and
      binderized/out-of-process Foo HAL cases.
    
    A benefit of associating all domains which are clients of Foo HAL with
    hal_foo (when Foo HAL is in passthrough mode) is that this removes the
    need for device-specific policy to be able to reference these domains
    directly (in order to add device-specific allow rules). Instead,
    device-specific policy only needs to reference hal_foo and should no
    longer need to care which particular domains on the device are clients
    of Foo HAL. This can be seen in simplification of the rules for
    audioserver domain which is a client of Audio HAL whose policy is
    being restructured in this commit.
    
    This commit uses Audio HAL as an example to illustrate the approach.
    Once this commit lands, other HALs will also be switched to this
    approach.
    
    Test: Google Play Music plays back radios
    Test: Google Camera records video with sound and that video is then
          successfully played back with sound
    Test: YouTube app plays back clips with sound
    Test: YouTube in Chrome plays back clips with sound
    Bug: 34170079
    Change-Id: I2597a046753edef06123f0476c2ee6889fc17f20
    ac2b4cd2