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 android:maxSdkVersion="30"/> 16 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" 17 android:maxSdkVersion="30"/> 18 <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/> 19 <uses-permission android:name="android.permission.BLUETOOTH_SCAN" 20 android:usesPermissionFlags="neverForLocation"/> 21 <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/> 22 <uses-permission android:name="android.permission.CAMERA" /> 23 <uses-permission android:name="android.permission.INTERNET"/> 24 <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/> 25 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> 26 <uses-permission android:name="android.permission.RECORD_AUDIO"/> 27 <uses-permission android:name="android.permission.SET_TIME_ZONE"/> 28 <uses-permission android:name="android.permission.WAKE_LOCK"/> 29 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 30 31 <!-- Explicitly set the attribute requestLegacyExternalStorage to "true" 32 since it is "false" by default on apps targeting Android 10, and that 33 breaks test listing. See 34 https://developer.android.com/training/data-storage#scoped-storage and 35 https://developer.android.com/training/data-storage/compatibility. --> 36 {% if allow_cleartext_traffic == 'true' %} 37 <application android:label="NativeTests" 38 android:usesCleartextTraffic="true" 39 android:requestLegacyExternalStorage="true" 40 android:memtagMode="sync" 41 android:name="org.chromium.native_test.NativeTestApplication"> 42 {% else %} 43 <application android:label="NativeTests" 44 android:requestLegacyExternalStorage="true" 45 android:memtagMode="sync" 46 android:name="org.chromium.native_test.NativeTestApplication"> 47 {% endif %} 48 {% if use_native_activity == 'true' %} 49 <activity android:name=".NativeUnitTestNativeActivity" 50 android:label="NativeTest" 51 android:configChanges="orientation|keyboardHidden" 52 android:process=":test_process" 53 android:exported="true"> 54 <meta-data android:name="android.app.lib_name" 55 android:value="{{ native_library_name }}" /> 56 {% else %} 57 <activity android:name=".NativeUnitTestActivity" 58 android:label="NativeTest" 59 android:configChanges="orientation|keyboardHidden" 60 android:process=":test_process" 61 android:exported="true"> 62 {% endif %} 63 <intent-filter> 64 <action android:name="android.intent.action.MAIN" /> 65 <category android:name="android.intent.category.LAUNCHER" /> 66 </intent-filter> 67 </activity> 68 69 <!-- If you change the number below, make sure to add/remove actual service classes 70 org/chromium/base/MultiprocessTestClientService*.java --> 71 {% set num_test_client_services = 10 %} 72 <meta-data android:name="org.chromium.native_test.NUM_TEST_CLIENT_SERVICES" 73 android:value="{{ num_test_client_services }}"/> 74 {% for i in range(num_test_client_services) %} 75 <service android:name="org.chromium.base.MultiprocessTestClientService{{ i }}" 76 android:process=":test_client_process{{ i }}" 77 android:isolatedProcess="false" 78 android:exported="false" /> 79 {% endfor %} 80 </application> 81 82 <instrumentation android:name="org.chromium.build.gtest_apk.NativeTestInstrumentationTestRunner" 83 android:targetPackage="org.chromium.native_test" 84 android:label="Instrumentation entry point for org.chromium.native_test" /> 85 86</manifest> 87