1<?xml version="1.0" encoding="utf-8"?> 2<!-- 3Copyright 2014 The Chromium Authors 4Use of this source code is governed by a BSD-style license that can be 5found in the LICENSE file. 6--> 7 8<manifest xmlns:android="http://schemas.android.com/apk/res/android" 9 package="org.chromium.native_test" 10 android:versionCode="1" 11 android:versionName="1.0"> 12 13 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 14 <uses-permission android:name="android.permission.BLUETOOTH"/> 15 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 16 <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/> 17 <uses-permission android:name="android.permission.CAMERA" /> 18 <uses-permission android:name="android.permission.INTERNET"/> 19 <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/> 20 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> 21 <uses-permission android:name="android.permission.RECORD_AUDIO"/> 22 <uses-permission android:name="android.permission.SET_TIME_ZONE"/> 23 <uses-permission android:name="android.permission.WAKE_LOCK"/> 24 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 25 26 <!-- Explicitly set the attribute requestLegacyExternalStorage to "true" 27 since it is "false" by default on apps targeting Android 10, and that 28 breaks test listing. See 29 https://developer.android.com/training/data-storage#scoped-storage and 30 https://developer.android.com/training/data-storage/compatibility. --> 31 {% if allow_cleartext_traffic == 'true' %} 32 <application android:label="NativeTests" 33 android:usesCleartextTraffic="true" 34 android:requestLegacyExternalStorage="true" 35 android:memtagMode="sync" 36 android:name="org.chromium.native_test.NativeTestApplication"> 37 {% else %} 38 <application android:label="NativeTests" 39 android:requestLegacyExternalStorage="true" 40 android:memtagMode="sync" 41 android:name="org.chromium.native_test.NativeTestApplication"> 42 {% endif %} 43 {% if use_native_activity == 'true' %} 44 <activity android:name=".NativeUnitTestNativeActivity" 45 android:label="NativeTest" 46 android:configChanges="orientation|keyboardHidden" 47 android:process=":test_process" 48 android:exported="true"> 49 <meta-data android:name="android.app.lib_name" 50 android:value="{{ native_library_name }}" /> 51 {% else %} 52 <activity android:name=".NativeUnitTestActivity" 53 android:label="NativeTest" 54 android:configChanges="orientation|keyboardHidden" 55 android:process=":test_process" 56 android:exported="true"> 57 {% endif %} 58 <intent-filter> 59 <action android:name="android.intent.action.MAIN" /> 60 <category android:name="android.intent.category.LAUNCHER" /> 61 </intent-filter> 62 </activity> 63 64 <!-- If you change the number below, make sure to add/remove actual service classes 65 org/chromium/base/MultiprocessTestClientService*.java --> 66 {% set num_test_client_services = 10 %} 67 <meta-data android:name="org.chromium.native_test.NUM_TEST_CLIENT_SERVICES" 68 android:value="{{ num_test_client_services }}"/> 69 {% for i in range(num_test_client_services) %} 70 <service android:name="org.chromium.base.MultiprocessTestClientService{{ i }}" 71 android:process=":test_client_process{{ i }}" 72 android:isolatedProcess="false" 73 android:exported="false" /> 74 {% endfor %} 75 </application> 76 77 <instrumentation android:name="org.chromium.build.gtest_apk.NativeTestInstrumentationTestRunner" 78 android:targetPackage="org.chromium.native_test" 79 android:label="Instrumentation entry point for org.chromium.native_test" /> 80 81</manifest> 82