crossbundle_tools/commands/android/common/
detect_abi.rs

1use crate::{
2    error::*,
3    types::{AndroidSdk, AndroidTarget},
4};
5
6/// Returns current android target.
7/// Runs `adb shell getprop ro.product.cpu.abi` command
8pub fn detect_abi(sdk: &AndroidSdk) -> Result<AndroidTarget> {
9    let mut adb = sdk.platform_tool(bin!("adb"))?;
10    adb.arg("shell").arg("getprop").arg("ro.product.cpu.abi");
11    let stdout = adb.output_err(true)?.stdout;
12    let abi = std::str::from_utf8(&stdout).or(Err(AndroidError::UnsupportedTarget))?;
13    AndroidTarget::from_android_abi(abi.trim())
14}