#!/system/bin/sh MODDIR=${0%/*} exec >> "$MODDIR/boot.log" 2>&1 echo "[$(date)] post-fs-data starting" # Boot-time restore from /data/local/tmp/ (bypasses broken modules_update overlay) # But only if the local file is valid - checks device_info returns valid JSON if [ -f "/data/local/tmp/control.sh" ]; then TEST=$(sh "/data/local/tmp/control.sh" device_info 2>/dev/null) case "$TEST" in '{"model'*) cp "/data/local/tmp/control.sh" "$MODDIR/control.sh" && chmod 755 "$MODDIR/control.sh" echo "[$(date)] restored control.sh from /data/local/tmp" ;; *) echo "[$(date)] /data/local/tmp/control.sh invalid, keeping module version ($(echo "$TEST" | head -c40))" ;; esac fi for f in service.sh post-fs-data.sh; do if [ -f "/data/local/tmp/$f" ]; then cp "/data/local/tmp/$f" "$MODDIR/$f" && chmod 755 "$MODDIR/$f" echo "[$(date)] restored $f from /data/local/tmp" fi done if [ -f /data/local/tmp/webui_index.html ]; then cp /data/local/tmp/webui_index.html "$MODDIR/webroot/index.html" 2>/dev/null fi if [ -f /data/local/tmp/webui_script.js ]; then cp /data/local/tmp/webui_script.js "$MODDIR/webroot/script.js" 2>/dev/null fi if [ -f /data/local/tmp/webui_style.css ]; then cp /data/local/tmp/webui_style.css "$MODDIR/webroot/style.css" 2>/dev/null fi # Copy provider binary and libs (no kernel module loading, no stock HAL killing) PROVIDER_DST="/data/local/tmp/virtual_camera_provider" LIB_DST="/data/local/tmp/virtualcam_libs" mkdir -p "$LIB_DST" 2>/dev/null cp "$MODDIR/vendor/bin/virtual_camera_provider" "$PROVIDER_DST" 2>/dev/null || true chmod 755 "$PROVIDER_DST" 2>/dev/null || true cp "$MODDIR/vendor/lib64"/*.so "$LIB_DST/" 2>/dev/null || true # Start provider in background (failure won't block boot) if [ -x "$PROVIDER_DST" ]; then nohup env LD_LIBRARY_PATH="$LIB_DST" "$PROVIDER_DST" -d /dev/video0 -w 1920 -h 1080 -i virtual /dev/null 2>&1 & echo "[$(date)] provider started" fi echo "[$(date)] post-fs-data done"