Hash :
85ca71c2
Author :
Date :
2019-01-16T15:46:23
Create a whitelist for use in Android platform In order to reduce the startup impact to near zero, we are creating a whitelist to be checked before parsing rules. The whitelist will be shared over Global Settings. To generate it, we will listen for intents at boot (LOCKED_BOOT_COMPLETED) and when ANGLE itself has been updated (MY_PACKAGE_REPLACED). The whitelist can also be populated by hand: adb shell settings put global angle_whitelist app1,app2,appN We plan to further mitigate the ANGLE-enabled app impact by parsing the full rules when creating the whitelist, off of the critical path. Bug: angleproject:3086 Test: Internal CTS tests and manual verification Change-Id: I6263358e2fdbfaa7183d1b941005b5455285cbff Reviewed-on: https://chromium-review.googlesource.com/c/1415715 Reviewed-by: Tim Van Patten <timvp@google.com> Commit-Queue: Cody Northrop <cnorthrop@google.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2018 The ANGLE Project Authors. All rights reserved. Use of this
source code is governed by a BSD-style license that can be found in the
LICENSE file.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="{{manifest_package|default('com.android.angle')}}">
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-sdk android:minSdkVersion="26"
android:targetSdkVersion="28">
</uses-sdk>
<application android:label="Android System Angle"
android:icon="@{{manifest_package|default('com.android.angle')}}:drawable/icon"
android:extractNativeLibs="false"
android:multiArch="true">
<activity android:name=".MainActivity"
android:label="@string/angle_preferences"
android:description="@string/angle_preferences_summary"
android:theme="@style/Theme.Settings"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.INFO"/>
</intent-filter>
<!-- Indicate that this PKG is ANGLE. -->
<intent-filter android:priority="1">
<action android:name="android.app.action.ANGLE_FOR_ANDROID" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.service.quicksettings.action.QS_TILE_PREFERENCES" />
</intent-filter>
<!-- Mark this fragment as a dynamic setting in the development category. -->
<intent-filter>
<action android:name="com.android.settings.action.IA_SETTINGS" />
</intent-filter>
<meta-data android:name="com.android.settings.category"
android:value="com.android.settings.category.ia.development" />
<meta-data android:name="com.android.settings.summary" android:resource="@string/angle_preferences_summary" />
<meta-data android:name="com.android.settings.order" android:value="100" />
<meta-data android:name="com.android.settings.profile" android:value="primary_profile_only" />
</activity>
<receiver android:name="com.android.angle.common.Receiver"
android:directBootAware="true">
<intent-filter>
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
</intent-filter>
</receiver>
</application>
</manifest>