aboutsummaryrefslogtreecommitdiffstats
path: root/java/AndroidManifest.xml.in
diff options
context:
space:
mode:
Diffstat (limited to 'java/AndroidManifest.xml.in')
-rw-r--r--java/AndroidManifest.xml.in225
1 files changed, 225 insertions, 0 deletions
diff --git a/java/AndroidManifest.xml.in b/java/AndroidManifest.xml.in
new file mode 100644
index 00000000000..895e7f88c57
--- /dev/null
+++ b/java/AndroidManifest.xml.in
@@ -0,0 +1,225 @@
1<!-- @configure_input@
2
3Copyright (C) 2023 Free Software Foundation, Inc.
4
5This file is part of GNU Emacs.
6
7GNU Emacs is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation, either version 3 of the License, or
10(at your option) any later version.
11
12GNU Emacs is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. -->
19
20<!-- targetSandboxVersion must be 1. Otherwise, fascist security
21 restrictions prevent Emacs from making HTTP connections. -->
22
23<manifest xmlns:android="http://schemas.android.com/apk/res/android"
24 package="org.gnu.emacs"
25 android:targetSandboxVersion="1"
26 android:installLocation="auto"
27 android:requestLegacyExternalStorage="true"
28 @ANDROID_SHARED_USER_ID@
29 @ANDROID_SHARED_USER_NAME@
30 android:versionCode="@emacs_major_version@"
31 android:versionName="@version@">
32
33 <!-- Paste in every permission in existence so Emacs can do
34 anything. -->
35
36 <uses-permission android:name="android.permission.READ_CONTACTS" />
37 <uses-permission android:name="android.permission.WRITE_CONTACTS" />
38 <uses-permission android:name="android.permission.VIBRATE" />
39 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
40 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
41 <uses-permission android:name="android.permission.INTERNET" />
42 <uses-permission android:name="android.permission.SET_WALLPAPER" />
43 <!-- Despite the claim that WRITE_EXTERNAL_STORAGE also covers
44 reading from external storage, specifying READ_EXTERNAL_STORAGE
45 seems to still be necessary on some versions of Android.
46 (bug#64445) -->
47 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
48 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
49 <uses-permission android:name="android.permission.SEND_SMS" />
50 <uses-permission android:name="android.permission.RECEIVE_SMS" />
51 <uses-permission android:name="android.permission.RECEIVE_MMS"/>
52 <uses-permission android:name="android.permission.WRITE_SMS"/>
53 <uses-permission android:name="android.permission.READ_SMS"/>
54 <uses-permission android:name="android.permission.NFC" />
55 <uses-permission android:name="android.permission.TRANSMIT_IR" />
56 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
57 <uses-permission android:name="android.permission.WAKE_LOCK"/>
58 <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
59 <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
60 <uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES"/>
61 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
62 <uses-permission android:name="android.permission.RECORD_AUDIO" />
63 <uses-permission android:name="android.permission.CAMERA" />
64
65 <!-- This is required on Android 11 or later to access /sdcard. -->
66
67 <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
68
69 <uses-sdk android:minSdkVersion="@ANDROID_MIN_SDK@"
70 android:targetSdkVersion="33"/>
71
72 <application android:name="org.gnu.emacs.EmacsApplication"
73 android:label="Emacs"
74 android:icon="@drawable/emacs"
75 android:hardwareAccelerated="true"
76 android:supportsRtl="true"
77 android:theme="@style/EmacsStyle"
78 android:debuggable="@ANDROID_DEBUGGABLE@"
79 android:allowBackup="true"
80 android:extractNativeLibs="true">
81
82 <activity android:name="org.gnu.emacs.EmacsActivity"
83 android:launchMode="singleInstance"
84 android:windowSoftInputMode="adjustResize"
85 android:exported="true"
86 android:configChanges="orientation|screenSize|screenLayout|keyboardHidden">
87 <intent-filter>
88 <action android:name="android.intent.action.MAIN" />
89 <category android:name="android.intent.category.DEFAULT" />
90 <category android:name="android.intent.category.LAUNCHER" />
91 </intent-filter>
92 </activity>
93
94 <activity android:name="org.gnu.emacs.EmacsOpenActivity"
95 android:taskAffinity="open.dialog"
96 android:excludeFromRecents="true"
97 android:exported="true">
98
99 <!-- Allow Emacs to open all kinds of files known to Android. -->
100
101 <intent-filter>
102 <action android:name="android.intent.action.VIEW"/>
103 <action android:name="android.intent.action.EDIT"/>
104 <action android:name="android.intent.action.PICK"/>
105
106 <category android:name="android.intent.category.DEFAULT"/>
107
108 <data android:mimeType="image/aces"/>
109 <data android:mimeType="image/avci"/>
110 <data android:mimeType="image/avcs"/>
111 <data android:mimeType="image/avif"/>
112 <data android:mimeType="image/bmp"/>
113 <data android:mimeType="image/cgm"/>
114 <data android:mimeType="image/dicom-rle"/>
115 <data android:mimeType="image/dpx"/>
116 <data android:mimeType="image/emf"/>
117 <data android:mimeType="image/example"/>
118 <data android:mimeType="image/fits"/>
119 <data android:mimeType="image/g3fax"/>
120 <data android:mimeType="image/heic"/>
121 <data android:mimeType="image/heic-sequence"/>
122 <data android:mimeType="image/heif"/>
123 <data android:mimeType="image/heif-sequence"/>
124 <data android:mimeType="image/hej2k"/>
125 <data android:mimeType="image/hsj2"/>
126 <data android:mimeType="image/jls"/>
127 <data android:mimeType="image/jp2"/>
128 <data android:mimeType="image/jph"/>
129 <data android:mimeType="image/jphc"/>
130 <data android:mimeType="image/jpm"/>
131 <data android:mimeType="image/jpx"/>
132 <data android:mimeType="image/jxr"/>
133 <data android:mimeType="image/jxrA"/>
134 <data android:mimeType="image/jxrS"/>
135 <data android:mimeType="image/jxs"/>
136 <data android:mimeType="image/jxsc"/>
137 <data android:mimeType="image/jxsi"/>
138 <data android:mimeType="image/jxss"/>
139 <data android:mimeType="image/ktx"/>
140 <data android:mimeType="image/ktx2"/>
141 <data android:mimeType="image/naplps"/>
142 <data android:mimeType="image/png"/>
143 <data android:mimeType="image/prs.btif"/>
144 <data android:mimeType="image/prs.pti"/>
145 <data android:mimeType="image/pwg-raster"/>
146 <data android:mimeType="image/svg+xml"/>
147 <data android:mimeType="image/t38"/>
148 <data android:mimeType="image/tiff"/>
149 <data android:mimeType="image/tiff-fx"/>
150 <data android:mimeType="image/xpm"/>
151 <data android:mimeType="text/*"/>
152 <data android:mimeType="application/*xml"/>
153 <data android:mimeType="application/atom+xml"/>
154 <data android:mimeType="application/dxf"/>
155 <data android:mimeType="application/ecmascript"/>
156 <data android:mimeType="application/javascript"/>
157 <data android:mimeType="application/json"/>
158 <data android:mimeType="application/*log*"/>
159 <data android:mimeType="application/octet-stream"/>
160 <data android:mimeType="application/soap+xm"/>
161 <data android:mimeType="application/x-caramel"/>
162 <data android:mimeType="application/x-klaunch"/>
163 <data android:mimeType="application/x-latex"/>
164 <data android:mimeType="application/x-sh"/>
165 <data android:mimeType="application/x-tcl"/>
166 <data android:mimeType="application/x-tex*"/>
167 <data android:mimeType="application/x-troff*"/>
168 <data android:mimeType="application/xhtml+xml"/>
169 <data android:mimeType="application/xml*"/>
170 <data android:mimeType="application/zip"/>
171 <data android:mimeType="application/x-zip-compressed"/>
172 </intent-filter>
173 </activity>
174
175 <activity android:name="org.gnu.emacs.EmacsMultitaskActivity"
176 android:windowSoftInputMode="adjustResize"
177 android:exported="true"
178 android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"/>
179
180 <activity android:autoRemoveFromRecents="true"
181 android:label="Emacs options"
182 android:exported="true"
183 android:name=".EmacsPreferencesActivity">
184 <intent-filter>
185 <action android:name="android.intent.action.APPLICATION_PREFERENCES" />
186 <category android:name="android.intent.category.DEFAULT" />
187 </intent-filter>
188 </activity>
189
190 <!-- Android 6 and earlier don't display ``application
191 preferences'' activities in Settings, so display the
192 preferences activity as a launcher icon instead. -->
193
194 <activity android:autoRemoveFromRecents="true"
195 android:label="Emacs options"
196 android:enabled="@bool/isBeforeNougat"
197 android:exported="@bool/isBeforeNougat"
198 android:icon="@drawable/emacs_wrench"
199 android:name=".EmacsLauncherPreferencesActivity">
200 <intent-filter>
201 <action android:name="android.intent.action.MAIN" />
202 <category android:name="android.intent.category.DEFAULT" />
203 <category android:name="android.intent.category.LAUNCHER" />
204 </intent-filter>
205 </activity>
206
207 <provider android:name="org.gnu.emacs.EmacsDocumentsProvider"
208 android:authorities="org.gnu.emacs"
209 android:exported="true"
210 android:grantUriPermissions="true"
211 android:permission="android.permission.MANAGE_DOCUMENTS"
212 android:enabled="@bool/isAtLeastKitKat">
213 <intent-filter>
214 <action
215 android:name="android.content.action.DOCUMENTS_PROVIDER"/>
216 </intent-filter>
217 </provider>
218
219 <service android:name="org.gnu.emacs.EmacsService"
220 android:directBootAware="false"
221 android:enabled="true"
222 android:exported="false"
223 android:label="GNU Emacs service"/>
224 </application>
225</manifest>