From fa0e565fa530a8ffb46abff24f13171942339455 Mon Sep 17 00:00:00 2001 From: Redjard Date: Wed, 20 Nov 2024 13:25:24 +0700 Subject: [PATCH] fix: Fix shizuku being buggy for multi user setups Fetch the current userid separately because shizuku always runs as the main user and would otherwise install and update for the main user --- CHANGELOG.md | 1 + .../java/eu/kanade/tachiyomi/extension/ShizukuInstaller.kt | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 272eaa2829..b61c1d508c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ The format is simplified version of [Keep a Changelog](https://keepachangelog.co - Handle some uncaught crashes - Fixed crashes due to GestureDetector's firstEvent is sometimes null on some devices - Fixed download failed caused by invalid XML 1.0 character +- Fixed issues with shizuku in a multi user setup (@Redjard) ### Other - Simplify network helper code diff --git a/app/src/main/java/eu/kanade/tachiyomi/extension/ShizukuInstaller.kt b/app/src/main/java/eu/kanade/tachiyomi/extension/ShizukuInstaller.kt index e1abdca969..304b2e47b5 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/extension/ShizukuInstaller.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/extension/ShizukuInstaller.kt @@ -6,6 +6,7 @@ import android.content.Intent import android.content.pm.PackageManager import android.net.Uri import android.os.Build +import android.os.Process import androidx.localbroadcastmanager.content.LocalBroadcastManager import co.touchlab.kermit.Logger import eu.kanade.tachiyomi.R @@ -92,7 +93,8 @@ class ShizukuInstaller(private val context: Context, val finishedQueue: (Shizuku val size = context.getUriSize(entry.uri) ?: throw IllegalStateException() context.contentResolver.openInputStream(entry.uri)!!.use { val createCommand = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - "pm install-create --user current -r -i ${context.packageName} -S $size" + val userId = Process.myUserHandle().hashCode() + "pm install-create --user $userId current -r -i ${context.packageName} -S $size" } else { "pm install-create -r -i ${context.packageName} -S $size" }