diff --git a/manager/app/build.gradle.kts b/manager/app/build.gradle.kts index 1c85d8af..7cfb9959 100644 --- a/manager/app/build.gradle.kts +++ b/manager/app/build.gradle.kts @@ -34,6 +34,7 @@ android { aidl = true buildConfig = true compose = true + prefab = true } kotlinOptions { @@ -113,4 +114,6 @@ dependencies { implementation(libs.markdown) implementation(libs.androidx.webkit) + + implementation(libs.lsposed.cxx) } \ No newline at end of file diff --git a/manager/app/src/main/cpp/CMakeLists.txt b/manager/app/src/main/cpp/CMakeLists.txt index cca26d5e..4556ce01 100644 --- a/manager/app/src/main/cpp/CMakeLists.txt +++ b/manager/app/src/main/cpp/CMakeLists.txt @@ -7,6 +7,9 @@ cmake_minimum_required(VERSION 3.18.1) project("kernelsu") +find_package(cxx REQUIRED CONFIG) +link_libraries(cxx::cxx) + add_library(kernelsu SHARED jni.cc diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt index 6ecf53a8..b1e99888 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt @@ -416,8 +416,8 @@ private fun InfoCard() { } fun getManagerVersion(context: Context): Pair { - val packageInfo = context.packageManager.getPackageInfo(context.packageName, 0) - return Pair(packageInfo.versionName, packageInfo.versionCode) + val packageInfo = context.packageManager.getPackageInfo(context.packageName, 0)!! + return Pair(packageInfo.versionName!!, packageInfo.versionCode) } @Preview diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SuperUserViewModel.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SuperUserViewModel.kt index 37e05aa8..ecb5024a 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SuperUserViewModel.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SuperUserViewModel.kt @@ -45,7 +45,7 @@ class SuperUserViewModel : ViewModel() { val packageName: String get() = packageInfo.packageName val uid: Int - get() = packageInfo.applicationInfo.uid + get() = packageInfo.applicationInfo!!.uid val allowSu: Boolean get() = profile != null && profile.allowSu @@ -90,7 +90,7 @@ class SuperUserViewModel : ViewModel() { .toPinyinString(it.label).contains(search, true) }.filter { it.uid == 2000 // Always show shell - || showSystemApps || it.packageInfo.applicationInfo.flags.and(ApplicationInfo.FLAG_SYSTEM) == 0 + || showSystemApps || it.packageInfo.applicationInfo!!.flags.and(ApplicationInfo.FLAG_SYSTEM) == 0 } } @@ -146,7 +146,7 @@ class SuperUserViewModel : ViewModel() { apps = packages.map { val appInfo = it.applicationInfo - val uid = appInfo.uid + val uid = appInfo!!.uid val profile = Natives.getAppProfile(it.packageName, uid) AppInfo( label = appInfo.loadLabel(pm).toString(), diff --git a/manager/build.gradle.kts b/manager/build.gradle.kts index 0e503df3..ade4608c 100644 --- a/manager/build.gradle.kts +++ b/manager/build.gradle.kts @@ -15,29 +15,23 @@ cmaker { default { arguments.addAll( arrayOf( - "-DANDROID_STL=c++_static", + "-DANDROID_STL=none", ) ) - val flags = arrayOf( - "-Wno-gnu-string-literal-operator-template", - "-Wno-c++2b-extensions", - ) - cFlags.addAll(flags) - cppFlags.addAll(flags) - abiFilters("arm64-v8a", "x86_64") + abiFilters("arm64-v8a", "x86_64", "riscv64") } buildTypes { if (it.name == "release") { - arguments += "-DDEBUG_SYMBOLS_PATH=${buildDir.absolutePath}/symbols" + arguments += "-DDEBUG_SYMBOLS_PATH=${layout.buildDirectory.asFile.get().absolutePath}/symbols" } } } val androidMinSdkVersion = 26 -val androidTargetSdkVersion = 34 -val androidCompileSdkVersion = 34 -val androidBuildToolsVersion = "34.0.0" -val androidCompileNdkVersion = "26.3.11579264" +val androidTargetSdkVersion = 35 +val androidCompileSdkVersion = 35 +val androidBuildToolsVersion = "35.0.0" +val androidCompileNdkVersion = "27.0.11718014-beta1" val androidSourceCompatibility = JavaVersion.VERSION_21 val androidTargetCompatibility = JavaVersion.VERSION_21 val managerVersionCode by extra(getVersionCode()) diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index 3a1ea10e..8b86099f 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -75,4 +75,6 @@ sheet-compose-dialogs-core = { group = "com.maxkeppeler.sheets-compose-dialogs", sheet-compose-dialogs-list = { group = "com.maxkeppeler.sheets-compose-dialogs", name = "list", version.ref = "sheets-compose-dialogs" } sheet-compose-dialogs-input = { group = "com.maxkeppeler.sheets-compose-dialogs", name = "input", version.ref = "sheets-compose-dialogs" } -markdown = { group = "io.noties.markwon", name = "core", version.ref = "markdown" } \ No newline at end of file +markdown = { group = "io.noties.markwon", name = "core", version.ref = "markdown" } + +lsposed-cxx = { module = "org.lsposed.libcxx:libcxx", version = "27.0.11718014-beta1" } \ No newline at end of file diff --git a/manager/gradle/wrapper/gradle-wrapper.properties b/manager/gradle/wrapper/gradle-wrapper.properties index b82aa23a..a4413138 100644 --- a/manager/gradle/wrapper/gradle-wrapper.properties +++ b/manager/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/manager/gradlew b/manager/gradlew index 4b6a9cfc..b740cf13 100755 --- a/manager/gradlew +++ b/manager/gradlew @@ -1,4 +1,5 @@ #!/bin/sh + # # Copyright © 2015-2021 the original authors. # @@ -54,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/.