<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2016 Google Inc.

     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.
-->
<!--
    Bug: 33305737 android.intent.action.ACTION_CARRIER_SETUP
    Bug: 36980009 android.intent.action.QUICKBOOT_POWERON
    Bug: 36977779 android.intent.action.MASTER_CLEAR
    Bug: 38182465 android.intent.action.ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED
    Bug: 70315695 android.intent.action.HDMI_PLUGGED
    Bug: 78574873 android.intent.action.QUICKSTEP_SERVICE
    Bug: 78574873 android.intent.action.INSTALL_EPHEMERAL_PACKAGE
    Bug: 78574873 android.intent.action.RESOLVE_EPHEMERAL_PACKAGE
    Bug: 78574873 android.intent.action.EPHEMERAL_RESOLVER_SETTINGS
    Bug: 150153196 android.intent.action.LOAD_DATA (system in API 30)
    Bug: 150153196 android.intent.action.PACKAGE_UNSUSPENDED_MANUALLY (system in API 30)
    Bug: 186495404 android.intent.action.REBOOT_READY
-->
<dynamicConfig>
    <entry key ="intent_whitelist">
      <value>android.intent.action.ACTION_CARRIER_SETUP</value>
      <value>android.intent.action.QUICKBOOT_POWERON</value>
      <value>android.intent.action.ACTION_DEFAULT_SMS_SUBSCRIPTION_CHANGED</value>
      <value>android.intent.action.HDMI_PLUGGED</value>
      <value>android.intent.action.QUICKSTEP_SERVICE</value>
      <value>android.intent.action.INSTALL_EPHEMERAL_PACKAGE</value>
      <value>android.intent.action.RESOLVE_EPHEMERAL_PACKAGE</value>
      <value>android.intent.action.EPHEMERAL_RESOLVER_SETTINGS</value>
      <value>android.intent.action.LOAD_DATA</value>
      <value>android.intent.action.PACKAGE_UNSUSPENDED_MANUALLY</value>
      <value>android.intent.action.REBOOT_READY</value>
    </entry>
</dynamicConfig>
