diff --git a/app.json b/app.json index 03f2e21..c106650 100644 --- a/app.json +++ b/app.json @@ -33,6 +33,7 @@ "favicon": "./assets/images/favicon.png" }, "plugins": [ + "./plugins/with-portable-gradle-toolchain", "expo-router", [ "expo-camera", diff --git a/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/results.bin b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/results.bin new file mode 100644 index 0000000..7ed749e --- /dev/null +++ b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/results.bin @@ -0,0 +1 @@ +o/bundleLibRuntimeToDirDebug diff --git a/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/BuildConfig.dex b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/BuildConfig.dex new file mode 100644 index 0000000..75b5596 Binary files /dev/null and b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/BuildConfig.dex differ diff --git a/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$Companion.dex b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$Companion.dex new file mode 100644 index 0000000..6e41a64 Binary files /dev/null and b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$Companion.dex differ diff --git a/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$definition$lambda$3$$inlined$AsyncFunction$1.dex b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$definition$lambda$3$$inlined$AsyncFunction$1.dex new file mode 100644 index 0000000..68d01ae Binary files /dev/null and b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$definition$lambda$3$$inlined$AsyncFunction$1.dex differ diff --git a/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$definition$lambda$3$$inlined$AsyncFunction$2.dex b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$definition$lambda$3$$inlined$AsyncFunction$2.dex new file mode 100644 index 0000000..2e9e01c Binary files /dev/null and b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$definition$lambda$3$$inlined$AsyncFunction$2.dex differ diff --git a/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$definition$lambda$3$$inlined$AsyncFunction$3.dex b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$definition$lambda$3$$inlined$AsyncFunction$3.dex new file mode 100644 index 0000000..c26e581 Binary files /dev/null and b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$definition$lambda$3$$inlined$AsyncFunction$3.dex differ diff --git a/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$definition$lambda$3$$inlined$AsyncFunctionWithoutArgs$1.dex b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$definition$lambda$3$$inlined$AsyncFunctionWithoutArgs$1.dex new file mode 100644 index 0000000..8c7b9d6 Binary files /dev/null and b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$definition$lambda$3$$inlined$AsyncFunctionWithoutArgs$1.dex differ diff --git a/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$definition$lambda$3$$inlined$FunctionWithoutArgs$1.dex b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$definition$lambda$3$$inlined$FunctionWithoutArgs$1.dex new file mode 100644 index 0000000..ec915ab Binary files /dev/null and b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule$definition$lambda$3$$inlined$FunctionWithoutArgs$1.dex differ diff --git a/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule.dex b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule.dex new file mode 100644 index 0000000..3281a72 Binary files /dev/null and b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/easytier/ExpoEasyTierVpnModule.dex differ diff --git a/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin new file mode 100644 index 0000000..601f245 Binary files /dev/null and b/modules/expo-easytier-vpn/android/build/.transforms/4825c1e462d5e6e59d2960fb040aa2fc/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin differ diff --git a/modules/expo-easytier-vpn/android/build/.transforms/be62a2d457ad24785bba0388a6b22df9/results.bin b/modules/expo-easytier-vpn/android/build/.transforms/be62a2d457ad24785bba0388a6b22df9/results.bin new file mode 100644 index 0000000..0d259dd --- /dev/null +++ b/modules/expo-easytier-vpn/android/build/.transforms/be62a2d457ad24785bba0388a6b22df9/results.bin @@ -0,0 +1 @@ +o/classes diff --git a/modules/expo-easytier-vpn/android/build/.transforms/be62a2d457ad24785bba0388a6b22df9/transformed/classes/classes_dex/classes.dex b/modules/expo-easytier-vpn/android/build/.transforms/be62a2d457ad24785bba0388a6b22df9/transformed/classes/classes_dex/classes.dex new file mode 100644 index 0000000..dfd7cca Binary files /dev/null and b/modules/expo-easytier-vpn/android/build/.transforms/be62a2d457ad24785bba0388a6b22df9/transformed/classes/classes_dex/classes.dex differ diff --git a/modules/expo-easytier-vpn/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties b/modules/expo-easytier-vpn/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties index 619c3ae..ff40e6c 100644 --- a/modules/expo-easytier-vpn/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +++ b/modules/expo-easytier-vpn/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties @@ -1 +1 @@ -#Wed Mar 25 11:49:16 CDT 2026 +#Wed Mar 25 12:15:20 CDT 2026 diff --git a/modules/expo-easytier-vpn/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml b/modules/expo-easytier-vpn/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml index 8f7a9d3..2cae5e7 100644 --- a/modules/expo-easytier-vpn/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +++ b/modules/expo-easytier-vpn/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/modules/expo-easytier-vpn/android/build/intermediates/incremental/mergeDebugAssets/merger.xml b/modules/expo-easytier-vpn/android/build/intermediates/incremental/mergeDebugAssets/merger.xml index 6d57f43..694c6c6 100644 --- a/modules/expo-easytier-vpn/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +++ b/modules/expo-easytier-vpn/android/build/intermediates/incremental/mergeDebugAssets/merger.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/modules/expo-easytier-vpn/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml b/modules/expo-easytier-vpn/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml index 295e887..9880a90 100644 --- a/modules/expo-easytier-vpn/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +++ b/modules/expo-easytier-vpn/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/modules/expo-easytier-vpn/android/build/intermediates/incremental/mergeDebugShaders/merger.xml b/modules/expo-easytier-vpn/android/build/intermediates/incremental/mergeDebugShaders/merger.xml index 8954df5..4cdf415 100644 --- a/modules/expo-easytier-vpn/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +++ b/modules/expo-easytier-vpn/android/build/intermediates/incremental/mergeDebugShaders/merger.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/modules/expo-easytier-vpn/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt b/modules/expo-easytier-vpn/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt index b089476..aac6318 100644 --- a/modules/expo-easytier-vpn/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +++ b/modules/expo-easytier-vpn/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt @@ -5,7 +5,7 @@ 5 6 7 -7-->C:\project\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml:2:3-65 -7-->C:\project\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml:2:20-62 +7-->C:\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml:2:3-65 +7-->C:\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml:2:20-62 8 9 diff --git a/modules/expo-easytier-vpn/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin b/modules/expo-easytier-vpn/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin index 7650025..9e1c135 100644 Binary files a/modules/expo-easytier-vpn/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin and b/modules/expo-easytier-vpn/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin differ diff --git a/modules/expo-easytier-vpn/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin b/modules/expo-easytier-vpn/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin deleted file mode 100644 index 2dc55c9..0000000 Binary files a/modules/expo-easytier-vpn/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin and /dev/null differ diff --git a/modules/expo-easytier-vpn/android/build/outputs/logs/manifest-merger-debug-report.txt b/modules/expo-easytier-vpn/android/build/outputs/logs/manifest-merger-debug-report.txt index 4ee0f2f..82db5c6 100644 --- a/modules/expo-easytier-vpn/android/build/outputs/logs/manifest-merger-debug-report.txt +++ b/modules/expo-easytier-vpn/android/build/outputs/logs/manifest-merger-debug-report.txt @@ -1,20 +1,20 @@ -- Merging decision tree log --- manifest -ADDED from C:\project\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml:1:1-3:12 -INJECTED from C:\project\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml:1:1-3:12 +ADDED from C:\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml:1:1-3:12 +INJECTED from C:\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml:1:1-3:12 package - INJECTED from C:\project\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml + INJECTED from C:\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml xmlns:android - ADDED from C:\project\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml:1:11-69 + ADDED from C:\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml:1:11-69 uses-permission#android.permission.INTERNET -ADDED from C:\project\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml:2:3-65 +ADDED from C:\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml:2:3-65 android:name - ADDED from C:\project\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml:2:20-62 + ADDED from C:\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml:2:20-62 uses-sdk -INJECTED from C:\project\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml reason: use-sdk injection requested -INJECTED from C:\project\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml -INJECTED from C:\project\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml +INJECTED from C:\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml reason: use-sdk injection requested +INJECTED from C:\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml +INJECTED from C:\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml android:targetSdkVersion - INJECTED from C:\project\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml + INJECTED from C:\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml android:minSdkVersion - INJECTED from C:\project\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml + INJECTED from C:\mobile\modules\expo-easytier-vpn\android\src\main\AndroidManifest.xml diff --git a/package-lock.json b/package-lock.json index b623dcf..9ceaf6c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,9 +16,11 @@ "expo-camera": "~17.0.9", "expo-clipboard": "~8.0.7", "expo-constants": "~55.0.9", + "expo-easytier-vpn": "file:./modules/expo-easytier-vpn", "expo-font": "~55.0.4", "expo-linear-gradient": "~15.0.7", "expo-linking": "~55.0.8", + "expo-modules-core": "~55.0.17", "expo-router": "~55.0.7", "expo-splash-screen": "~55.0.12", "expo-status-bar": "~55.0.4", @@ -38,6 +40,15 @@ "typescript": "~5.9.2" } }, + "modules/expo-easytier-vpn": { + "version": "1.0.0", + "license": "MIT", + "peerDependencies": { + "expo": "*", + "react": "*", + "react-native": "*" + } + }, "node_modules/@babel/code-frame": { "version": "7.29.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", @@ -4391,6 +4402,10 @@ "react-native": "*" } }, + "node_modules/expo-easytier-vpn": { + "resolved": "modules/expo-easytier-vpn", + "link": true + }, "node_modules/expo-file-system": { "version": "55.0.11", "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-55.0.11.tgz", diff --git a/plugins/with-portable-gradle-toolchain.js b/plugins/with-portable-gradle-toolchain.js new file mode 100644 index 0000000..16dfb8f --- /dev/null +++ b/plugins/with-portable-gradle-toolchain.js @@ -0,0 +1,67 @@ +const { + withAppBuildGradle, + withGradleProperties, +} = require("expo/config-plugins"); + +const TARGET_KEYS = new Set([ + "org.gradle.java.installations.auto-detect", + "org.gradle.java.installations.auto-download", + "org.gradle.java.installations.fromEnv", + "org.gradle.java.installations.paths", +]); + +function upsertProperty(entries, key, value) { + const existing = entries.find( + (entry) => entry.type === "property" && entry.key === key + ); + + if (existing) { + existing.value = value; + return; + } + + entries.push({ type: "property", key, value }); +} + +function addCppFlag(contents) { + const flag = 'cppFlags "-Wno-error=deprecated-declarations"'; + if (contents.includes(flag)) { + return contents; + } + + return contents.replace( + /(buildConfigField "String", "REACT_NATIVE_RELEASE_LEVEL", "[^\n]*"\n)/, + `$1 externalNativeBuild {\n cmake {\n ${flag}\n }\n }\n` + ); +} + +module.exports = function withPortableGradleToolchain(config) { + config = withGradleProperties(config, (config) => { + config.modResults = config.modResults.filter( + (entry) => !(entry.type === "property" && TARGET_KEYS.has(entry.key)) + ); + + upsertProperty( + config.modResults, + "org.gradle.java.installations.auto-detect", + "false" + ); + upsertProperty( + config.modResults, + "org.gradle.java.installations.auto-download", + "false" + ); + upsertProperty( + config.modResults, + "org.gradle.java.installations.fromEnv", + "JAVA_HOME" + ); + + return config; + }); + + return withAppBuildGradle(config, (config) => { + config.modResults.contents = addCppFlag(config.modResults.contents); + return config; + }); +};