From b6064f224b93b9da9d0461d4ee7c3ed823bae030 Mon Sep 17 00:00:00 2001 From: Rifat Azad Date: Wed, 4 Dec 2024 01:18:54 +0600 Subject: [PATCH] manager: Next modifications, ksud: 16GB sparse image --- .github/workflows/build-manager.yml | 76 ++---------------- manager/app/build.gradle.kts | 2 +- .../java/me/weishu/kernelsu/ui/screen/Home.kt | 37 ++++++++- .../me/weishu/kernelsu/ui/util/Downloader.kt | 3 +- manager/app/src/main/res/values/strings.xml | 5 ++ manager/build.gradle.kts | 4 +- manager/next.keystore | Bin 0 -> 2744 bytes userspace/ksud/src/module.rs | 2 +- 8 files changed, 51 insertions(+), 78 deletions(-) create mode 100644 manager/next.keystore diff --git a/.github/workflows/build-manager.yml b/.github/workflows/build-manager.yml index 89360617..33b4f165 100644 --- a/.github/workflows/build-manager.yml +++ b/.github/workflows/build-manager.yml @@ -2,46 +2,33 @@ name: Build Manager on: push: - branches: [ "main", "ci" ] + branches: [ "main", "next" ] paths: - '.github/workflows/build-manager.yml' - 'manager/**' - 'kernel/**' - 'userspace/ksud/**' pull_request: - branches: [ "main" ] + branches: [ "main", "next" ] paths: - 'manager/**' workflow_call: + workflow_dispatch: jobs: - build-lkm: - uses: ./.github/workflows/build-lkm.yml - secrets: inherit - build-ksud: - needs: build-lkm strategy: matrix: include: - target: aarch64-linux-android os: ubuntu-latest - - target: x86_64-linux-android - os: ubuntu-latest - - target: x86_64-pc-windows-gnu # windows pc - os: ubuntu-latest - - target: x86_64-apple-darwin # Intel mac - os: macos-latest - - target: aarch64-apple-darwin # M chip mac - os: macos-latest - - target: aarch64-unknown-linux-musl # arm64 Linux - os: ubuntu-latest - - target: x86_64-unknown-linux-musl # x86 Linux + - target: x86_64-unknown-linux-musl # x86 Linux, keeping this so i can ksud in muh pc os: ubuntu-latest uses: ./.github/workflows/ksud.yml with: target: ${{ matrix.target }} os: ${{ matrix.os }} + pack_lkm: false build-manager: needs: build-ksud @@ -56,27 +43,14 @@ jobs: with: fetch-depth: 0 - - name: Setup need_upload - id: need_upload - run: | - if [ ! -z "${{ secrets.BOT_TOKEN }}" ]; then - echo "UPLOAD=true" >> $GITHUB_OUTPUT - else - echo "UPLOAD=false" >> $GITHUB_OUTPUT - fi - - name: Write key - if: ${{ ( github.event_name != 'pull_request' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' }} run: | - if [ ! -z "${{ secrets.KEYSTORE }}" ]; then { echo KEYSTORE_PASSWORD='${{ secrets.KEYSTORE_PASSWORD }}' echo KEY_ALIAS='${{ secrets.KEY_ALIAS }}' echo KEY_PASSWORD='${{ secrets.KEY_PASSWORD }}' - echo KEYSTORE_FILE='key.jks' + echo KEYSTORE_FILE='next.keystore' } >> gradle.properties - echo ${{ secrets.KEYSTORE }} | base64 -d > key.jks - fi - name: Setup Java uses: actions/setup-java@v4 @@ -96,18 +70,10 @@ jobs: name: ksud-aarch64-linux-android path: . - - name: Download x86_64 ksud - uses: actions/download-artifact@v4 - with: - name: ksud-x86_64-linux-android - path: . - - name: Copy ksud to app jniLibs run: | mkdir -p app/src/main/jniLibs/arm64-v8a - mkdir -p app/src/main/jniLibs/x86_64 cp -f ../aarch64-linux-android/release/ksud ../manager/app/src/main/jniLibs/arm64-v8a/libksud.so - cp -f ../x86_64-linux-android/release/ksud ../manager/app/src/main/jniLibs/x86_64/libksud.so - name: Build with Gradle run: | @@ -122,40 +88,12 @@ jobs: - name: Upload build artifact uses: actions/upload-artifact@v4 - if: ${{ ( github.event_name != 'pull_request' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' }} with: name: manager path: manager/app/build/outputs/apk/release/*.apk - name: Upload mappings uses: actions/upload-artifact@v4 - if: ${{ ( github.event_name != 'pull_request' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' }} with: name: "mappings" - path: "manager/app/build/outputs/mapping/release/" - - - name: Bot session cache - if: github.event_name != 'pull_request' && steps.need_upload.outputs.UPLOAD == 'true' - id: bot_session_cache - uses: actions/cache@v4 - with: - path: scripts/ksubot.session - key: ${{ runner.os }}-bot-session - - - name: Upload to telegram - if: github.event_name != 'pull_request' && steps.need_upload.outputs.UPLOAD == 'true' - env: - CHAT_ID: ${{ secrets.CHAT_ID }} - BOT_TOKEN: ${{ secrets.BOT_TOKEN }} - MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }} - COMMIT_MESSAGE: ${{ github.event.head_commit.message }} - COMMIT_URL: ${{ github.event.head_commit.url }} - RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} - TITLE: Manager - run: | - if [ ! -z "${{ secrets.BOT_TOKEN }}" ]; then - export VERSION=$(git rev-list --count HEAD) - APK=$(find ./app/build/outputs/apk/release -name "*.apk") - pip3 install telethon - python3 $GITHUB_WORKSPACE/scripts/ksubot.py $APK - fi + path: "manager/app/build/outputs/mapping/release/" \ No newline at end of file diff --git a/manager/app/build.gradle.kts b/manager/app/build.gradle.kts index 1f98e4a1..4f037176 100644 --- a/manager/app/build.gradle.kts +++ b/manager/app/build.gradle.kts @@ -68,7 +68,7 @@ android { applicationVariants.all { outputs.forEach { val output = it as BaseVariantOutputImpl - output.outputFileName = "KernelSU_${managerVersionName}_${managerVersionCode}-$name.apk" + output.outputFileName = "KernelSU_${managerVersionName}_${managerVersionCode}-next-$name.apk" } kotlin.sourceSets { getByName(name) { 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 0fa3b34a..7fb09f2d 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 @@ -102,6 +102,7 @@ fun HomeScreen(navigator: DestinationsNavigator) { if (checkUpdate) { UpdateCard() } + Next() InfoCard() DonateCard() LearnMoreCard() @@ -299,15 +300,15 @@ private fun StatusCard( } else -> { - Icon(Icons.Outlined.Block, stringResource(R.string.home_unsupported)) + Icon(Icons.Outlined.Block, stringResource(R.string.home_failure)) Column(Modifier.padding(start = 20.dp)) { Text( - text = stringResource(R.string.home_unsupported), + text = stringResource(R.string.home_failure), style = MaterialTheme.typography.titleMedium ) Spacer(Modifier.height(4.dp)) Text( - text = stringResource(R.string.home_unsupported_reason), + text = stringResource(R.string.home_failure_reason), style = MaterialTheme.typography.bodyMedium ) } @@ -420,7 +421,7 @@ private fun InfoCard() { val managerVersion = getManagerVersion(context) InfoCardItem( stringResource(R.string.home_manager_version), - "${managerVersion.first} (${managerVersion.second})" + "${managerVersion.first}-next (${managerVersion.second})" ) Spacer(Modifier.height(16.dp)) @@ -432,6 +433,34 @@ private fun InfoCard() { } } +@Composable +fun Next() { + val uriHandler = LocalUriHandler.current + val url = stringResource(R.string.home_next_kernelsu_announce) + + ElevatedCard { + + Row(modifier = Modifier + .fillMaxWidth() + .clickable { + uriHandler.openUri(url) + } + .padding(24.dp), verticalAlignment = Alignment.CenterVertically) { + Column { + Text( + text = stringResource(R.string.home_next_kernelsu), + style = MaterialTheme.typography.titleSmall + ) + Spacer(Modifier.height(4.dp)) + Text( + text = stringResource(R.string.home_next_kernelsu_body), + style = MaterialTheme.typography.bodyMedium + ) + } + } + } +} + fun getManagerVersion(context: Context): Pair { val packageInfo = context.packageManager.getPackageInfo(context.packageName, 0)!! val versionCode = PackageInfoCompat.getLongVersionCode(packageInfo) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/Downloader.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/Downloader.kt index bdf84966..55d824c7 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/util/Downloader.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/util/Downloader.kt @@ -62,7 +62,8 @@ fun download( } fun checkNewVersion(): LatestVersionInfo { - val url = "https://api.github.com/repos/tiann/KernelSU/releases/latest" + // Next updates + val url = "https://api.github.com/repos/rifsxd/KernelSU/releases/latest" // default null value if failed val defaultValue = LatestVersionInfo() runCatching { diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml index 85ce47da..ed5f0d7f 100644 --- a/manager/app/src/main/res/values/strings.xml +++ b/manager/app/src/main/res/values/strings.xml @@ -10,6 +10,8 @@ Modules: %d Unsupported KernelSU only supports GKI kernels now + !kenrelsu || != size/hash + Failure! Next size/hash required. Kernel Manager version Fingerprint @@ -47,6 +49,9 @@ Safe mode Reboot to take effect Modules are unavailable due to a conflict with Magisk! + 🔥 Next Build + https://github.com/rifsxd/KernelSU + Next modifications branch; Check out the repo! Learn KernelSU https://kernelsu.org/guide/what-is-kernelsu.html Learn how to install KernelSU and use modules diff --git a/manager/build.gradle.kts b/manager/build.gradle.kts index 3bb25ee9..3c4f02e7 100644 --- a/manager/build.gradle.kts +++ b/manager/build.gradle.kts @@ -18,7 +18,7 @@ cmaker { "-DANDROID_STL=none", ) ) - abiFilters("arm64-v8a", "x86_64", "riscv64") + abiFilters("arm64-v8a") } buildTypes { if (it.name == "release") { @@ -80,7 +80,7 @@ subprojects { versionName = managerVersionName } ndk { - abiFilters += listOf("arm64-v8a", "x86_64", "riscv64") + abiFilters += listOf("arm64-v8a") } } diff --git a/manager/next.keystore b/manager/next.keystore new file mode 100644 index 0000000000000000000000000000000000000000..48561a76f925f47a0f75bf152802e6acfff3bb9e GIT binary patch literal 2744 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 a^uhH0yiiUlK>OR43i2*-%^~Vv7W7X|zteC4 literal 0 HcmV?d00001 diff --git a/userspace/ksud/src/module.rs b/userspace/ksud/src/module.rs index 28c5df40..f927e78a 100644 --- a/userspace/ksud/src/module.rs +++ b/userspace/ksud/src/module.rs @@ -362,7 +362,7 @@ fn _install_module(zip: &str) -> Result<()> { humansize::format_size(zip_uncompressed_size, humansize::DECIMAL) ); - let sparse_image_size = 1 << 40; // 1T + let sparse_image_size = 1 << 34; // 16G let journal_size = 8; // 8M if !modules_img_exist && !modules_update_img_exist { // if no modules and modules_update, it is brand new installation, we should create a new img