Optimize build
This commit is contained in:
parent
319a21f103
commit
b2b542e7cc
|
|
@ -80,7 +80,6 @@ afterEvaluate {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation(projects.hiddenapi.bridge)
|
||||
implementation(projects.patch)
|
||||
implementation(projects.services.daemonService)
|
||||
implementation(projects.share.android)
|
||||
|
|
@ -92,7 +91,7 @@ dependencies {
|
|||
implementation(platform("androidx.compose:compose-bom:2022.10.00"))
|
||||
|
||||
annotationProcessor("androidx.room:room-compiler:$roomVersion")
|
||||
compileOnly("dev.rikka.hidden:stub:2.3.1")
|
||||
compileOnly("dev.rikka.hidden:stub:3.4.3")
|
||||
debugImplementation("androidx.compose.ui:ui-tooling")
|
||||
debugImplementation("androidx.customview:customview:1.2.0-alpha02")
|
||||
debugImplementation("androidx.customview:customview-poolingcontainer:1.0.0")
|
||||
|
|
@ -114,6 +113,7 @@ dependencies {
|
|||
implementation("com.google.code.gson:gson:2.10")
|
||||
implementation("dev.rikka.shizuku:api:12.2.0")
|
||||
implementation("dev.rikka.shizuku:provider:12.2.0")
|
||||
implementation("dev.rikka.tools.refine:runtime:3.1.1")
|
||||
implementation("io.github.raamcosta.compose-destinations:core:$composeDestinationsVersion")
|
||||
implementation("me.zhanghai.android.appiconloader:appiconloader:1.5.0")
|
||||
implementation("org.lsposed.hiddenapibypass:hiddenapibypass:4.3")
|
||||
|
|
|
|||
|
|
@ -1,3 +1,14 @@
|
|||
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
|
||||
public static void check*(...);
|
||||
public static void throw*(...);
|
||||
}
|
||||
-assumenosideeffects class java.util.Objects {
|
||||
public static ** requireNonNull(...);
|
||||
}
|
||||
-assumenosideeffects public class kotlin.coroutines.jvm.internal.DebugMetadataKt {
|
||||
private static ** getDebugMetadataAnnotation(...) return null;
|
||||
}
|
||||
|
||||
-keep class com.beust.jcommander.** { *; }
|
||||
-keep class org.lsposed.lspatch.Patcher$Options { *; }
|
||||
-keep class org.lsposed.lspatch.share.LSPConfig { *; }
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ private fun ShizukuCard() {
|
|||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.clickable {
|
||||
if (ShizukuApi.isBinderAvalable && !ShizukuApi.isPermissionGranted) {
|
||||
if (ShizukuApi.isBinderAvailable && !ShizukuApi.isPermissionGranted) {
|
||||
Shizuku.requestPermission(114514)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@ import android.annotation.SuppressLint
|
|||
import android.content.Intent
|
||||
import android.content.pm.ApplicationInfo
|
||||
import android.content.pm.PackageInstaller
|
||||
import android.content.pm.PackageInstallerHidden.SessionParamsHidden
|
||||
import android.content.pm.PackageManager
|
||||
import android.content.pm.PackageManagerHidden
|
||||
import android.net.Uri
|
||||
import android.os.Parcelable
|
||||
import android.util.Log
|
||||
|
|
@ -15,7 +17,7 @@ import androidx.compose.ui.graphics.ImageBitmap
|
|||
import androidx.compose.ui.graphics.asImageBitmap
|
||||
import androidx.core.net.toUri
|
||||
import androidx.documentfile.provider.DocumentFile
|
||||
import hidden.HiddenApiBridge
|
||||
import dev.rikka.tools.refine.Refine
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
|
@ -84,9 +86,9 @@ object LSPPackageManager {
|
|||
withContext(Dispatchers.IO) {
|
||||
runCatching {
|
||||
val params = PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL)
|
||||
var flags = HiddenApiBridge.PackageInstaller_SessionParams_installFlags(params)
|
||||
flags = flags or 0x00000004 /* PackageManager.INSTALL_ALLOW_TEST */ or 0x00000002 /* PackageManager.INSTALL_REPLACE_EXISTING */
|
||||
HiddenApiBridge.PackageInstaller_SessionParams_installFlags(params, flags)
|
||||
var flags = Refine.unsafeCast<SessionParamsHidden>(params).installFlags
|
||||
flags = flags or PackageManagerHidden.INSTALL_ALLOW_TEST or PackageManagerHidden.INSTALL_REPLACE_EXISTING
|
||||
Refine.unsafeCast<SessionParamsHidden>(params).installFlags = flags
|
||||
ShizukuApi.createPackageInstallerSession(params).use { session ->
|
||||
val uri = Configs.storageDirectory?.toUri() ?: throw IOException("Uri is null")
|
||||
val root = DocumentFile.fromTreeUri(lspApp, uri) ?: throw IOException("DocumentFile is null")
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import android.os.SystemProperties
|
|||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.setValue
|
||||
import dev.rikka.tools.refine.Refine
|
||||
import rikka.shizuku.Shizuku
|
||||
import rikka.shizuku.ShizukuBinderWrapper
|
||||
import rikka.shizuku.SystemServiceHelper
|
||||
|
|
@ -28,31 +29,22 @@ object ShizukuApi {
|
|||
|
||||
private val packageInstaller: PackageInstaller by lazy {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
PackageInstaller::class.java.getConstructor(
|
||||
IPackageInstaller::class.java,
|
||||
String::class.java,
|
||||
String::class.java,
|
||||
Int::class.javaPrimitiveType
|
||||
).newInstance(iPackageInstaller, "com.android.shell", null, 0)
|
||||
Refine.unsafeCast(PackageInstallerHidden(iPackageInstaller, "com.android.shell", null, 0))
|
||||
} else {
|
||||
PackageInstaller::class.java.getConstructor(
|
||||
IPackageInstaller::class.java,
|
||||
String::class.java,
|
||||
Int::class.javaPrimitiveType
|
||||
).newInstance(iPackageInstaller, "com.android.shell", 0)
|
||||
Refine.unsafeCast(PackageInstallerHidden(iPackageInstaller, "com.android.shell", 0))
|
||||
}
|
||||
}
|
||||
|
||||
var isBinderAvalable = false
|
||||
var isBinderAvailable = false
|
||||
var isPermissionGranted by mutableStateOf(false)
|
||||
|
||||
fun init() {
|
||||
Shizuku.addBinderReceivedListenerSticky {
|
||||
isBinderAvalable = true
|
||||
isBinderAvailable = true
|
||||
isPermissionGranted = Shizuku.checkSelfPermission() == PackageManager.PERMISSION_GRANTED
|
||||
}
|
||||
Shizuku.addBinderDeadListener {
|
||||
isBinderAvalable = false
|
||||
isBinderAvailable = false
|
||||
isPermissionGranted = false
|
||||
}
|
||||
}
|
||||
|
|
@ -60,8 +52,7 @@ object ShizukuApi {
|
|||
fun createPackageInstallerSession(params: PackageInstaller.SessionParams): PackageInstaller.Session {
|
||||
val sessionId = packageInstaller.createSession(params)
|
||||
val iSession = IPackageInstallerSession.Stub.asInterface(iPackageInstaller.openSession(sessionId).asShizukuBinder())
|
||||
val constructor by lazy { PackageInstaller.Session::class.java.getConstructor(IPackageInstallerSession::class.java) }
|
||||
return constructor.newInstance(iSession)
|
||||
return Refine.unsafeCast(PackageInstallerHidden.SessionHidden(iSession))
|
||||
}
|
||||
|
||||
fun isPackageInstalledWithoutPatch(packageName: String): Boolean {
|
||||
|
|
|
|||
Loading…
Reference in New Issue