The public YouTube packages currently available to this project use a Cobalt starter that requires newer webOS system libraries. To investigate older TVs, we need the starter from a stock YouTube installation that actually runs on the affected TV.
This procedure requires a rooted TV with SSH access. Developer Mode access is
not sufficient because it cannot read the protected application directory.
An installed Content Store application is normally not retained as its
original .ipk; the required files are therefore copied from its protected
installation directory instead.
- Install or restore the official YouTube application from the LG Content Store.
- Launch it and confirm that it reaches the YouTube home screen. If possible, also start a video.
- Record the TV model, webOS version and firmware version.
Only collect files from a working stock installation. A starter from an official app that already crashes on the same TV cannot establish a compatible baseline.
Enable SSH in Homebrew Channel and connect from a computer. Replace TV_IP
with the TV's address and use the SSH username and port configured on the TV.
ssh root@TV_IPLG normally stores the stock application's runtime in a SquashFS data.img.
The visible application directory may contain only metadata, so the absence of
cobalt there is not an error.
APP_DIR=/media/cryptofs/apps/usr/palm/applications/youtube.leanback.v4
IMAGE=/media/cryptofs/apps/usr/palm/data/images/youtube.leanback.v4/data.img
ls -l "$APP_DIR/appinfo.json"
ls -lh "$IMAGE"
sha256sum "$IMAGE"If data.img is missing at that path, locate it without modifying anything:
find /media/cryptofs/apps/usr/palm/data/images \
-type f -name data.img -path '*youtube.leanback.v4*' 2>/dev/nullSet IMAGE to the reported path before continuing.
Run this while the working stock app remains installed:
{
echo "UTC date: $(date -u)"
echo "Application path: $APP_DIR"
echo "Application image: $IMAGE"
uname -a
cat /etc/webos-release 2>/dev/null
luna-send-pub -n 1 \
'luna://com.webos.service.tv.systemproperty/getSystemInfo' \
'{"keys":["modelName","firmwareVersion","sdkVersion","boardType"]}'
ls -l "$APP_DIR/appinfo.json"
cat "$APP_DIR/appinfo.json"
sha256sum "$APP_DIR/appinfo.json"
ls -lh "$IMAGE"
sha256sum "$IMAGE"
} > /tmp/youtube-webos-stock-info.txt 2>&1
cat /tmp/youtube-webos-stock-info.txtIt is okay if luna-send-pub is unavailable. Include the remaining information
and report the TV model and firmware manually.
Run these commands on the computer, not on the TV:
scp root@TV_IP:/media/cryptofs/apps/usr/palm/data/images/youtube.leanback.v4/data.img \
youtube-webos-stock-data.img
scp root@TV_IP:/tmp/youtube-webos-stock-info.txt .
sha256sum youtube-webos-stock-data.img youtube-webos-stock-info.txtIf SSH uses a non-default port, add -P PORT to both scp commands.
Reply to the relevant GitHub issue with:
- TV model, webOS version and firmware version;
- whether the stock YouTube home screen and playback worked;
- the SHA-256 printed for
data.img; - the contents of
youtube-webos-stock-info.txt.
Upload youtube-webos-stock-data.img and
youtube-webos-stock-info.txt through the private Dropbox file request:
Upload the stock YouTube files privately
No Dropbox account is required. Keep both files unchanged after calculating their SHA-256 hashes so the maintainer can verify the transfer.
Do not attach data.img to a public issue or commit it to a public fork. It is
the complete protected LG/YouTube application image and may include
drm.nfz.
Uploaded images are kept as private compatibility inputs. They are used to analyze the device's Cobalt starter and system ABI and to create new device-specific AdFree patches and test packages. The original stock image is not published as a public download.
After confirming that both files reached the computer, the temporary TV files can be removed:
rm -f /tmp/youtube-webos-stock-info.txtThe starter will first be checked against the webOS firmware symbol database.
If it matches the affected firmware, it can be combined with the patched
Evergreen libcobalt.so in a separate legacy test package. The first test
package should remain separate from the normal release until startup and video
playback have both been confirmed. Successful test results can then be used to
support new compatibility patches for the affected device family.