forked from ppy/osu
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAndroidManifest.xml
More file actions
127 lines (116 loc) · 13.8 KB
/
Copy pathAndroidManifest.xml
File metadata and controls
127 lines (116 loc) · 13.8 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?xml version='1.0' encoding='utf-8'?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="sh.ppy.osulazer" android:installLocation="auto">
<uses-sdk android:minSdkVersion="33" android:targetSdkVersion="36" />
<!--
android:enableOnBackInvokedCallback="false" — opt OUT of the Android predictive back gesture.
With targetSdk=36 the OnBackInvokedDispatcher path is enabled by default, which routes the
system Back gesture through OnBackInvokedCallback INSTEAD of the legacy KeyEvent pipeline.
Our OsuGameActivity.DispatchKeyEvent overrides the legacy path to translate KEYCODE_BACK
into Escape so Back navigates within the game; without this opt-out the gesture never
reaches DispatchKeyEvent and the OS default for root-task activities (moveTaskToBack,
i.e. minimise) takes over instead.
-->
<application android:allowBackup="true" android:supportsRtl="true" android:label="osu!" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher" android:largeHeap="true" android:hardwareAccelerated="true" android:extractNativeLibs="false" android:enableOnBackInvokedCallback="false" android:appCategory="game">
<provider android:name="androidx.core.content.FileProvider" android:authorities="sh.ppy.osulazer.fileprovider" android:grantUriPermissions="true" android:exported="false">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/filepaths" />
</provider>
<!-- ═══════════════════════════════════════════════════════════════════════════════════
Samsung (One UI / Galaxy / DeX)
─────────────────────────────────────────────────────────────────────────────────
keepalive.density — keep app alive across density changes (DeX connect/disconnect).
multidisplay.* — keep process alive when switching between phone and DeX display.
game.biz — register with Game Launcher / Game Booster for CPU+GPU boost,
thermal management, and display-refresh priority on phones/tablets.
dex.game — register with the DeX Game Engine (One UI 5+): applies the same
CPU/GPU boost pipeline as Game Booster but on the DeX/external-
monitor path, where the Game Launcher overlay does not appear. -->
<meta-data android:name="com.samsung.android.keepalive.density" android:value="true" />
<meta-data android:name="com.samsung.android.multidisplay.keep_process_alive" android:value="true" />
<meta-data android:name="com.samsung.android.game.biz" android:value="true" />
<meta-data android:name="com.samsung.android.dex.game" android:value="true" />
<!-- ═══════════════════════════════════════════════════════════════════════════════════
Xiaomi / Redmi / POCO (MIUI / HyperOS Game Turbo)
─────────────────────────────────────────────────────────────────────────────────
xiaomi.game.engine — Game Turbo main registration; activates CPU/GPU boost,
network QoS priority, and touch-sampling boost.
miui.intent.category.GAME — legacy MIUI category used by older Game Turbo builds
(MIUI 12 and below) to identify the package as a game. -->
<meta-data android:name="xiaomi.game.engine" android:value="true" />
<meta-data android:name="miui.intent.category.GAME" android:value="true" />
<!-- ═══════════════════════════════════════════════════════════════════════════════════
Vivo / iQOO (FunTouch OS / OriginOS Game Space)
─────────────────────────────────────────────────────────────────────────────────
vivo.game.mode — registers with Game Space for performance mode, touch boost,
and background-process suspension during gameplay. -->
<meta-data android:name="vivo.game.mode" android:value="true" />
<!-- ═══════════════════════════════════════════════════════════════════════════════════
Oppo / OnePlus / Realme (ColorOS / OxygenOS / realme UI — all OPPO-derived)
─────────────────────────────────────────────────────────────────────────────────
oppo.intent.category.GAME — ColorOS / OxygenOS 14+ Game Space registration;
enables CPU boost, network priority, and Do-Not-Disturb.
com.oplus.games — supplementary key read by newer ColorOS Game Driver. -->
<meta-data android:name="oppo.intent.category.GAME" android:value="true" />
<meta-data android:name="com.oplus.games" android:value="true" />
<!-- ═══════════════════════════════════════════════════════════════════════════════════
Honor (MagicOS — independent of Huawei since 2020)
─────────────────────────────────────────────────────────────────────────────────
com.hihonor.intent.category.GAME — MagicOS Game Space registration;
activates GPU Turbo and performance scheduling. -->
<meta-data android:name="com.hihonor.intent.category.GAME" android:value="true" />
<!-- ═══════════════════════════════════════════════════════════════════════════════════
Huawei (EMUI / HarmonyOS — devices with Google Play)
─────────────────────────────────────────────────────────────────────────────────
com.huawei.gamebox — Game Assistant registration; activates GPU Turbo,
touch-sampling boost, and background-process suspension. -->
<meta-data android:name="com.huawei.gamebox" android:value="true" />
<!-- ═══════════════════════════════════════════════════════════════════════════════════
Asus (ROG Phone / Zenfone — ROG UI / ZenUI)
─────────────────────────────────────────────────────────────────────────────────
asus.intent.category.GAME — Armoury Crate / Game Genie registration;
activates X-Mode CPU/GPU boost and network priority. -->
<meta-data android:name="asus.intent.category.GAME" android:value="true" />
<!-- ═══════════════════════════════════════════════════════════════════════════════════
Lenovo / Legion (Legion OS / ZUI)
─────────────────────────────────────────────────────────────────────────────────
com.lenovo.gameassistant — Legion Game Assistant registration;
activates CPU/GPU performance mode and shoulder-trigger
mappings on Legion Phone hardware. -->
<meta-data android:name="com.lenovo.gameassistant" android:value="true" />
<!-- ═══════════════════════════════════════════════════════════════════════════════════
Motorola (My UX / moto g / Moto Edge series)
─────────────────────────────────────────────────────────────────────────────────
com.motorola.intent.category.GAME — Motorola Game Mode registration;
activates CPU boost, touch-sampling increase,
and background-process suspension on Moto Edge+,
Moto G Power, and ThinkPhone devices. -->
<meta-data android:name="com.motorola.intent.category.GAME" android:value="true" />
<!-- ═══════════════════════════════════════════════════════════════════════════════════
Nubia / Red Magic (RedMagic OS)
─────────────────────────────────────────────────────────────────────────────────
nubia.intent.category.GAME — Red Magic Game Space registration;
activates shoulder-button API, 165/240 Hz display
governor, and per-game CPU/GPU performance boost.
zte.intent.category.GAME — ZTE variant of the same Game Space signal
(Nubia and ZTE share the underlying platform). -->
<meta-data android:name="nubia.intent.category.GAME" android:value="true" />
<meta-data android:name="zte.intent.category.GAME" android:value="true" />
<!-- ═══════════════════════════════════════════════════════════════════════════════════
HMD / Nokia (Nokia Pure UI)
─────────────────────────────────────────────────────────────────────────────────
com.hmdglobal.game — HMD Game Mode registration; activates Nokia's
performance scheduler and suppresses background-app
interference on Nokia X/G series devices. -->
<meta-data android:name="com.hmdglobal.game" android:value="true" />
<!-- ═══════════════════════════════════════════════════════════════════════════════════
Android 13+ AOSP Game Mode API (opt-out of OS interventions)
─────────────────────────────────────────────────────────────────────────────────
We explicitly disable Battery- and Performance-mode interventions, FPS override,
and downscaling. A rhythm game's input-to-audio latency budget is hard-bound by
the active refresh rate and the audio burst cadence — letting the OS Game Manager
cap our framerate (typical "battery saver" downscale: 60 Hz → 30 Hz) or downscale
our render resolution breaks both timing accuracy AND visual hit-circle alignment.
We already manage thermals, refresh rate, and sustained performance ourselves
(see OsuGameAndroid.LoadComplete). -->
<meta-data android:name="android.game_mode_config" android:resource="@xml/gamemode_config" />
</application>
</manifest>