80 lines
2.1 KiB
Bash
80 lines
2.1 KiB
Bash
|
|
#!/system/bin/sh
|
||
|
|
# BuildChain — KernelSU installation script
|
||
|
|
|
||
|
|
SKIPUNZIP=0
|
||
|
|
|
||
|
|
ui_print "================================================"
|
||
|
|
ui_print " BuildChain v1.0.0"
|
||
|
|
ui_print " On-device Android build toolchain"
|
||
|
|
ui_print "================================================"
|
||
|
|
ui_print ""
|
||
|
|
|
||
|
|
DEVICE=$(getprop ro.product.model)
|
||
|
|
ARCH=$(uname -m)
|
||
|
|
API=$(getprop ro.build.version.sdk)
|
||
|
|
|
||
|
|
ui_print "- Device: $DEVICE ($ARCH)"
|
||
|
|
ui_print "- Android API: $API"
|
||
|
|
ui_print ""
|
||
|
|
|
||
|
|
# Verify arch
|
||
|
|
case "$ARCH" in
|
||
|
|
aarch64|arm64)
|
||
|
|
ui_print "- Architecture: arm64 (supported)"
|
||
|
|
;;
|
||
|
|
*)
|
||
|
|
ui_print "! WARNING: Untested architecture: $ARCH"
|
||
|
|
ui_print "! Build tools are compiled for arm64"
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
|
||
|
|
ui_print ""
|
||
|
|
ui_print "- Setting up config directory..."
|
||
|
|
CONFIG_DIR="/data/adb/buildchain"
|
||
|
|
mkdir -p "$CONFIG_DIR"
|
||
|
|
echo "$MODPATH" > "$CONFIG_DIR/moddir"
|
||
|
|
|
||
|
|
ui_print "- Setting permissions..."
|
||
|
|
set_perm_recursive $MODPATH 0 0 0755 0644
|
||
|
|
set_perm_recursive $MODPATH/tools 0 2000 0755 0755
|
||
|
|
set_perm_recursive $MODPATH/scripts 0 2000 0755 0755
|
||
|
|
set_perm $MODPATH/service.sh 0 0 0755
|
||
|
|
set_perm $MODPATH/post-fs-data.sh 0 0 0755
|
||
|
|
set_perm $MODPATH/uninstall.sh 0 0 0755
|
||
|
|
|
||
|
|
# Verify tools work
|
||
|
|
ui_print ""
|
||
|
|
ui_print "- Testing build tools..."
|
||
|
|
for tool in aapt2 aidl zipalign; do
|
||
|
|
if [ -f "$MODPATH/tools/build-tools/$tool" ]; then
|
||
|
|
ui_print " [OK] $tool"
|
||
|
|
else
|
||
|
|
ui_print " [!!] $tool missing"
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
|
||
|
|
if [ -f "$MODPATH/tools/busybox" ]; then
|
||
|
|
APPLETS=$("$MODPATH/tools/busybox" --list 2>/dev/null | wc -l)
|
||
|
|
ui_print " [OK] busybox ($APPLETS applets)"
|
||
|
|
else
|
||
|
|
ui_print " [!!] busybox missing"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Check Termux
|
||
|
|
ui_print ""
|
||
|
|
if pm list packages 2>/dev/null | grep -q "com.termux"; then
|
||
|
|
ui_print "- Termux: installed"
|
||
|
|
ui_print "- After reboot, open Termux and run:"
|
||
|
|
ui_print " buildchain setup"
|
||
|
|
else
|
||
|
|
ui_print "! Termux not installed"
|
||
|
|
ui_print "! Install Termux from F-Droid, then run: buildchain setup"
|
||
|
|
fi
|
||
|
|
|
||
|
|
ui_print ""
|
||
|
|
ui_print "- Installation complete!"
|
||
|
|
ui_print "- Reboot to activate"
|
||
|
|
ui_print "- CLI: buildchain status"
|
||
|
|
ui_print "- WebUI: http://localhost:8089"
|
||
|
|
ui_print ""
|