Реклама показывается только незарегистрированным пользователям. Вход или Регистрация

Автозапуск приложения при включении тв (автозагрузка)

Помощь новичкам, часто задаваемые вопросы и ответы по телевизорам LG Smart TV на webOS. Новичкам читать обязательно.

Re: Автозапуск приложения при включении тв (автозагрузка)

Сообщение kservice » 20 фев 2025, 14:05

andrewttrb писал(а):kservice, в части назначения на вход консоль же пишет какого параметра не хватает, достаточно предоставить его, выбрав из возможных вариантов, но рекомендую перечитать мое предыдущее сообщение, прежде чем делать.

start-devmode.sh нынче нельзя использовать в качестве точки запуска стартовой автоматизации, так как система проверяет его подпись, но возможно это не коснулось старинных версий webos, пробуй.
если работает стартовая автоматизация от homebrew channel, то рекомендуется использовать её (скрипты в /var/lib/webosbrew/init.d)

Вроде не тупой, но в данном случае что-то плохо до меня доходит. Вывод в терминале я приводил в своем первом сообщении. Я не могу понять, какого параметра там не хватает. Если надо привести вывод - повторно, то сделаю. Скажите только команду.
Homebrew channel при включении ТВ само не стартует. (получается, что стартовой автоматизации от homebrew channel нет??? ) Но если его запустить стандартным образом, то после его запуска запускается приложение, прописанное в init.d (т. е. то приложение, для которого и нужен автостарт). Для автозапуска Homebrew channel хочу попробовать приложение webosbrew-autostart. Но судя по всему, в результате такой процесс автозапуска будет очень медленным. Через дополнительный вход было бы явно быстрее, но никак не получается его назначить.
При запуске кода из возможных вариантов для регистрации приложения получаю вот такие ошибки
Код: Выделить всё
webOS TV 3.4.2 LGwebOSTV
~ # webOS.service.request ("luna://com.webos.service.eim", {
/bin/sh: syntax error: unexpected word (expecting "  ;) "  ;)
~ # method: "addDevice",
/bin/sh: method:: not found
~ # parameters: {
/bin/sh: parameters:: not found
~ # "appId": "org.webosbrew.hbchannel", // your application ID, required
/bin/sh: appId:: not found
~ # "pigImage": "", // required, preview image rendered in "All inputs", rel
ative to main application directory, can be just an empty string
/bin/sh: pigImage:: not found
~ # "mvpdIcon": "", // required on webOS <3.x
/bin/sh: can&#39;t open 3.x: no such file
/bin/sh: mvpdIcon:: not found
~ # "type": "MVPD_IP", // optional, no idea (can be MVPD_IP or MVPD_RF)
/bin/sh: syntax error: unexpected " ("
~ # "showPopup": true, // optional, shows a toast with info that default inp
ut has been changed to label
/bin/sh: showPopup:: not found
~ # "label": "application name", // optional, used in toast message only
/bin/sh: label:: not found
~ # "description": "testing", // optional, description rendered in "All inpu
ts"
/bin/sh: description:: not found
~ # },
/bin/sh: },: not found
~ # onSuccess: function (res) { console.info (&#39;success:&#39;, res) ; },
/bin/sh: syntax error: unexpected " ("
~ # onFailure: function (res) { console.info (&#39;failure:&#39;, res) ; }
/bin/sh: syntax error: unexpected " ("
~ # }) ;
/bin/sh: syntax error: unexpected "}"
~ #

Обратил внимание, что ошибка подобная "/bin/sh: not found" у меня встречается часто. Может в этом проблема?
И где найти скрипты homebrew channel, чтобы из использовать?
Был бы очень благодарен, если бы написали для меня пошаговую инструкцию.

Добавлено спустя 56 минут 22 секунды:

andrewttrb писал(а):
JackSparrow писал(а):В старых версиях webOS 3, x может не работать, но попробовать стоит.

пробовать не стоит во избежание вечной загрузки приложения-входа без возможности что-либо сделать

Судя по всему, после выполнения команды
Код: Выделить всё
# luna-send-pub -n 1 'luna://com.webos.service.eim/addDevice' '{"appId":"webos
.sevstar.app", "pigImage":"", "mvpdIcon":"", "type":"MVPD_RF", "label":"Sevstar", "de
scription":"Sevstar"}'

