Files
CB-C6s-STU-GSI-Fixes/META-INF/com/google/android/update-binary
purpl 0be91bc45b Initial commit: CB-C6s-STU GSI Fixes
TWRP flashable zip for CB-C6s-STU tablet running GSI.
- build.prop: append tablet characteristics, brightness, orientation, BT offload
- goodix_ts.idc: touchscreen IDC config
- sensor_config.xml: camera sensor module mapping (hi846 / gc8034)
- Shell-script update-binary with append-only build.prop logic
2026-06-27 12:18:41 +08:00

124 lines
3.4 KiB
Bash

#!/sbin/sh
# ============================================================
# TWRP Flashable Zip — CB-C6s-STU-GSI-Fixes
#
# This is a shell-script update-binary. TWRP extracts the zip,
# sets the working dir to that temp location, and runs this script.
# The updater-script is a dummy — all logic lives here.
#
# What it does:
# - Appends build.prop entries to /system/build.prop (not replace!)
# - Installs goodix_ts.idc to /system/usr/idc/
# - Installs sensor_config.xml to /vendor/etc/
# ============================================================
OUTFD=$2
ZIPFILE=$3
# ----- helpers -----
ui_print() {
echo -n -e "ui_print $1\n" > /proc/self/fd/$OUTFD
echo -n -e "ui_print\n" > /proc/self/fd/$OUTFD
}
abort() {
ui_print " "
ui_print "ERROR: $1"
ui_print "Installation aborted."
exit 1
}
# ----- locate zip root -----
# The script lives at: META-INF/com/google/android/update-binary
# Zip root is 3 levels up from the script's directory.
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
ZIPROOT=$(cd "$SCRIPT_DIR/../../.." && pwd)
ui_print "========================================"
ui_print " CB-C6s-STU-GSI-Fixes"
ui_print " Tablet GSI tweaks"
ui_print "========================================"
# ----- mount partitions -----
ui_print " "
ui_print "Mounting partitions..."
mount /system 2>/dev/null
mount /vendor 2>/dev/null
# Verify /system is accessible
if [ ! -d /system ] || [ ! -f /system/build.prop ]; then
abort "Cannot access /system. Is the system partition mounted?"
fi
ui_print "Partitions ready."
# ----- 1. APPEND build.prop (关键:追加,不覆盖) -----
ui_print " "
ui_print "[1/3] Appending entries to /system/build.prop..."
BUILDPROP_SRC="$ZIPROOT/system/build.prop"
if [ ! -f "$BUILDPROP_SRC" ]; then
abort "build.prop not found inside zip."
fi
# Backup original before modifying
cp /system/build.prop /system/build.prop.bak 2>/dev/null
chmod 644 /system/build.prop.bak 2>/dev/null
# APPEND — 使用 >> 追加而非覆盖
cat "$BUILDPROP_SRC" >> /system/build.prop
chmod 644 /system/build.prop
ui_print "build.prop: entries appended. Backup at build.prop.bak"
# ----- 2. Install touchscreen IDC -----
ui_print " "
ui_print "[2/3] Installing goodix_ts.idc..."
IDC_SRC="$ZIPROOT/system/usr/idc/goodix_ts.idc"
IDC_DST="/system/usr/idc/goodix_ts.idc"
if [ -f "$IDC_SRC" ]; then
mkdir -p /system/usr/idc 2>/dev/null
cp -f "$IDC_SRC" "$IDC_DST"
chmod 644 "$IDC_DST"
ui_print "goodix_ts.idc installed."
else
ui_print "goodix_ts.idc not found — skipped."
fi
# ----- 3. Install sensor config -----
ui_print " "
ui_print "[3/3] Installing sensor_config.xml..."
SENSOR_SRC="$ZIPROOT/vendor/etc/sensor_config.xml"
if [ -f "$SENSOR_SRC" ]; then
# /vendor may be a separate partition OR a symlink under /system
if [ -d /vendor/etc ]; then
cp -f "$SENSOR_SRC" /vendor/etc/sensor_config.xml
chmod 644 /vendor/etc/sensor_config.xml
ui_print "sensor_config.xml → /vendor/etc/"
elif [ -d /system/vendor/etc ]; then
cp -f "$SENSOR_SRC" /system/vendor/etc/sensor_config.xml
chmod 644 /system/vendor/etc/sensor_config.xml
ui_print "sensor_config.xml → /system/vendor/etc/"
else
ui_print "WARNING: /vendor/etc not found — skipped."
fi
else
ui_print "sensor_config.xml not found — skipped."
fi
# ----- done -----
ui_print " "
ui_print "========================================"
ui_print " Installation complete!"
ui_print " Reboot to apply changes."
ui_print "========================================"
exit 0