tools: add read-only on-TV diagnostic dump
Run with: ssh root@<tv> 'sh -s' < tools/tv-diag.sh > tv-diag.txt Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
bf2daac146
commit
ae8229588e
Executable
+105
@@ -0,0 +1,105 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Dumps everything needed to work out why the update popup still appears.
|
||||||
|
# Read-only: it changes nothing on the TV.
|
||||||
|
#
|
||||||
|
# ssh root@<tv-ip> 'sh -s' < tools/tv-diag.sh > tv-diag.txt
|
||||||
|
#
|
||||||
|
# Busybox-friendly on purpose - no bashisms, every command guarded.
|
||||||
|
|
||||||
|
SLUG=lgupdateblocker
|
||||||
|
STATE=/var/lib/webosbrew/$SLUG
|
||||||
|
|
||||||
|
section() { echo; echo "=================== $* ==================="; }
|
||||||
|
have() { command -v "$1" >/dev/null 2>&1; }
|
||||||
|
|
||||||
|
section "identity"
|
||||||
|
id
|
||||||
|
cat /etc/starfish-release 2>/dev/null || echo "(no /etc/starfish-release)"
|
||||||
|
cat /var/run/nyx/device_info.json 2>/dev/null | head -c 600
|
||||||
|
echo
|
||||||
|
uptime
|
||||||
|
date
|
||||||
|
|
||||||
|
section "did our boot hook run this boot?"
|
||||||
|
ls -l /var/lib/webosbrew/init.d/ 2>&1
|
||||||
|
echo "--- last 60 lines of $STATE/boot.log ---"
|
||||||
|
tail -60 "$STATE/boot.log" 2>&1
|
||||||
|
echo "--- config ---"
|
||||||
|
cat "$STATE/config.json" 2>&1
|
||||||
|
echo
|
||||||
|
echo "--- hosts list the hook uses ---"
|
||||||
|
cat "$STATE/hosts.txt" 2>&1
|
||||||
|
|
||||||
|
section "homebrew channel startup"
|
||||||
|
ls -la /var/lib/webosbrew/ 2>&1
|
||||||
|
ls -la /var/luna/preferences/ 2>/dev/null | grep -i webosbrew
|
||||||
|
echo "--- hbc startup script ---"
|
||||||
|
ls -l /media/developer/apps/usr/palm/services/org.webosbrew.hbchannel.service/startup.sh 2>&1
|
||||||
|
|
||||||
|
section "/etc/hosts"
|
||||||
|
cat /etc/hosts 2>&1
|
||||||
|
echo "--- is it bind-mounted? ---"
|
||||||
|
grep -i hosts /proc/mounts 2>&1
|
||||||
|
|
||||||
|
section "does blocking actually work?"
|
||||||
|
for h in su.lge.com snu.lge.com nsu.lge.com su-ssl.lge.com; do
|
||||||
|
if have nslookup; then
|
||||||
|
echo "$h -> $(nslookup "$h" 2>&1 | tail -3 | tr '\n' ' ')"
|
||||||
|
else
|
||||||
|
echo "$h -> $(ping -c 1 -W 2 "$h" 2>&1 | head -1)"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
section "staged firmware / update data"
|
||||||
|
find /mnt/lg -maxdepth 4 \( -iname '*swupdate*' -o -iname '*epk*' -o -iname '*upgrade*' \) 2>/dev/null | head -40
|
||||||
|
for d in /mnt/lg/cmn_data/swupdate /mnt/lg/swupdate /mnt/lg/user/swupdate; do
|
||||||
|
[ -e "$d" ] || continue
|
||||||
|
echo "--- $d ---"
|
||||||
|
ls -la "$d" 2>&1
|
||||||
|
du -sh "$d" 2>&1
|
||||||
|
done
|
||||||
|
echo "--- anything mounted over them? ---"
|
||||||
|
grep -i -E 'swupdate|/mnt/lg' /proc/mounts 2>&1
|
||||||
|
|
||||||
|
section "update services"
|
||||||
|
echo "--- upstart jobs ---"
|
||||||
|
ls /etc/init 2>/dev/null | grep -i -E 'update|upgrade|swup|ota'
|
||||||
|
echo "--- luna services ---"
|
||||||
|
ls /usr/palm/services 2>/dev/null | grep -i -E 'update|upgrade|swup|ota'
|
||||||
|
ls /var/palm/ls2/roles/prv 2>/dev/null | grep -i -E 'update|upgrade|swup|ota'
|
||||||
|
echo "--- running processes ---"
|
||||||
|
ps 2>/dev/null | grep -i -E 'swupdate|updater|upgrade' | grep -v grep
|
||||||
|
|
||||||
|
section "update-related settings"
|
||||||
|
for c in option general network commercial system; do
|
||||||
|
echo "--- category $c ---"
|
||||||
|
luna-send -n 1 -f "luna://com.webos.settingsservice/getSystemSettings" \
|
||||||
|
"{\"category\":\"$c\"}" 2>&1 |
|
||||||
|
tr ',' '\n' | grep -i -E 'update|upgrade|firmware|ota|epk'
|
||||||
|
done
|
||||||
|
|
||||||
|
section "what the update service itself says"
|
||||||
|
for svc in com.webos.service.swupdate com.webos.service.swupdater com.webos.service.update com.webos.service.upgrade; do
|
||||||
|
echo "--- $svc/getStatus ---"
|
||||||
|
luna-send -n 1 -t 3 -f "luna://$svc/getStatus" '{}' 2>&1 | head -c 500
|
||||||
|
echo
|
||||||
|
done
|
||||||
|
|
||||||
|
section "boot log: who raised the popup"
|
||||||
|
for f in /var/log/messages /var/log/syslog; do
|
||||||
|
[ -f "$f" ] || continue
|
||||||
|
echo "--- $f (update-related, last 60) ---"
|
||||||
|
grep -i -E 'swupdate|softwareupdate|upgrade|firmware' "$f" 2>/dev/null | tail -60
|
||||||
|
done
|
||||||
|
echo "--- notifications / alerts, last 40 ---"
|
||||||
|
grep -i -E 'createAlert|notificationmgr|systemAlert' /var/log/messages 2>/dev/null | tail -40
|
||||||
|
|
||||||
|
section "luna preferences that mention update"
|
||||||
|
grep -ril update /var/luna/preferences/ 2>/dev/null | head -20
|
||||||
|
for f in $(grep -ril update /var/luna/preferences/ 2>/dev/null | head -20); do
|
||||||
|
echo "--- $f ---"
|
||||||
|
head -c 300 "$f"
|
||||||
|
echo
|
||||||
|
done
|
||||||
|
|
||||||
|
section "done"
|
||||||
Reference in New Issue
Block a user