так и получилось. Крутятся по кругу шарики и все!!! Как исправлять?

Добавлено спустя 13 минут 8 секунд:

И даже не могу войти в сервисное меню! Доэкспериментировался!!!! Что теперь, перепрошивка или попытаться обновить прошивку с флешки?

Добавлено спустя 1 час 12 минут 28 секунд:

Частично вопрос решил путем сброса на заводские. Восстанавливаю прежние настройки. По поводу автозапуска вопрос так и остается открытым. Все-таки надеюсь на вашу помощь.
kservice

 
Сообщения: 36
Зарегистрирован: 16 фев 2025, 15:33
Благодарил (а): 6 раз.
Поблагодарили: 1 раз.
Телевизор: LG 43LH604V
Звук: LG 43LH604V

Re: Автозапуск приложения при включении тв (автозагрузка)

Спонсор » 20 фев 2025, 17:39

Реклама показывается только незарегистрированным пользователям. Войти или Зарегистрироваться
Спонсор

 
Сообщения: 100
Зарегистрирован: 15 июл 2014, 18:43
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Автозапуск приложения при включении тв (автозагрузка)

Сообщение andrewttrb » 21 фев 2025, 11:44

kservice, через start-devmode.sh проверил?
andrewttrb

 
Сообщения: 336
Зарегистрирован: 01 янв 2021, 20:22
Благодарил (а): 23 раз.
Поблагодарили: 244 раз.
Телевизор: LG OLED65CX

Re: Автозапуск приложения при включении тв (автозагрузка)

Сообщение kservice » 21 фев 2025, 11:48

Я правильно понял?
Код: Выделить всё
# start-devmode.sh
/bin/sh: start-devmode.sh: not found
~ #
kservice

 
Сообщения: 36
Зарегистрирован: 16 фев 2025, 15:33
Благодарил (а): 6 раз.
Поблагодарили: 1 раз.
Телевизор: LG 43LH604V
Звук: LG 43LH604V

Re: Автозапуск приложения при включении тв (автозагрузка)

Сообщение andrewttrb » 21 фев 2025, 12:40

kservice
нет, нужно создать start-devmode.sh по тому пути где он должен лежать и прописать в него команду на запруск нужного приложения
andrewttrb

 
Сообщения: 336
Зарегистрирован: 01 янв 2021, 20:22
Благодарил (а): 23 раз.
Поблагодарили: 244 раз.
Телевизор: LG OLED65CX

Re: Автозапуск приложения при включении тв (автозагрузка)

Сообщение kservice » 21 фев 2025, 13:06

andrewttrb
А где он должен лежать и какая должна быть команда? Извините, но мне таких коротких рекомендаций мало для понимания
kservice

 
Сообщения: 36
Зарегистрирован: 16 фев 2025, 15:33
Благодарил (а): 6 раз.
Поблагодарили: 1 раз.
Телевизор: LG 43LH604V
Звук: LG 43LH604V

Re: Автозапуск приложения при включении тв (автозагрузка)

Сообщение andrewttrb » 21 фев 2025, 13:13


За это сообщение автора andrewttrb поблагодарил:
kservice (21 фев 2025, 14:10)
andrewttrb

 
Сообщения: 336
Зарегистрирован: 01 янв 2021, 20:22
Благодарил (а): 23 раз.
Поблагодарили: 244 раз.
Телевизор: LG OLED65CX

Re: Автозапуск приложения при включении тв (автозагрузка)

Сообщение kservice » 21 фев 2025, 15:21

Создал файл start-devmode.sh с таким содержанием
Код: Выделить всё
#! /bin/sh
mount -o bind /media/cryptofs/root/etc /etc
telnetd -l /sbin/sulogin &

luna-send -n 1 -f luna://com.webos.applicationManager/launch '{"id": "webos.sevstar.app", "params":{}}'

# FIXME: disable this to turn off script echo
set -x

# FIXME: disable this to stop script from bailing on error
# set -e

# TODO: Check upstart daemon/process tracking (do we need to change /etc/init/devmode.conf? start sshd as daemon? )

