Files
miracast-enabler/pull-aapt2.sh

45 lines
1.2 KiB
Bash
Raw Normal View History

#!/bin/bash
# Pull aapt2 from a connected Android device for local builds
# Usage: ./pull-aapt2.sh
set -e
DEST="tools/aapt2"
if ! adb get-state >/dev/null 2>&1; then
echo "ERROR: No device connected via ADB"
exit 1
fi
echo "Searching for aapt2 on device..."
# Find aapt2 binary on the device
DEVICE_PATH=$(adb shell "find /system /vendor /apex -name 'aapt2' -type f 2>/dev/null" | tr -d '\r' | head -1)
if [ -z "$DEVICE_PATH" ]; then
echo "aapt2 not found as standalone binary, checking APEX modules..."
# On newer Android, build tools live inside APEX
DEVICE_PATH=$(adb shell "find /apex/com.android.sdkext /apex/com.android.art -name 'aapt2' 2>/dev/null" | tr -d '\r' | head -1)
fi
if [ -z "$DEVICE_PATH" ]; then
echo "aapt2 not found on device."
echo "Trying framework-res.apk instead (for on-device overlay builds)..."
DEVICE_PATH="/system/framework/framework-res.apk"
DEST="tools/framework-res.apk"
fi
echo "Pulling: $DEVICE_PATH"
mkdir -p "$(dirname "$DEST")"
adb pull "$DEVICE_PATH" "$DEST"
if [ -f "$DEST" ]; then
chmod +x "$DEST" 2>/dev/null
echo "Saved to: $DEST"
file "$DEST"
if [[ "$DEST" == *aapt2 ]]; then
VERSION=$("./$DEST" version 2>&1 || true)
echo "Version: $VERSION"
fi
fi