<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2019 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<!--
This XML file declares which system packages should be initially installed for new users based on
their user type. All system packages on the device should ideally have an entry in an xml file
(keyed by its manifest name).

Base user-types (every user will be at least one of these types) are:
  SYSTEM    (user 0)
  FULL      (any non-profile human user)
  PROFILE   (profile human user)
the precise meaning of which is defined in
frameworks/base/core/java/android/content/pm/UserInfo.java.
TODO(b/143784345): When UserInfo flags are categorized, reference the "base type" category here.

More granular control is also available by specifying individual user types (every user is exactly
one of these user types).
This includes AOSP user types defined in frameworks/base/core/java/android/os/UserManager.java, like
    android.os.usertype.full.SYSTEM
    android.os.usertype.full.SECONDARY
    android.os.usertype.full.GUEST
    android.os.usertype.full.DEMO
    android.os.usertype.full.RESTRICTED
    android.os.usertype.profile.MANAGED
    android.os.usertype.system.HEADLESS
as well as any OEM custom user types defined using
frameworks/base/services/core/java/com/android/server/pm/UserTypeFactory.java.
Any specified user types must be valid user types on the device (i.e. created in UserTypeFactory).

The following three examples should cover most normal cases:

1. For a system package to be pre-installed only in user 0:

   <install-in-user-type package="com.android.example">
       <install-in user-type="SYSTEM" />
   </install-in-user-type>


2. For a system package to be pre-installed on all human users (e.g. a web browser), i.e. to be
installed on any user of type type FULL or PROFILE (since this covers all human users):

   <install-in-user-type package="com.android.example">
       <install-in user-type="FULL" />
       <install-in user-type="PROFILE" />
   </install-in-user-type>


3. For a system package to be pre-installed on all human users except for profile users (e.g. a
wallpaper app, since profiles cannot display wallpaper):

   <install-in-user-type package="com.android.example">
       <install-in user-type="FULL" />
   </install-in-user-type>


Some system packages truly are required to be on all users, regardless of type, in which case use:
   <install-in-user-type package="com.android.example">
       <install-in user-type="SYSTEM">
       <install-in user-type="FULL" />
       <install-in user-type="PROFILE" />
   </install-in-user-type>

More fine-grained options are also available by specifying individual user types.
E.g.
   <install-in-user-type package="com.android.example">
       <install-in user-type="android.os.usertype.profile.MANAGED" />
       <install-in user-type="android.os.usertype.full.GUEST" />
       <install-in user-type="SYSTEM">
   </install-in-user-type>
which installs this package on any user whose user type is a managed profile or a guest, or is of
a SYSTEM base type.

Additionally, packages can blacklist user types. Blacklists override any whitelisting (in any file).
E.g.
     <install-in-user-type package="com.android.example">
        <install-in user-type="FULL" />
        <do-not-install-in user-type="android.os.usertype.full.GUEST" />
    </install-in-user-type>
If a user is of type android.os.usertype.full.GUEST (which itself is a subtype of FULL), this
package will NOT be installed, because the 'do-not-install-in' takes precedence over 'install-in'.

The way that a device treats system packages that do not have any entry (for any user type) at all
is determined by the config resource value config_userTypePackageWhitelistMode.
See frameworks/base/core/res/res/values/config.xml#config_userTypePackageWhitelistMode.

Changes to the whitelist during system updates can result in installing new system packages
to pre-existing users, but cannot uninstall system packages from pre-existing users.
-->
<config>
    <install-in-user-type package="com.android.providers.settings">
        <install-in user-type="SYSTEM" />
        <install-in user-type="FULL" />
        <install-in user-type="PROFILE" />
    </install-in-user-type>
    <install-in-user-type package="com.android.wallpaperbackup">
        <install-in user-type="FULL" />
    </install-in-user-type>
</config>