# set devmode ssh port here
SSH_PORT="9922"

# set arch:
ARCH="armv71"
grep -qs "qemux86" /etc/hostname && ARCH="i686"

# set directories
OPT_DEVMODE="/opt/devmode"
OPT_SSH="/opt/openssh"
DEVELOPER_HOME="/media/developer"
DEVMODE_SERVICE_DIR="/media/cryptofs/apps/usr/palm/services/com.palmdts.devmode.service"
CRYPTO_SSH="$DEVMODE_SERVICE_DIR/binaries-${ARCH}/opt/openssh"
CRYPTO_OPT="$DEVMODE_SERVICE_DIR/binaries-${ARCH}/opt"

if [ -s ${DEVMODE_SERVICE_DIR}/jail_app.conf ] ; then
mv ${DEVMODE_SERVICE_DIR}/jail_app.conf ${DEVELOPER_HOME}
mv ${DEVMODE_SERVICE_DIR}/jail_app.conf.sig ${DEVELOPER_HOME}
fi

if [ -r ${DEVMODE_SERVICE_DIR}/sessionToken ] ; then
mv -f ${DEVMODE_SERVICE_DIR}/sessionToken /var/luna/preferences/devmode_enabled
fi


# Make sure the ssh binaries are executable (in service directory)
if [! -x "${CRYPTO_SSH}/sbin/sshd" ] ; then
chmod ugo+x ${CRYPTO_SSH}/sbin/sshd ${CRYPTO_SSH}/bin/ssh* ${CRYPTO_SSH}/bin/scp* || true
chmod ugo+x ${CRYPTO_SSH}/bin/sftp ${CRYPTO_SSH}/lib/openssh/* || true
chmod ugo+x ${CRYPTO_OPT}/devmode/usr/bin/* || true
fi

# TODO: (later) Look for "re-init" flag to re-generate ssh key if requested by app (via devkey service)
# com.palm.service.devmode could have "resetKey" method to erase /var/lib/devmode/ssh/webos_rsa
# Kind of dangerous though, since new key will need to be fetched on the desktop (after reboot)...
# We could just require a hard-reset of the TV which should blow away /var/lib/devmode/ssh/...

# Initialize the developer (client) SSH key pair, if it doesn't already exist
if [! -e /var/lib/devmode/ssh/webos_rsa ] ; then
mkdir -p /var/lib/devmode/ssh
chmod 0700 /var/lib/devmode/ssh
# get FIRST six (UPPER-CASE, hex) characters of 40-char nduid from nyx-cmd
# NOTE: This MUST match passphrase as displayed in devmode app (main.js)!
# PASSPHRASE="`/usr/bin/nyx-cmd DeviceInfo query nduid | head -c 6 | tr 'a-z' 'A-Z'`"
# PASSPHRASE="`/usr/bin/nyx-cmd DeviceInfo query nduid | tail -n1 | head -c 6 | tr 'a-z' 'A-Z'`"
PASSPHRASE="`tail /var/lib/secretagent/nduid -c 40 | head -c 6 | tr 'a-z' 'A-Z'`"
${CRYPTO_SSH}/bin/ssh-keygen -t rsa -C "developer@device" -N "${PASSPHRASE}" -f /var/lib/devmode/ssh/webos_rsa
# copy ssh key to /var/luna/preferences so the devmode service's KeyServer can read it and serve to ares-webos-cli tools
cp -f /var/lib/devmode/ssh/webos_rsa /var/luna/preferences/webos_rsa
chmod 0644 /var/luna/preferences/webos_rsa
# if we generated a new ssh key, make sure we re-create the authorized_keys file
rm -f ${DEVELOPER_HOME}/.ssh/authorized_keys
fi

# Make sure the /media/developer (and log) directories exists (as sam.conf erases it when devmode is off):
mkdir -p ${DEVELOPER_HOME}/log
chmod 777 ${DEVELOPER_HOME} ${DEVELOPER_HOME}/log

# Install the SSH key into the authorized_keys file (if it doesn't already exist)
if [! -e ${DEVELOPER_HOME}/.ssh/authorized_keys ] ; then
mkdir -p ${DEVELOPER_HOME}/.ssh
cp -f /var/lib/devmode/ssh/webos_rsa.pub ${DEVELOPER_HOME}/.ssh/authorized_keys || true
# NOTE: authorized_keys MUST be world-readable else sshd can't read it inside the devmode jail
# To keep sshd from complaining about that, we launch sshd with -o "StrictModes no" (below).
chmod 755 ${DEVELOPER_HOME}/.ssh
chmod 644 ${DEVELOPER_HOME}/.ssh/authorized_keys
chown -R developer:developer ${DEVELOPER_HOME}/.ssh
fi

# FIXME: Can we move this to /var/run/devmode/sshd?
# Create PrivSep dir
mkdir -p /var/run/sshd
chmod 0755 /var/run/sshd

# Create directory for host keys (rather than /opt/openssh/etc/ssh/)
HOST_KEY_DIR="/var/lib/devmode/sshd"
if [! -d "${HOST_KEY_DIR}" ] ; then
mkdir -p ${HOST_KEY_DIR}
chmod 0700 ${HOST_KEY_DIR}
fi

# Create initial keys if necessary
if [! -f ${HOST_KEY_DIR}/ssh_host_rsa_key ]; then
echo " generating ssh RSA key... "
${CRYPTO_SSH}/bin/ssh-keygen -q -f ${HOST_KEY_DIR}/ssh_host_rsa_key -N '' -t rsa
fi
if [! -f ${HOST_KEY_DIR}/ssh_host_ecdsa_key ]; then
echo " generating ssh ECDSA key... "
${CRYPTO_SSH}/bin/ssh-keygen -q -f ${HOST_KEY_DIR}/ssh_host_ecdsa_key -N '' -t ecdsa
fi
if [! -f ${HOST_KEY_DIR}/ssh_host_dsa_key ]; then
echo " generating ssh DSA key... "
${CRYPTO_SSH}/bin/ssh-keygen -q -f ${HOST_KEY_DIR}/ssh_host_dsa_key -N '' -t dsa
fi

# Check config
# NOTE: This should only be enabled for testing
#${CRYPTO_SSH}/sbin/sshd -f ${CRYPTO_SSH}/etc/ssh/sshd_config -h ${HOST_KEY_DIR}/ssh_host_rsa_key -t

# Set jailer command
DEVMODE_JAIL="/usr/bin/jailer -t native_devmode -i com.palm.devmode.openssh -p ${DEVELOPER_HOME}/ -s /bin/sh"
#DEVMODE_JAIL="echo"

# Add for debugging, but this will cause sshd to exit after the first ssh login:
# -ddd -e \

# Make environment file for openssh
DEVMODE_JAIL_CONF="/etc/jail_native_devmode.conf"
DEVMODE_OPENSSH_ENV="${DEVELOPER_HOME}/.ssh/environment"
if [ -f ${DEVMODE_JAIL_CONF} ]; then
echo " generating environment file from jail_native_devmode.conf... "
find ${DEVMODE_JAIL_CONF} | xargs awk '/setenv/{printf "%s=%s\n", $2, $3}' > ${DEVMODE_OPENSSH_ENV}
${DEVMODE_JAIL} /usr/bin/env >> ${DEVMODE_OPENSSH_ENV}
fi
# Set path for devmode
if [ -f ${DEVMODE_OPENSSH_ENV} ]; then
echo "PATH=${PATH}:${OPT_DEVMODE}/usr/bin" >> ${DEVMODE_OPENSSH_ENV}
fi

sleep 5;
for interface in $ (ls /sys/class/net/ | grep -v -e lo -e sit) ;
do
if [ -r /sys/class/net/$interface/carrier ] ; then
if [[ $ (cat /sys/class/net/$interface/carrier) == 1 ]]; then OnLine=1; fi
fi
done
#if [ $OnLine ]; then
# sessionToken=$ (cat /var/luna/preferences/devmode_enabled) ;
# checkSession=$ (curl --max-time 3 -s https://developer.lge.com/secure/CheckD...oken) ;

# if [ "$checkSession"! = "" ] ; then
# result=$ (node -pe 'JSON.parse (process.argv[1]).result' "$checkSession"  ;) ;
# if [ "$result" == "success" ] ; then
rm -rf /var/luna/preferences/dc*;
# # create devSessionTime file to remain session time in devmode app
# remainTime=$ (node -pe 'JSON.parse (process.argv[1]).errorMsg' "$checkSession"  ;) ;
# resultValidTimeCheck=$ (echo "${remainTime}" | egrep "^ ([0-9]{1,4} (:[0-5][0-9]) {2}) $"  ;) ;
# if [ "$resultValidTimeCheck"! = "" ] ; then
echo '900:00:00' > ${DEVMODE_SERVICE_DIR}/devSessionTime;
chgrp 5000 ${DEVMODE_SERVICE_DIR}/devSessionTime;
chmod 664 ${DEVMODE_SERVICE_DIR}/devSessionTime;
# fi
# elif [ "$result" == "fail" ] ; then
# rm -rf /var/luna/preferences/devmode_enabled;
# rm -rf /var/luna/preferences/dc*;
# if [ -e ${DEVMODE_SERVICE_DIR}/devSessionTime ] ; then
# rm ${DEVMODE_SERVICE_DIR}/devSessionTime;
# fi
# fi
# fi
#fi

# Cache clear function added (except Local storage)
if [ -e ${DEVMODE_SERVICE_DIR}/devCacheClear ] ; then
rm -rf `ls | find /var/lib/webappmanager*/* -name "Local Storage" -o -name "localstorage" -prune -o -print`;
rm ${DEVMODE_SERVICE_DIR}/devCacheClear;
fi

# Launch sshd
${DEVMODE_JAIL} ${OPT_SSH}/sbin/sshd \
-o StrictModes=no \
-f ${OPT_SSH}/etc/ssh/sshd_config \
-h ${HOST_KEY_DIR}/ssh_host_rsa_key \
-o PasswordAuthentication=no -o PermitRootLogin=no -o PermitUserEnvironment=yes \
-D -p ${SSH_PORT}

Поместил этот файл в /media/cryptofs/apps/usr/palm/services/com.palmdts.devmode.service/
Проверяю запуск приложения командой
Код: Выделить всё
luna-send -n 1 -f luna://com.webos.applicationManager/launch '{"id": "webos.sevstar.app", "params":{}}'
, запускается
Но после перезапуска ТВ слетает Homebrew Channel и соответственно теряется root
Проверить содержимое start-devmode.sh на корректность ума не хватает
kservice

 
Сообщения: 36
Зарегистрирован: 16 фев 2025, 15:33
Благодарил (а): 6 раз.
Поблагодарили: 1 раз.
Телевизор: LG 43LH604V
Звук: LG 43LH604V

Re: Автозапуск приложения при включении тв (автозагрузка)

Сообщение andrewttrb » 21 фев 2025, 16:03

kservice
увы значит таки аутентичность скрипта (подпись) проверяется системой
andrewttrb

 
Сообщения: 336
Зарегистрирован: 01 янв 2021, 20:22
Благодарил (а): 23 раз.
Поблагодарили: 244 раз.
Телевизор: LG OLED65CX

Re: Автозапуск приложения при включении тв (автозагрузка)

Сообщение kservice » 21 фев 2025, 18:27

Значит, все варианты исчерпаны? Или еще что-то есть в запасе?
kservice

 
Сообщения: 36
Зарегистрирован: 16 фев 2025, 15:33
Благодарил (а): 6 раз.
Поблагодарили: 1 раз.
Телевизор: LG 43LH604V
Звук: LG 43LH604V

Re: Автозапуск приложения при включении тв (автозагрузка)

Сообщение andrewttrb » 21 фев 2025, 23:43

Есть вариант, но нужно будет поразбираться (нет подробной инструкции)

За это сообщение автора andrewttrb поблагодарил:
kservice (21 фев 2025, 23:56)
andrewttrb

 
Сообщения: 336
Зарегистрирован: 01 янв 2021, 20:22
Благодарил (а): 23 раз.
Поблагодарили: 244 раз.
Телевизор: LG OLED65CX

Пред.След.

Вернуться в Телевизоры LG - Помощь



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Реклама показывается только незарегистрированным пользователям. Вход или Регистрация