diff --git a/app/build.gradle b/app/build.gradle
index 6ed2f14..53bb8d0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -16,15 +16,15 @@ android {
storePassword keystoreProperties['storePassword']
}
}
- compileSdkVersion 31
- buildToolsVersion "32.1.0-rc1"
+ compileSdkVersion 32
+ buildToolsVersion "33.0.0-rc4"
defaultConfig {
applicationId "io.github.acedroidx.frp"
- minSdkVersion 22
- targetSdkVersion 31
- versionCode 2
- versionName "1.0.1"
+ minSdkVersion 23
+ targetSdkVersion 32
+ versionCode 3
+ versionName "1.0.2"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -48,15 +48,28 @@ android {
kotlinOptions {
jvmTarget = '11'
}
+ packagingOptions {
+ jniLibs {
+ useLegacyPackaging true
+ }
+ }
+ splits {
+ abi {
+ enable true
+ reset()
+ include "arm64-v8a", "x86_64"
+ universalApk true
+ }
+ }
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.4.1'
- implementation 'com.google.android.material:material:1.5.0'
+ implementation 'com.google.android.material:material:1.6.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
- testImplementation 'junit:junit:4.13.1'
+ testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c898a67..1039d8b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -18,17 +18,17 @@
+ android:value="https://acedroidx.github.io/?a=frp" />
+ android:exported="false" />
+ android:exported="true"
+ android:launchMode="singleInstance">
diff --git a/app/src/main/java/io/github/acedroidx/frp/MainActivity.kt b/app/src/main/java/io/github/acedroidx/frp/MainActivity.kt
index c067921..fd32b2d 100644
--- a/app/src/main/java/io/github/acedroidx/frp/MainActivity.kt
+++ b/app/src/main/java/io/github/acedroidx/frp/MainActivity.kt
@@ -17,8 +17,8 @@ import java.io.File
class MainActivity : AppCompatActivity() {
- val filename = "frpc"
- val frpver = "0.41.0"
+ val filename = "libfrpc.so"
+ val frpver = "0.42.0"
val logname = "frpc.log"
val configname = "config.ini"
diff --git a/app/src/main/java/io/github/acedroidx/frp/ShellService.kt b/app/src/main/java/io/github/acedroidx/frp/ShellService.kt
index dc55751..132d40f 100644
--- a/app/src/main/java/io/github/acedroidx/frp/ShellService.kt
+++ b/app/src/main/java/io/github/acedroidx/frp/ShellService.kt
@@ -59,8 +59,19 @@ class ShellService : Service() {
val ainfo =
packageManager.getApplicationInfo(packageName, PackageManager.GET_SHARED_LIBRARY_FILES)
Log.d("adx", "native library dir ${ainfo.nativeLibraryDir}")
- p = Runtime.getRuntime()
- .exec("${ainfo.nativeLibraryDir}/${filename} -c config.ini", arrayOf(""), this.filesDir)
+ try {
+ p = Runtime.getRuntime()
+ .exec(
+ "${ainfo.nativeLibraryDir}/${filename} -c config.ini",
+ arrayOf(""),
+ this.filesDir
+ )
+ } catch (e: Exception) {
+ Log.e("adx", e.stackTraceToString())
+ Toast.makeText(this, e.message, Toast.LENGTH_LONG).show()
+ stopSelf()
+ return START_NOT_STICKY
+ }
Toast.makeText(this, "已启动服务", Toast.LENGTH_SHORT).show()
startForeground(1, showMotification());
return START_NOT_STICKY
@@ -75,7 +86,7 @@ class ShellService : Service() {
private fun showMotification(): Notification {
val pendingIntent: PendingIntent =
Intent(this, MainActivity::class.java).let { notificationIntent ->
- PendingIntent.getActivity(this, 0, notificationIntent, 0)
+ PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_IMMUTABLE)
}
val notification: Notification = NotificationCompat.Builder(this, "shell_bg")
.setSmallIcon(R.drawable.ic_launcher_foreground)
diff --git a/app/src/main/resources/lib/arm64-v8a/frpc b/app/src/main/jniLibs/arm64-v8a/libfrpc.so
similarity index 66%
rename from app/src/main/resources/lib/arm64-v8a/frpc
rename to app/src/main/jniLibs/arm64-v8a/libfrpc.so
index bf76efa..8d410c6 100644
Binary files a/app/src/main/resources/lib/arm64-v8a/frpc and b/app/src/main/jniLibs/arm64-v8a/libfrpc.so differ
diff --git a/app/src/main/resources/lib/x86_64/frpc b/app/src/main/jniLibs/x86_64/libfrpc.so
similarity index 68%
rename from app/src/main/resources/lib/x86_64/frpc
rename to app/src/main/jniLibs/x86_64/libfrpc.so
index aaa4103..14cb87a 100644
Binary files a/app/src/main/resources/lib/x86_64/frpc and b/app/src/main/jniLibs/x86_64/libfrpc.so differ
diff --git a/build.gradle b/build.gradle
index a049f03..8e23b28 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,12 +1,12 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.kotlin_version = "1.6.10"
+ ext.kotlin_version = "1.6.21"
repositories {
google()
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:7.1.2'
+ classpath 'com.android.tools.build:gradle:7.1.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong