diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4eb10c17..c50dd311 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -20,7 +20,7 @@ android { testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" ndk { - abiFilters += listOf("arm64-v8a" /*, "x86_64" */) + abiFilters += listOf("arm64-v8a", "x86_64") } buildConfigField("String", "Version", "\"v${versionName}\"") diff --git a/app/src/main/cpp/native-lib.cpp b/app/src/main/cpp/native-lib.cpp index b3db7b8a..d64b3c48 100644 --- a/app/src/main/cpp/native-lib.cpp +++ b/app/src/main/cpp/native-lib.cpp @@ -286,6 +286,7 @@ Java_net_rpcsx_RPCSX_getVersion(JNIEnv *env, jobject) { extern "C" JNIEXPORT jboolean JNICALL Java_net_rpcsx_RPCSX_setCustomDriver(JNIEnv *env, jobject, jstring jpath, jstring jlibraryName, jstring jhookDir) { +#ifdef __aarch64__ if (rpcsxLib.setCustomDriver == nullptr) { return false; } @@ -318,4 +319,7 @@ Java_net_rpcsx_RPCSX_setCustomDriver(JNIEnv *env, jobject, jstring jpath, } return true; -} \ No newline at end of file +#else + return false; +#endif // __aarch64__ +} diff --git a/app/src/main/java/net/rpcsx/ui/navigation/AppNavHost.kt b/app/src/main/java/net/rpcsx/ui/navigation/AppNavHost.kt index afa229a0..1d1053b8 100644 --- a/app/src/main/java/net/rpcsx/ui/navigation/AppNavHost.kt +++ b/app/src/main/java/net/rpcsx/ui/navigation/AppNavHost.kt @@ -368,7 +368,6 @@ fun AppNavHost() { composable( route = "rpcsx_channels" ) { - var downloadArch by remember { mutableStateOf(RpcsxUpdater.getArch()) } UpdateChannelListScreen( navigateBack = navController::navigateUp, title = stringResource(R.string.rpcsx_download_channel), @@ -426,7 +425,11 @@ fun AppNavHost() { } }, isDeletable = { isValidChannel(it, ReleaseRpcsxChannel, DevRpcsxChannel) }, - actions = { + actions = actions@{ + if (RpcsxUpdater.getAbi() != "arm64-v8a") { + return@actions + } + var downloadArch by remember { mutableStateOf(RpcsxUpdater.getArch()) } var expanded by remember { mutableStateOf(false) } TextButton(onClick = { expanded = true }) { diff --git a/app/src/main/java/net/rpcsx/utils/RpcsxUpdater.kt b/app/src/main/java/net/rpcsx/utils/RpcsxUpdater.kt index 38db5f1c..3066b1e3 100644 --- a/app/src/main/java/net/rpcsx/utils/RpcsxUpdater.kt +++ b/app/src/main/java/net/rpcsx/utils/RpcsxUpdater.kt @@ -2,6 +2,7 @@ package net.rpcsx.utils import android.content.Context import android.content.Intent +import android.os.Build import android.util.Log import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext @@ -40,8 +41,13 @@ object RpcsxUpdater { return "$version-$arch" } + fun getAbi(): String = Build.SUPPORTED_64_BIT_ABIS[0] + fun getArch(): String { - return GeneralSettings["rpcsx_arch"] as? String ?: "armv8-a" + return when (getAbi()) { + "x86_64" -> "x86-64" + else -> GeneralSettings["rpcsx_arch"] as? String ?: "armv8-a" + } } fun setArch(arch: String) { @@ -57,7 +63,7 @@ object RpcsxUpdater { val release = fetchResult.content as GitHub.Release val releaseVersion = "${release.name}-${arch}" - if (release.assets.find { it.name == "librpcsx-android-arm64-v8a-${arch}.so" }?.browser_download_url == null) { + if (release.assets.find { it.name == "librpcsx-android-${getAbi()}-${arch}.so" }?.browser_download_url == null) { return null } @@ -85,7 +91,7 @@ object RpcsxUpdater { is GitHub.FetchResult.Success<*> -> { val release = fetchResult.content as GitHub.Release val releaseVersion = "${release.name}-${arch}" - val releaseAsset = release.assets.find { it.name == "librpcsx-android-arm64-v8a-$arch.so" } + val releaseAsset = release.assets.find { it.name == "librpcsx-android-${getAbi()}-$arch.so" } if (releaseVersion != getCurrentVersion() && releaseAsset?.browser_download_url != null) { val target = File(destinationDir, "librpcsx-android_${arch}_${release.name}.so")