mirror of
https://github.com/LSPosed/LSPlant.git
synced 2025-05-05 05:56:38 +08:00
95 lines
2.3 KiB
Bash
Executable File
95 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -xe
|
|
export PATH="$PATH:$ANDROID_HOME/platform-tools"
|
|
sdk="$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager"
|
|
cvd_args="-daemon -enable_sandbox=false -memory_mb=8192 -report_anonymous_usage_stats=n"
|
|
|
|
print_title() {
|
|
echo -e "\n\033[44;39m${1}\033[0m\n"
|
|
}
|
|
|
|
print_error() {
|
|
echo -e "\n\033[41;39m${1}\033[0m\n"
|
|
}
|
|
|
|
cleanup() {
|
|
print_error "! An error occurred"
|
|
run_cvd_bin stop_cvd || true
|
|
}
|
|
|
|
run_cvd_bin() {
|
|
local exe=$1
|
|
shift
|
|
HOME=$CF_HOME $CF_HOME/bin/$exe "$@"
|
|
}
|
|
|
|
setup_env() {
|
|
curl -LO https://github.com/user-attachments/files/18728876/cuttlefish-base_1.2.0_amd64.zip
|
|
sudo dpkg -i ./cuttlefish-base_*_*64.zip || sudo apt-get install -f
|
|
rm cuttlefish-base_*_*64.zip
|
|
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
|
|
sudo udevadm control --reload-rules
|
|
sudo udevadm trigger
|
|
sudo usermod -aG kvm,cvdnetwork,render $USER
|
|
yes | "$sdk" --licenses > /dev/null
|
|
"$sdk" --channel=3 platform-tools
|
|
}
|
|
|
|
download_cf() {
|
|
local branch=$1
|
|
local device=$2
|
|
|
|
if [ -z $branch ]; then
|
|
branch='aosp-main'
|
|
fi
|
|
if [ -z $device ]; then
|
|
device='aosp_cf_x86_64_phone'
|
|
fi
|
|
local target="${device}-trunk_staging-userdebug"
|
|
|
|
local build_id=$(curl -sL https://ci.android.com/builds/branches/${branch}/status.json | \
|
|
jq -r ".targets[] | select(.name == \"$target\") | .last_known_good_build")
|
|
local sys_img_url="https://ci.android.com/builds/submitted/${build_id}/${target}/latest/raw/${device}-img-${build_id}.zip"
|
|
local host_pkg_url="https://ci.android.com/builds/submitted/${build_id}/${target}/latest/raw/cvd-host_package.tar.gz"
|
|
|
|
curl -L $sys_img_url -o aosp_cf_phone-img.zip
|
|
curl -LO $host_pkg_url
|
|
rm -rf $CF_HOME
|
|
mkdir -p $CF_HOME
|
|
tar xvf cvd-host_package.tar.gz -C $CF_HOME
|
|
unzip aosp_cf_phone-img.zip -d $CF_HOME
|
|
rm -f cvd-host_package.tar.gz aosp_cf_phone-img.zip
|
|
}
|
|
|
|
|
|
test_main() {
|
|
run_cvd_bin launch_cvd $cvd_args
|
|
adb wait-for-device
|
|
./gradlew connectedCheck
|
|
run_cvd_bin stop_cvd || true
|
|
}
|
|
|
|
if [ -z $CF_HOME ]; then
|
|
print_error "! Environment variable CF_HOME is required"
|
|
exit 1
|
|
fi
|
|
|
|
case "$1" in
|
|
setup )
|
|
setup_env
|
|
;;
|
|
download )
|
|
download_cf $2 $3
|
|
;;
|
|
test )
|
|
trap cleanup EXIT
|
|
export -f run_cvd_bin
|
|
test_main
|
|
trap - EXIT
|
|
;;
|
|
* )
|
|
exit 1
|
|
;;
|
|
esac
|