#!/system/bin/sh
# Tune rendimiento + pantalla correcta para mosaico 16 camaras DMSS.

sleep 10

# Densidad NATIVA 160: density 240 agranda UI y corta contenido fuera del mosaico.
setprop sys.display-size 1280x720
settings delete global display_density_forced 2>/dev/null
settings put system user_rotation 0
wm density reset

# CPU / GPU
echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor 2>/dev/null
echo 1296000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq 2>/dev/null
echo 1296000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq 2>/dev/null
echo 600000000 > /sys/class/devfreq/gpu/max_freq 2>/dev/null
echo 600000000 > /sys/class/devfreq/gpu/min_freq 2>/dev/null

# UI / animaciones off
settings put global window_animation_scale 0
settings put global transition_animation_scale 0
settings put global animator_duration_scale 0
settings put global development_settings_enabled 1
setprop security.perf_harden 0
setprop debug.sf.latch_unsignaled 1
setprop debug.hwui.render_dirty_regions 0

# WiFi streaming estable
settings put global wifi_sleep_policy 2
settings put global wifi_scan_always_enabled 0
settings put system screen_off_timeout 2147483647
settings put system stay_on_while_plugged_in 7
# Desactivar ahorro energia WiFi si existe
for p in /sys/class/net/wlan0/device/power/control; do
  [ -w "$p" ] && echo on > "$p"
done
settings put global wifi_frequency_band 2 2>/dev/null

# IO / memoria (eMMC interna)
[ -w /sys/block/mmcblk0/queue/read_ahead_kb ] && echo 2048 > /sys/block/mmcblk0/queue/read_ahead_kb
[ -w /sys/block/mmcblk0/queue/scheduler ] && echo deadline > /sys/block/mmcblk0/queue/scheduler
echo 60 > /proc/sys/vm/swappiness 2>/dev/null
echo 1 > /proc/sys/vm/overcommit_memory 2>/dev/null
echo 0 > /proc/sys/kernel/sched_child_runs_first 2>/dev/null
[ -w /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us ] && echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/schedutil/rate_limit_us

# Reducir servicios Google en segundo plano (kiosco)
settings put global upload_apk_enable 0 2>/dev/null
cmd appops set com.google.android.gms RUN_IN_BACKGROUND ignore 2>/dev/null
cmd appops set com.google.android.gms RUN_ANY_IN_BACKGROUND ignore 2>/dev/null
settings put global cached_apps_freezer enabled 2>/dev/null

# Limitar procesos en segundo plano (mas RAM libre para decodificacion)
settings put global hidden_api_policy 1 2>/dev/null
settings put global app_standby_enabled 1 2>/dev/null

# Apps pesadas off (kiosco CCTV)
for pkg in com.netflix.mediaclient org.xbmc.kodi org.mozilla.tv.firefox com.ionitech.airscreen com.flyness.smarttv com.android.vending com.google.android.youtube.tv com.google.android.play.games; do
  pm disable-user --user 0 "$pkg" 2>/dev/null
done

CONF=/data/local/tmp/cctv-app.conf
[ -f "$CONF" ] && . "$CONF"
APP="${CCTV_APP:-OpenIPC}"

case "$APP" in
  Ojo|ojo)
    cmd package compile -m speed it.danieleverducci.ojo 2>/dev/null
    pm disable-user --user 0 com.mm.android.DMSS 2>/dev/null
    ;;
  OpenIPC|openipc)
    cmd package compile -m speed com.openipc.decoder 2>/dev/null
    pm disable-user --user 0 it.danieleverducci.ojo 2>/dev/null
    pm disable-user --user 0 com.mm.android.DMSS 2>/dev/null
    ;;
  *)
    [ -x /data/local/tmp/dmss-config.sh ] && sh /data/local/tmp/dmss-config.sh
    cmd package compile -m speed com.mm.android.DMSS 2>/dev/null
    ;;
esac

cmd package compile -m speed com.vesta.vestaadvanced 2>/dev/null
am kill-all 2>/dev/null

log -t cctv_accel "OK native720p CPU1296 WiFi-stream APP=$APP"
