It may be a duplicated question, but i'm unable to find it. I wonder how we can get what's the ABI of a phone, using code. I know that there's different Interface that may dictated in gradle file. But the problem is how i can get exactly the ABI of a certain device, so that i can manually copy it to system/lib/ folder using SuperSU. Thank you.
android.productFlavors {
// for detailed abiFilter descriptions, refer to "Supported ABIs" @
// https://developer.android.com/ndk/guides/abis.html#sa
create("arm") {
ndk.abiFilters.add("armeabi")
}
create("arm7") {
ndk.abiFilters.add("armeabi-v7a")
}
create("arm8") {
ndk.abiFilters.add("arm64-v8a")
}
create("x86") {
ndk.abiFilters.add("x86")
}
create("x86-64") {
ndk.abiFilters.add("x86_64")
}
create("mips") {
ndk.abiFilters.add("mips")
}
create("mips-64") {
ndk.abiFilters.add("mips64")
}
// To include all cpu architectures, leaves abiFilters empty
create("all")
}
There are two ways that you can do this. One is deprecated but still works while the other requires the phone to be running Android 5.0 or greater.
The Deprecated Way
If you want to support all current phones you can use:
import android.os.Build;
String ABI = Build.CPU_ABI;
The Newer Way
The newer way actually will provide a list of all supported ABIs, the first index being the most preferred ABI to use (API Reference):
import android.os.Build;
String ABI = Build.SUPPORTED_ABIS[0];
Both ways have been tested to work on Android 5.1.1, they will return one of the following:
Future ABIs should be listed here: https://developer.android.com/ndk/guides/abis.html#sa