commit f2368e3669b13f2c8879325df7f11109db805cd9 Author: Nitan Alexandru Marcel Date: Mon May 22 09:44:04 2023 +0000 Initial commit diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..d5805eb --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,34 @@ +name: Main + +on: + workflow_dispatch: + push: + branches: [ main ] + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + if: ${{ !startsWith(github.event.head_commit.message, '[skip ci]') }} + + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: 'recursive' + fetch-depth: 0 + - name: SetupNDK + uses: nttld/setup-ndk@v1 + id: setup-ndk + with: + ndk-version: r24 + - name: Build + id: build + run: | + chmod 777 ./build.sh + ./build.sh + - name: Upload release + uses: actions/upload-artifact@v3 + with: + name: magisk-module-release + path: out/magisk-module diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..56e7941 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +.DS_Store +*.zip +*.so +*.dex + +# VS Code Java Language Server +.settings/ +.project +.classpath +*.iml +.gradle +/local.properties +/.idea +/build +/captures +.externalNativeBuild +.cxx +local.properties +*.sha256 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..f8f62ed --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "native/jni/libcxx"] + path = native/jni/libcxx + url = https://github.com/huskydg/libcxx.git diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..49ca9e3 --- /dev/null +++ b/build.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -euo pipefail + +build_mode="${1:-release}" + +cd "$(dirname "$0")" + +pushd native +rm -fr libs obj +debug_mode=1 +if [[ "$build_mode" == "release" ]]; then + debug_mode=0 +fi +ndk-build -j4 NDK_DEBUG=$debug_mode +popd + +rm -rf out +mkdir -p out +cp -af magisk-module out +mv -fT native/libs out/magisk-module/libs +zip -r9 out/magisk-module-release.zip out/magisk-module \ No newline at end of file diff --git a/magisk-module/META-INF/com/google/android/update-binary b/magisk-module/META-INF/com/google/android/update-binary new file mode 100644 index 0000000..ea4889e --- /dev/null +++ b/magisk-module/META-INF/com/google/android/update-binary @@ -0,0 +1,33 @@ +#!/sbin/sh + +################# +# Initialization +################# + +umask 022 + +# echo before loading util_functions +ui_print() { echo "$1"; } + +require_new_magisk() { + ui_print "*******************************" + ui_print " Please install Magisk v20.4+! " + ui_print "*******************************" + exit 1 +} + +######################### +# Load util_functions.sh +######################### + +OUTFD=$2 +ZIPFILE=$3 + +mount /data 2>/dev/null + +[ -f /data/adb/magisk/util_functions.sh ] || require_new_magisk +. /data/adb/magisk/util_functions.sh +[ $MAGISK_VER_CODE -lt 20400 ] && require_new_magisk + +install_module +exit 0 \ No newline at end of file diff --git a/magisk-module/META-INF/com/google/android/updater-script b/magisk-module/META-INF/com/google/android/updater-script new file mode 100644 index 0000000..492be83 --- /dev/null +++ b/magisk-module/META-INF/com/google/android/updater-script @@ -0,0 +1 @@ +#MAGISK \ No newline at end of file diff --git a/magisk-module/customize.sh b/magisk-module/customize.sh new file mode 100644 index 0000000..214b707 --- /dev/null +++ b/magisk-module/customize.sh @@ -0,0 +1,7 @@ +mkdir -p "$MODPATH/system/bin" +api_level_arch_detect +[ ! -d "$MODPATH/libs/$ABI" ] && abort "! $ABI not supported" +cp -af "$MODPATH/libs/$ABI/"* "$MODPATH/system/bin" +rm -rf "$MODPATH/libs" +chcon -R u:object_r:system_file:s0 "$MODPATH/system" +chmod -R 755 "$MODPATH/system/bin" diff --git a/magisk-module/module.prop b/magisk-module/module.prop new file mode 100644 index 0000000..afd8117 --- /dev/null +++ b/magisk-module/module.prop @@ -0,0 +1,6 @@ +id=example_module +name=Example module +author=HuskyDG +version=1.0 +versionCode=1 +description=module that add some stuff \ No newline at end of file diff --git a/native/.gitignore b/native/.gitignore new file mode 100644 index 0000000..a264cd9 --- /dev/null +++ b/native/.gitignore @@ -0,0 +1,3 @@ +/build +/libs +/obj diff --git a/native/build.gradle b/native/build.gradle new file mode 100644 index 0000000..ad266f3 --- /dev/null +++ b/native/build.gradle @@ -0,0 +1,11 @@ +plugins { + id 'com.android.library' +} + +android { + externalNativeBuild { + ndkBuild { + path("jni/Android.mk") + } + } +} diff --git a/native/jni/Android.mk b/native/jni/Android.mk new file mode 100644 index 0000000..e3e8573 --- /dev/null +++ b/native/jni/Android.mk @@ -0,0 +1,10 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) +LOCAL_MODULE := example +LOCAL_SRC_FILES := example.cpp +LOCAL_STATIC_LIBRARIES := libcxx +LOCAL_LDLIBS := -llog +include $(BUILD_EXECUTABLE) + +include jni/libcxx/Android.mk diff --git a/native/jni/Application.mk b/native/jni/Application.mk new file mode 100644 index 0000000..96948f8 --- /dev/null +++ b/native/jni/Application.mk @@ -0,0 +1,4 @@ +APP_ABI := armeabi-v7a arm64-v8a x86 x86_64 +APP_CPPFLAGS := -std=c++17 -fno-exceptions -fno-rtti -fvisibility=hidden -fvisibility-inlines-hidden +APP_STL := none +APP_PLATFORM := android-21 diff --git a/native/jni/example.cpp b/native/jni/example.cpp new file mode 100644 index 0000000..4066a83 --- /dev/null +++ b/native/jni/example.cpp @@ -0,0 +1,7 @@ +#include +using namespace std; +int main(int argc, char *argv[]) +{ + + return 0; +} diff --git a/native/jni/libcxx b/native/jni/libcxx new file mode 160000 index 0000000..9b40e8b --- /dev/null +++ b/native/jni/libcxx @@ -0,0 +1 @@ +Subproject commit 9b40e8b93627e0aef4ee8ad1b9f3aea913ee32c0 diff --git a/native/src/main/AndroidManifest.xml b/native/src/main/AndroidManifest.xml new file mode 100644 index 0000000..52d5ff4 --- /dev/null +++ b/native/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + +