<?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: 115848568 android.intent.action.ACTION_AIRPLANE_MODE_CHANGED
         Will be removed after v17 of CS.apk is released.
    Bug: 114804753 android.intent.action.DISMISS_TIMER (public in API 28)
    Bug: 117590943 android.intent.action.View
         Fixed in GMSCore v14.7.68.
    Bug: 67109014
    android.intent.action.EMERGENCY_STATE_CHANGED
    android.intent.action.USER_ADDED
    android.intent.action.OMADM_BROWSER_SET_HOMEPAGE
    android.intent.action.OMADM_BROWSER_GET_HOMEPAGE
    android.intent.action.CSC_BROWSER_SET_HOMEPAGE
    android.intent.action.CSC_BROWSER_SET_SEARCH_ENGINE
    android.intent.action.STK_BROWSER_GET_HOMEPAGE2
    android.intent.action.SBROWSER_QR_SCAN_RESULT
    android.intent.action.BCS_REQUEST
    android.intent.action.STK_BROWSER_GET_HOMEPAGE
    android.intent.action.SBROWSER_VIEW_FOR_EXTERNAL_APP
    android.intent.action.CHAMELEON_BROWSER_SET_HOMEPAGE
    android.intent.action.USER_ADDED
    android.intent.action.PEDOMETER_SETTING_SYNC
    android.intent.action.OMADM_BROWSER_SET_HOMEPAGE
    android.intent.action.OMADM_BROWSER_GET_HOMEPAGE
    android.intent.action.CSC_BROWSER_SET_HOMEPAGE
    android.intent.action.CSC_BROWSER_SET_SEARCH_ENGINE
    android.intent.action.STK_BROWSER_GET_HOMEPAGE2
    android.intent.action.SBROWSER_QR_SCAN_RESULT
    android.intent.action.BCS_REQUEST
    android.intent.action.STK_BROWSER_GET_HOMEPAGE
    android.intent.action.SBROWSER_VIEW_FOR_EXTERNAL_APP
    android.intent.action.CHAMELEON_BROWSER_SET_HOMEPAGE
    android.intent.action.STOP_NETWORK_BOOSTER
    android.intent.action.START_NETWORK_BOOSTER
    android.intent.action.BADGE_COUNT_UPDATE
        All of them(except BADGE_COUNT_UPDATE) will be fixed on P.
-->
<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.ACTION_AIRPLANE_MODE_CHANGED</value>
      <value>android.intent.action.DISMISS_TIMER</value>
      <value>android.intent.action.View</value>
      <value>android.intent.action.EMERGENCY_STATE_CHANGED</value>
      <value>android.intent.action.USER_ADDED</value>
      <value>android.intent.action.OMADM_BROWSER_SET_HOMEPAGE</value>
      <value>android.intent.action.OMADM_BROWSER_GET_HOMEPAGE</value>
      <value>android.intent.action.CSC_BROWSER_SET_HOMEPAGE</value>
      <value>android.intent.action.CSC_BROWSER_SET_SEARCH_ENGINE</value>
      <value>android.intent.action.STK_BROWSER_GET_HOMEPAGE2</value>
      <value>android.intent.action.SBROWSER_QR_SCAN_RESULT</value>
      <value>android.intent.action.BCS_REQUEST</value>
      <value>android.intent.action.STK_BROWSER_GET_HOMEPAGE</value>
      <value>android.intent.action.SBROWSER_VIEW_FOR_EXTERNAL_APP</value>
      <value>android.intent.action.CHAMELEON_BROWSER_SET_HOMEPAGE</value>
      <value>android.intent.action.USER_ADDED</value>
      <value>android.intent.action.PEDOMETER_SETTING_SYNC</value>
      <value>android.intent.action.OMADM_BROWSER_SET_HOMEPAGE</value>
      <value>android.intent.action.OMADM_BROWSER_GET_HOMEPAGE</value>
      <value>android.intent.action.CSC_BROWSER_SET_HOMEPAGE</value>
      <value>android.intent.action.CSC_BROWSER_SET_SEARCH_ENGINE</value>
      <value>android.intent.action.STK_BROWSER_GET_HOMEPAGE2</value>
      <value>android.intent.action.SBROWSER_QR_SCAN_RESULT</value>
      <value>android.intent.action.BCS_REQUEST</value>
      <value>android.intent.action.STK_BROWSER_GET_HOMEPAGE</value>
      <value>android.intent.action.SBROWSER_VIEW_FOR_EXTERNAL_APP</value>
      <value>android.intent.action.CHAMELEON_BROWSER_SET_HOMEPAGE</value>
      <value>android.intent.action.STOP_NETWORK_BOOSTER</value>
      <value>android.intent.action.START_NETWORK_BOOSTER</value>
      <value>android.intent.action.BADGE_COUNT_UPDATE</value>
    </entry>
</dynamicConfig>
