fix: register ShizukuProvider and binder listener for direct elevation

This commit is contained in:
CAtlas0784 committed 2026-10-08 13:55:25 +07:00
1 parent 8a6fa50ce3
commit 249c922a3e
2 files changed
+16

No files matched your search

+8
View File
@@ -33,6 +33,14 @@
android:resource="@xml/file_paths" />
</provider>
<provider
android:name="rikka.shizuku.ShizukuProvider"
android:authorities="${applicationId}.shizuku"
android:multiprocess="false"
android:enabled="true"
android:exported="true"
android:permission="android.permission.INTERACT_ACROSS_USERS_FULL" />
</application>
</manifest>
@@ -19,6 +19,12 @@ class MainActivity : ComponentActivity() {
private var currentPersistentUri by mutableStateOf<Uri?>(null)
private var shizukuPermissionGrantedEvent by mutableStateOf(0L)
private val binderReceivedListener = Shizuku.OnBinderReceivedListener {
if (ShizukuHelper.hasPermission()) {
shizukuPermissionGrantedEvent = System.currentTimeMillis()
}
}
private val shizukuPermissionListener = Shizuku.OnRequestPermissionResultListener { requestCode, grantResult ->
if (requestCode == ShizukuHelper.REQUEST_CODE && grantResult == PackageManager.PERMISSION_GRANTED) {
shizukuPermissionGrantedEvent = System.currentTimeMillis()
@@ -46,6 +52,7 @@ class MainActivity : ComponentActivity() {
super.onCreate(savedInstanceState)
try {
Shizuku.addBinderReceivedListenerSticky(binderReceivedListener)
Shizuku.addRequestPermissionResultListener(shizukuPermissionListener)
} catch (_: Throwable) {}
@@ -68,6 +75,7 @@ class MainActivity : ComponentActivity() {
override fun onDestroy() {
super.onDestroy()
try {
Shizuku.removeBinderReceivedListener(binderReceivedListener)
Shizuku.removeRequestPermissionResultListener(shizukuPermissionListener)
} catch (_: Throwable) {}
}