11 · Android
android/app/src/main/AndroidManifest.xml
87 lines · XML
1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:tools="http://schemas.android.com/tools">
4
5 <!-- Network -->
6 <uses-permission android:name="android.permission.INTERNET" />
7 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
8
9 <!-- Bluetooth (for BLE peer discovery) -->
10 <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
11 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
12 <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
13 <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
14 <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
15
16 <!-- Wi-Fi Direct (for P2P mesh transport) -->
17 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
18 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
19 <uses-permission android:name="android.permission.NEARBY_WIFI_DEVICES" />
20
21 <!-- Location required for Wi-Fi Direct on Android < 13 -->
22 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
23 android:maxSdkVersion="32" />
24
25 <!-- Foreground service (embedded Tor) -->
26 <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
27 <uses-permission android:name="android.permission.FOREGROUND_SERVICE_NETWORK_PROCESS" />
28
29 <!-- Notifications -->
30 <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
31
32 <!-- Camera + microphone (image sharing, PTT voice) -->
33 <uses-permission android:name="android.permission.CAMERA" />
34 <uses-permission android:name="android.permission.RECORD_AUDIO" />
35
36 <application
37 android:allowBackup="false"
38 android:icon="@mipmap/ic_launcher"
39 android:label="@string/app_name"
40 android:roundIcon="@mipmap/ic_launcher_round"
41 android:supportsRtl="true"
42 android:theme="@style/Theme.SophaxChat">
43
44 <!-- Embedded Tor daemon service (no Orbot required) -->
45 <service
46 android:name="org.torproject.android.service.TorService"
47 android:exported="false"
48 android:foregroundServiceType="networkProcess" />
49
50 <!-- Background connection service — keeps TCP transport alive when app is not in foreground -->
51 <service
52 android:name=".SophaxForegroundService"
53 android:exported="false"
54 android:foregroundServiceType="networkProcess" />
55
56 <!-- WorkManager initializer — required for manual (on-demand) initialization -->
57 <provider
58 android:name="androidx.startup.InitializationProvider"
59 android:authorities="${applicationId}.androidx-startup"
60 android:exported="false"
61 tools:node="merge">
62 <meta-data
63 android:name="androidx.work.WorkManagerInitializer"
64 android:value="androidx.startup"
65 tools:node="remove" />
66 </provider>
67
68 <activity
69 android:name=".MainActivity"
70 android:exported="true"
71 android:windowSoftInputMode="adjustResize">
72 <intent-filter>
73 <action android:name="android.intent.action.MAIN" />
74 <category android:name="android.intent.category.LAUNCHER" />
75 </intent-filter>
76
77 <!-- Deep link: sophaxchat://add?id=&onion=&port= -->
78 <intent-filter>
79 <action android:name="android.intent.action.VIEW" />
80 <category android:name="android.intent.category.DEFAULT" />
81 <category android:name="android.intent.category.BROWSABLE" />
82 <data android:scheme="sophaxchat" android:host="add" />
83 </intent-filter>
84 </activity>
85 </application>
86
87</manifest>