Различия по версиям и платформам¶
Справка: что известно о различиях версий и платформ. Каждое фактическое предложение ссылается на claim id. Основа — claims с
scope.firmware.fromили несколькими версиями вseen. Версии прошивок из SDK — «с такой-то версии» по тексту документа; на какой ветке (Sigma или Android) они действуют, документ не уточняет.
Платформы: Sigma SMP86xx, SMP87xx, Android¶
| Вопрос | SMP86xx | SMP87xx | Android |
|---|---|---|---|
Механизм плагинов (манифест, www/, www/cgi-bin) |
базовый | как на SMP86xx (SDK)1 | как на SMP87xx (SDK)2 |
Архитектура основной копии bin/, www/cgi-bin/ |
MIPS (SDK)3 | ARM, файлы из .platform.87xx/ (SDK)3 |
см. «Расхождения» |
.platform.87xx при установке |
удаляется (SDK)4 | переносится в корень (SDK)4 | по тексту SDK — переносится в корень (SDK)5; на tv188b r25 (device) удалён, а применён .platform.android (устройство r25)6 |
| FlashLite | — | не поддерживается (SDK)7 | не поддерживается (SDK)8 |
| HTML / Dune STB JS API | — | поддерживаются, движок QtWebkit, возможны отличия (SDK)7 | поддерживаются на другом движке (SDK)8 |
| Плеер | — | на основе SMP86xx, плюс DASH и H.265 (SDK)9 | иное ядро, добавлены 4Kp60 и Widevine DRM (SDK)8 |
| Фоновое воспроизведение | — | есть, плагин должен это учитывать (SDK)10 | — |
dune_plugins на накопителе |
— | — | мешает noexec (SDK)11 |
| Лог плагина | /tmp/run/<plugin_name>.log, tail -F через telnet (SDK)12 |
то же (SDK)12 | то же, busybox tail -F через telnet/ADB (SDK)12; на tv188b r25 (device) — $FS_PREFIX/tmp/run/<плагин>.log, лимит 3072000 байт (устройство r25)13 |
| Перезапуск оболочки | killall shell (SDK)14 |
killall shell (SDK)14 |
killall com.dunehd.shell (SDK)14; на tv188b r25 (device) после am force-stop com.dunehd.app приложение поднимается само за 1–2 с (устройство r25)15 |
«—» означает, что в базе нет утверждения для этой ячейки, а не что возможности нет.
Как плагины определяют платформу¶
- Screenshoter читает
/tmp/run/versions.txtи сводитplatform_kindк87xx,864x,867x,865xилиandroid(код)16. - globaltv считает устройство Android-платформой, если существует файл
/system/dunehd/init(код)17. - widget_ext несёт разные сборки curl:
curl.864xиcurl.867x— curl 7.19.5 под mipsel,curl.87xx— curl 7.36.0 под ARM (код)18. - На tv188b r25 (
device)/tmp/run/versions.txt— шесть строкkey=value, среди нихplatform_kind=android, а ключаandroid_platformнет (устройство r25)19; платформа APK записана в$FS_PREFIX/firmware/config/fw_apk_platform.txt(s928x_android11) (устройство r25)20. Ответ/cgi-bin/do?cmd=statusсодержитproduct_id,firmware_version,app_versionиproduct_name(устройство r25)21.
Расхождения¶
Правило для .platform.* на Android в SDK буквально говорит: .platform.android удаляется, а .platform.87xx
переносится в корень (SDK)5. На tv188b r25 (device) установщик сделал наоборот: применил
.platform.android (и затем .platform.android-arm-api19) (устройство r25)22 и удалил .platform.87xx
(устройство r25)23; стороны связаны conflicts_with. Для других прошивок порядок не проверен;
гипотеза аналитика — в «Не проверено». Подробнее — в guide/plugin-packaging.md.
Описание restart_gui в ChangeSettingsAction в SDK дословно то же, что у reboot («whether to reboot STB
immediately») (SDK)24. На tv188b r25 (device) restart_gui=true при reboot=false
перезапустил приложение Dune, а не приставку (устройство r25)25. Стороны связаны conflicts_with.
По SDK тайм-аут операций плагина по умолчанию — 10 с (SDK)26. На tv188b r25 (device) handle_user_input
без operation_timeout стартует с «timeout=60.0s» (устройство r25)27. Стороны связаны conflicts_with.
Версии прошивки по SDK¶
| С версии | Что появилось | Claim |
|---|---|---|
120531_2200_beta |
тип движка plain для чистых FlashLite/HTML-плагинов |
(SDK)28 |
120531_2200_beta |
www/ и CGI плагина доступны из локальной сети |
(SDK)29 |
120531_2200_beta |
действия file_play, launch_media_url, change_behavior и др., события timer, playback_stop |
(SDK)30 |
120901 |
section_index и is_default_section |
(SDK)31 |
130315_b6 / 130515_2104_b6 |
global plugin actions (две версии в одном разделе) | (SDK)32 |
130315_b6 |
show_action (не рекомендуется) |
(SDK)33 |
130424_b6 |
родительские папки root://video, root://games, root://setup и др. |
(SDK)34 |
130906_b8 |
section_index/is_default_section не только для root://applications |
(SDK)35 |
130914_b8 |
событие gui_start |
(SDK)36 |
130917_b9 |
событие boot_end |
(SDK)37 |
131106_b6 |
small_icon_url |
(SDK)38 |
150326_r10 |
собственная подпись плагинов, customer ID как signer ID | (SDK)39 |
150430_r10 |
фоновая автопроверка обновлений check_update/auto |
(SDK)40 |
Тип plain расходится с разделом манифеста, где поддерживаемым назван только php
(SDK)41 ↔ (SDK)28. Версия появления global plugin actions
указана двояко (SDK)42 ↔ (SDK)43.
Сравнения версий прошивки в Expr прошивки r24 строковые (strcmp)
(код r24)44 — сравнивать версии плагину лучше осторожно.
Android-прошивки: r22 → r24¶
Наблюдения по сравнению прошивок tv188b 250815_1012_r22 и 260827_0003_r24 и tv175u.
- В
firmware_features.txtr24 по сравнению с r22 добавлены флагиdunemdb_supplier_plugin_api_v7,sup_api_v8,movie_suppliers_order,lcfg_v2,light_stop(код r24)45. - В r22
DunePluginFw::invoke_operationне обрабатываетget_vod_stream_info, в r24 обрабатывает (код r22, r24)46. - В
dune_api.phpr22 нет ряда классов и констант, которые есть в r24 (ChooseFileActionData,PluginStreamInfo,GUI_EVENT_NETWORK_CHANGEи др.) (код r22, r24)47. bootstrap.php,dune_config.php,dune_plugin.phpиdunelib/dune_countries.phpодинаковы в tv175u240619_0210_r22, tv188b250815_1012_r22и r24-прошивках, аdunelib/config_utils,dune_languages,expr,utilsв r22 отсутствуют (код r22, r24)48.- Все 10 PHP-файлов фреймворка в tv175u
260724_0207_r24совпадают по sha256 с tv188b260827_0003_r24(код r24)49.
Android-прошивки: r24 → r25¶
Сравнение tv188b 260827_0003_r24 и 261021_0117_r25 (тестовая сборка, Android 11 та же
(код r25)50). Код — code, наблюдения на устройстве r25 — device.
PHP-рантайм:
libphp5.sor25 — другой файл, чем в r24 (r24 совпадает с tv175u r24 и APK r24) (код r22, r24, r25)51. В strings r25 вместо_php_add_http_port—_php_add_fs_prefix_to_http(код r22, r24, r25)52 и новые пути/config/lcreg.txt,%s/config/lcreg_pairs.txt(код r25)53; что это меняет в поведении, не разобрано.- Строка версии —
PHP/5.3.6во всех пяти сборках (tv188b r22, r24, r25, tv175u r24, APK r24) (код r22, r24, r25)54, на r25 это подтверждаетPHP_VERSION(устройство r25)55. Наборы имёнcurl_multi_*иCURLOPT_*в strings одинаковы у всех пяти (код r22, r24, r25)56. - CA-бандл одинаков во всех пяти сборках (SHA-256) (код r22, r24, r25)57, данные Mozilla от 11 октября 2022 года (код r22, r24, r25)58.
Флаги и окружение:
- В
firmware_features.txtr25 новый флагdownloads(код r25)59; при/tmp/flm.txtкод r25 убирает его из набора (код r25)60. На устройстве r25 флаг есть (устройство r25)61, а/tmp/flm.txtнет (устройство r25)62. - Код r24 читает из
versions.txtключandroid_platform(код r24)63, а в файле r25 его нет (устройство r25)19.
Поставщики «Фильмов» и история (подробно — guide/movie-suppliers.md):
- r25 перечитывает поставщиков ещё и по mtime
/tmp/movie_suppliers(код r25)64, обрезает хвостовые пробелы stdout поставщика доjson_decode(код r25)65 и впервые читаетfixed_trailer_files(код r25)66. - В r24 кнопки поставщиков в диалоге выбора воспроизведения
sup_infoне получали (код r24)67, в r25 его получает кнопка поставщика последней записи истории (код r25)68. Процент у кнопки r25 пишет только для недосмотренной записи (код r25)69. shell_ext/android_apps/model.php(запуск приложений) в r24 такой же, как в r25 (код r24)70.- Нативный
launch_ext_appr25 отличается от APK DMC260724_0207_r24только веткойdunehd_service(код r25)71: в r25cmdс/system/dunehd/dunehd_serviceидёт вpopen(код r25)72, в DMC такой ветки нет (код r24)73. В tv188b r24 (code) веткаdunehd_serviceесть:cmdс этим путём с начала строки идёт вpopen-помощник, иначе — вapk_helper(код r24)74;apk_helperтребует префиксam start, снимает кавычки и зовёт JNIstartActivityFromArgs(код r24)75; ожидание фокуса иcommand_status— (код r24)76–(код r24)77. Поведение на устройстве r24 не проверялось.
Операции плагина (подробно — guide/plugin-operations.md):
- В коде r24 отмена операции PHP-плагина по тайм-ауту только ставит флаг в дескрипторе
(код r24)78; на r25 (
device) по тайм-аутуphp_serverубит (устройство r25)79. Сборки разные; какая ветка кода останавливает процесс, claims не говорят. - В r25
php_serverсам пишет/tmp/run/%s.pid, в r24 этой строки нет (код r25)80; в сообщениях исполнителя r25 новый формат «%s->%s(%s.%s)» (код r25)81.
Воспроизведение и загрузки по прошивкам¶
Подробно — guide/playback.md §5 и guide/downloads-torrserver.md §5.
- r22 не обрабатывает
get_vod_stream_info(код r22, r24)46, в егоdune_api.phpнетStreamMarkerиPluginStreamInfo(код r22, r24)47. На r25 (device) оболочка читаетmarkersсерии (устройство r25)82, аget_vod_stream_infoдля ленивой серии не вызывался (устройство r25)83. subtitles.phpв r24 и r25 — один и тот же файл (код r24, r25)84;libvlc.soиlibxxx_dune_mediainfo.sor24 по SHA256 отличаются от r25 (код r24, r25)85.PluginVodInfo::buffering_msна r25 (device) применяется: «setting buffering to 3000ms» (устройство r25)86; SDK называет поле нереализованным (SDK)87.- Плагин
downloadsв r25 добавлен к 13 плагинам r24 (код r25)88;dl_managerв r24 нет (код r24)89. Среди 12 встроенных плагинов APK r24downloadsнет (код r24)90. - TorrServer есть во всех трёх сборках:
libxxx_ts.soиfirmware/bin/tsв tv188b r24 (код r24)91 и r25 (код r25)92,libxxx_ts.so— TorrServer MatriX.134 в APK r24 (код r24)93.
Старые прошивки (форум)¶
По сообщениям пользователей, в Dune 301 (150721_0136_B9) предустановленные плагины лежат в
firmware_ext (форум)94. Участник темы mydune перенёс dune_api.php из прошивки
r11 в b9 (Dune 301), рассчитывая на sel_id и post_action в open_folder(); результат в
теме не сообщён (форум)95. По мнению другого участника (Brigadir), такого переноса
недостаточно: параметры уходят в шелл в виде JSON, и шелл тоже должен быть обновлён
(форум r11)96. В прошивках tv188b и tv175u (r22 и r24) dune_api.php помечен как
автогенерируемый (код r22, r24)97 (код r22, r24)98; что его генерирует сам шелл —
только предположение (см. guide/unverified.md).
Не проверено¶
| Что | Claim | Что показал r25 (device) |
|---|---|---|
.platform.* на Android задумано как на SMP87xx: .platform.android — в корень, .platform.87xx — удаляется (inference) |
(вывод)99 | так и было (устройство r25)6 |
Таймаут считает оболочка, PHP-вызов не прерывается (r24, inference, disputed) |
(вывод r24)100 | в пределах срока sleep(15) доработал (устройство r25)101; по истечении срока php_server убит (устройство r25)79 |
Чего не хватает¶
- Нет ни одной разобранной Sigma-прошивки: строки Sigma в таблице — только из SDK.
- Версии SDK не привязаны к ветке прошивок (Sigma/Android); соответствие версий
r22/r24старымb6/b8/r10в базе не установлено.
-
doc-sdk-plugins.c128 · doc · sigma-smp86xx, sigma-smp87xx; прошивка — · Все возможности фреймворка PHP-плагинов и механизма плагинов (манифест, www/, www/cgi-bin) поддерживаются на SMP87xx так же, как на SMP86xx ↩
-
doc-sdk-plugins.c134 · doc · sigma-smp87xx, android; прошивка — · Все возможности фреймворка PHP-плагинов и механизма плагинов поддерживаются на Android так же, как на Sigma (SMP87xx) ↩
-
doc-sdk-plugins.c132 · doc · sigma-smp86xx, sigma-smp87xx; прошивка — · Платформенные файлы для SMP87xx (ARM) кладутся в .platform.87xx/ в корне плагина; основная копия (bin/, www/cgi-bin/) — для SMP86xx (MIPS) ↩↩
-
doc-sdk-plugins.c133 · doc · sigma-smp86xx, sigma-smp87xx; прошивка — · При установке на SMP86xx содержимое .platform.87xx удаляется, на SMP87xx — переносится в корень каталога установки плагина ↩↩
-
doc-sdk-plugins.c137 · doc · android; прошивка — · Текст документа буквально говорит: при установке на Android содержимое .platform.android удаляется, а содержимое .platform.87xx переносится в корень ↩↩
-
- fw-tv188b-261021-0117-r25.c214 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 штатный установщик ZIP применил к корню плагина сначала .platform.android (скопировал only_android.txt и bin/marker.txt в корень), затем поверх — .platform.android-arm-api19 (bin/marker.txt перезаписан); в установленном плагине bin/marker.txt = «.platform.android-arm-api19» и есть only_android.txt. В shell.log — «[plugin_installer] applying /tmp/plugin_tmp/.platform.
». - fw-tv188b-261021-0117-r25.c215 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 штатный установщик ZIP не применил .platform.87xx и .platform.foo и удалил все четыре каталога .platform.* (android-arm-api19, 87xx, android, foo: «[plugin_installer] removing /tmp/plugin_tmp/.platform.
») до копирования; в установленном плагине нет ни каталогов .platform.*, ни only_87xx.txt.
- fw-tv188b-261021-0117-r25.c214 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 штатный установщик ZIP применил к корню плагина сначала .platform.android (скопировал only_android.txt и bin/marker.txt в корень), затем поверх — .platform.android-arm-api19 (bin/marker.txt перезаписан); в установленном плагине bin/marker.txt = «.platform.android-arm-api19» и есть only_android.txt. В shell.log — «[plugin_installer] applying /tmp/plugin_tmp/.platform.
-
doc-sdk-plugins.c129 · doc · sigma-smp87xx; прошивка — · SMP87xx не поддерживает FlashLite; HTML-приложения и Dune STB JS API поддерживаются, но на другом движке браузера (QtWebkit) с возможными отличиями ↩↩
-
doc-sdk-plugins.c135 · doc · android; прошивка — · Android-платформы не поддерживают FlashLite; HTML/JS API поддерживаются на другом движке; ядро плеера иное, хотя добавлены 4Kp60 и Widevine DRM ↩↩↩
-
doc-sdk-plugins.c130 · doc · sigma-smp87xx; прошивка — · Плеер SMP87xx основан на плеере SMP86xx, поддерживает те же протоколы и форматы и больше (например DASH и H.265), но возможны несовместимости ↩
-
doc-sdk-plugins.c131 · doc · sigma-smp87xx; прошивка — · На SMP87xx есть фоновое воспроизведение (TOP MENU возвращает в меню при продолжении проигрывания); плагин должен учитывать навигацию по своим экранам во время своей сессии воспроизведения ↩
-
doc-sdk-plugins.c136 · doc · android; прошивка — · На Android пользовательские накопители монтируются с noexec, что мешает механизму dune_plugins ↩
-
doc-sdk-plugins.c139 · doc · sigma-smp86xx, sigma-smp87xx, android; прошивка — · Лог плагина — /tmp/run/
.log (Sigma: tail -F через telnet; Android: busybox tail -F через telnet/ADB) ↩↩↩ -
fw-tv188b-261021-0117-r25.c329 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 php_server при старте пишет «Starting logging to '/data/data/com.dunehd.app/tmp/run/<плагин>.log' (<= 3072000)»; в окружении php_server LOG_DIR=/tmp/run и LOG_MAX_FILE_SIZE=3072000. ↩
-
doc-sdk-plugins.c141 · doc · sigma-smp86xx, sigma-smp87xx, android; прошивка — · Перезапуск процесса оболочки (перезагрузка всех плагинов): на Sigma — killall shell, на Android — killall com.dunehd.shell ↩↩↩
-
fw-tv188b-261021-0117-r25.c084 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 после am force-stop com.dunehd.app приложение Dune поднимается само (новый pid) за 1–2 с, без am start. ↩
-
plg-dc-screenshoter.c040 · code · sigma-smp86xx, sigma-smp87xx, android; прошивка — · HD::get_platform_kind() читает /tmp/run/versions.txt через parse_ini_file и сводит platform_kind к 87xx, 864x, 867x, 865x или android ↩
-
plg-dc-globaltv.c060 · code · android; прошивка — · Android-платформу плагин определяет по существованию файла /system/dunehd/init. ↩
-
plg-dc-widget-ext.c067 · code · sigma-smp86xx, sigma-smp87xx; прошивка — · Вложенные бинарники curl: curl.864x и curl.867x — curl 7.19.5 (mipsel-unknown-linux-gnu), curl.87xx — curl 7.36.0 (arm-buildroot-linux-gnueabi) из sigma-buildroot_2014.05 (bdk8756) ↩
-
fw-tv188b-261021-0117-r25.c122 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 /tmp/run/versions.txt (145 байт, system:system) — шесть строк key=value: api_version=1.1.0, firmware_version=261021_0117_r25, product=tv188b, platform_kind=android, app_version=1.0.1-13-261021_0117_r25, app_version_code=13; ключа android_platform нет. ↩↩
-
fw-tv188b-261021-0117-r25.c097 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 $FS_PREFIX/firmware/config/fw_apk_platform.txt содержит s928x_android11. ↩
-
fw-tv188b-261021-0117-r25.c100 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 ответ /cgi-bin/do?cmd=status содержит product_id=tv188b, serial_number, firmware_version=261021_0117_r25, commercial_serial_number, app_version=1.0.1-13-261021_0117_r25 и product_name=«Pro 8K Plus» — те же значения, что в тот же момент лежат в product_id.txt, firmware_version.txt, /tmp/sysinfo.txt и /fconfig/mname.txt. ↩
-
fw-tv188b-261021-0117-r25.c214 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 штатный установщик ZIP применил к корню плагина сначала .platform.android (скопировал only_android.txt и bin/marker.txt в корень), затем поверх — .platform.android-arm-api19 (bin/marker.txt перезаписан); в установленном плагине bin/marker.txt = «.platform.android-arm-api19» и есть only_android.txt. В shell.log — «[plugin_installer] applying /tmp/plugin_tmp/.platform.
». ↩ -
fw-tv188b-261021-0117-r25.c215 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 штатный установщик ZIP не применил .platform.87xx и .platform.foo и удалил все четыре каталога .platform.* (android-arm-api19, 87xx, android, foo: «[plugin_installer] removing /tmp/plugin_tmp/.platform.
») до копирования; в установленном плагине нет ни каталогов .platform.*, ни only_87xx.txt. ↩ -
doc-sdk-plugins--gui-actions.c122 · doc · any-documented; прошивка — · Поле reboot в ChangeSettingsAction определяет, перезагрузить ли приставку немедленно; описание restart_gui в документе дословно то же («whether to reboot STB immediately») ↩
-
fw-tv188b-261021-0117-r25.c072 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 ChangeSettingsAction с restart_gui=true, reboot=false и пустыми settings перезапускает приложение Dune, а не приставку. Оболочка пишет «APK: trigger restart», pid com.dunehd.app меняется 17983 → 19586, а /proc/uptime растёт непрерывно (129033 → 129116 с). ↩
-
doc-sdk-plugins.c042 · doc · any-documented; прошивка — · По SDK тайм-аут операций плагина по умолчанию составляет 10 секунд; operation_timeout задаёт общий (
) и потиповой ( N ) тайм-аут. ↩ -
fw-tv188b-261021-0117-r25.c309 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 операция handle_user_input PHP-плагина без operation_timeout в манифесте (test_plugin5, test_plugin6; ENTER на точке входа с plugin_handle_user_input) стартует с тайм-аутом 60 с: в shell.log «…->handle_user_input(…): start (timeout=60.0s)». ↩
-
doc-sdk-plugins.c102 · doc · any-documented; прошивка — · Для чистых FlashLite/HTML-плагинов вместо 'php' можно указать тип 'plain' — тогда PHP-программа и параметр program не нужны ↩↩
-
doc-sdk-plugins.c096 · doc · any-documented; прошивка — · Файлы www/ и CGI из www/cgi-bin/ плагина доступны по HTTP не только локально, но и из локальной сети ↩
-
doc-sdk-plugins.c104 · doc · any-documented; прошивка — · В 120531_2200_beta добавлены действия file_play, dvd_play, bluray_play, playlist_play, launch_media_url, change_behavior, show_black_screen, show_main_screen и события timer, playback_stop ↩
-
doc-sdk-plugins.c033 · doc · any-documented; прошивка — · section_index и is_default_section (с прошивки 120901) выводят точку входа как раздел главного экрана в стиле «Folders»; is_default_section делает её фокусной при первом входе ↩
-
- doc-sdk-plugins.c120 · doc · any-documented; прошивка — · Заголовок раздела «Global plugin actions» указывает доступность с прошивки 130315_b6
- doc-sdk-plugins.c121 · doc · any-documented; прошивка — · Текст того же раздела указывает доступность global plugin actions с прошивки 130515_2104_b6
-
doc-sdk-plugins.c040 · doc · any-documented; прошивка — · show_action (с 130315_b6) — GUI-действие, код завершения которого (0 — показать) решает видимость точки входа; документ не рекомендует его и советует show_cookie_name ↩
-
doc-sdk-plugins.c032 · doc · any-documented; прошивка — · Папки root://video, root://music_and_radio, root://news_and_weather, root://social_networks, root://games, root://setup доступны как родитель точки входа с прошивки 130424_b6 ↩
-
doc-sdk-plugins.c034 · doc · any-documented; прошивка — · В прошивках, отличных от 130906_b8+, section_index и is_default_section действуют только при parent_media_url = root://applications ↩
-
doc-sdk-plugins.c125 · doc · any-documented; прошивка — · Событие gui_start (с 130914_b8) срабатывает при старте штатного GUI (загрузка или выход из software standby), после мастера первоначальной настройки; при кастомном stb-home не срабатывает ↩
-
doc-sdk-plugins.c124 · doc · any-documented; прошивка — · Событие boot_end (с 130917_b9) срабатывает в самом конце загрузки; /tmp/sysinfo.txt уже гарантированно есть; GUI-действия недоступны ↩
-
doc-sdk-plugins.c036 · doc · any-documented; прошивка — · small_icon_url (с прошивки 131106_b6) — малая иконка плагина для path box и списка; поддерживаются URL plugin_file:// и gui_skin:// ↩
-
- doc-sdk-plugins.c116 · doc · any-documented; прошивка — · Допустимые signer ID: «com.dune-hd» (только Dune HD) и customer ID кастомной прошивки (с 150326_r10)
- doc-sdk-plugins.c119 · doc · any-documented; прошивка — · Собственная подпись (150326_r10+): DSA-ключи 2048 через openssl, подпись утилитой plugin_sign.x86
, публичный ключ кладётся в прошивку как /firmware/config/plugin_key.pem
-
doc-sdk-plugins.c109 · doc · any-documented; прошивка — · check_update/auto включает фоновую автопроверку обновлений (по умолчанию выключена), доступно с прошивки 150430_r10 ↩
-
doc-sdk-plugins.c030 · doc · any-documented; прошивка — · Раздел манифеста утверждает, что из типов движка (dune_plugin->type) поддерживается только 'php' с единственным обязательным параметром 'program' — путём к главному PHP-файлу ↩
-
doc-sdk-plugins.c120 · doc · any-documented; прошивка — · Заголовок раздела «Global plugin actions» указывает доступность с прошивки 130315_b6 ↩
-
doc-sdk-plugins.c121 · doc · any-documented; прошивка — · Текст того же раздела указывает доступность global plugin actions с прошивки 130515_2104_b6 ↩
-
fw-tv188b-260827-0003-r24--php-framework.c045 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Сравнения версий в Expr (fwv_ge/gt/le/lt) строковые: strcmp(firmware_version, аргумент) ↩
-
fw-tv188b-260827-0003-r24.c040 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · По сравнению с 250815_1012_r22 в firmware_features.txt r24 добавлены флаги dunemdb_supplier_plugin_api_v7, sup_api_v8, movie_suppliers_order, lcfg_v2, light_stop ↩
-
fw-tv188b-260827-0003-r24--php-framework.c079 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В 250815_1012_r22 (tv188b) DunePluginFw::invoke_operation не обрабатывает get_vod_stream_info, а в get_out_type_code нет PLUGIN_OP_GET_VOD_STREAM_INFO; в 260827_0003_r24 они есть ↩↩
-
fw-tv188b-260827-0003-r24--php-framework.c080 · code · tv188b, android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В dune_api.php 250815_1012_r22 (tv188b) нет классов ChangeMovieDataActionData, ChooseFileActionData, CreateNetworkFolderActionData, CustomIgnoreUpdateActionData, EditMovieDataActionData, FileChooserFilter, FileChooserUiParams, PluginExitFoldersActionData, PluginStreamInfo, PluginTvChannelChange, PluginUpdateTvInfoActionData, PluginVodGetStreamInfoInputData, StreamMarker, SyncMyCollectionActionData, WakeNetworkFolderActionData и соответствующих ACTION_ID, STREAM_MARKER, PLUGIN_OP_GET_VOD_STREAM_INFO, GUI_EVENT_CONFIRM_UPDATE, GUI_EVENT_KEY_FAVORITES, GUI_EVENT_NETWORK_CHANGE, GUI_EVENT_TOPMENU_REFRESH; в 260827_0003_r24 они есть ↩↩
-
fw-tv188b-260827-0003-r24--php-framework.c082 · code · tv188b, tv175u, android-dune-fw; прошивка 240619_0210_r22, 250815_1012_r22, 260724_0207_r24, 260827_0003_r24 · bootstrap.php, dune_config.php, dune_plugin.php и dunelib/dune_countries.php одинаковы (sha256) в tv175u 240619_0210_r22, tv188b 250815_1012_r22 и r24-прошивках; dunelib/config_utils, dune_languages, expr, utils в r22-прошивках отсутствуют ↩
-
fw-tv188b-260827-0003-r24--php-framework.c081 · code · tv188b, tv175u, android-dune-fw; прошивка 260724_0207_r24, 260827_0003_r24 · Все 10 PHP-файлов фреймворка в tv175u 260724_0207_r24 совпадают по sha256 с tv188b 260827_0003_r24 ↩
-
fw-tv188b-261021-0117-r25.c004 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Система r25 — та же база Android 11 (RD2A.211001.002), userdebug/test-keys, плата tyson; сборка от 2026-10-20 ↩
-
fw-apk-260724-0207-r24--data-deploy--php-fs-prefix.c028 · code · android-atv, android-dune-fw; прошивка 260724_0207_r24, 260827_0003_r24, 240619_0210_r22, 250815_1012_r22, 261021_0117_r25 · libphp5.so APK 260724_0207_r24 совпадает по sha256 (e28ffc74…) с libphp5.so прошивок tv175u 260724_0207_r24 и tv188b 260827_0003_r24; в tv175u 240619_0210_r22 и tv188b 250815_1012_r22 файл другой (e7d22b70…), в tv188b 261021_0117_r25 — тоже (4a31ef48…) ↩
-
fw-tv188b-261021-0117-r25--libphp5.c029 · code · android-dune-fw, android-atv; прошивка 261021_0117_r25, 260827_0003_r24, 250815_1012_r22, 260724_0207_r24, 1.0.1-1000-260724_0207_r24 · В strings libphp5.so tv188b r25 присутствует _php_add_fs_prefix_to_http вместо имени _php_add_http_port из r24 и r22. ↩
-
fw-tv188b-261021-0117-r25--libphp5.c030 · code · android-dune-fw; прошивка 261021_0117_r25 · В strings libphp5.so tv188b r25 присутствуют пути /config/lcreg.txt и %s/config/lcreg_pairs.txt. ↩
-
fw-tv188b-261021-0117-r25--libphp5.c001 · code · android-dune-fw, android-atv; прошивка 261021_0117_r25, 260827_0003_r24, 250815_1012_r22, 260724_0207_r24, 1.0.1-1000-260724_0207_r24 · В strings libphp5.so пяти исследованных сборок присутствует строка PHP/5.3.6. ↩
-
fw-tv188b-261021-0117-r25--libphp5.c002 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В тестовом плагине test_plugin5 на tv188b 261021_0117_r25 значение PHP_VERSION равно 5.3.6. ↩
-
fw-tv188b-261021-0117-r25--libphp5.c028 · code · android-dune-fw, android-atv; прошивка 261021_0117_r25, 260827_0003_r24, 250815_1012_r22, 260724_0207_r24, 1.0.1-1000-260724_0207_r24 · Наборы имён curl_multi_* (12) и CURLOPT_* (111) в strings libphp5.so совпадают у всех пяти исследованных сборок. ↩
-
fw-tv188b-261021-0117-r25--libphp5.c036 · code · android-dune-fw, android-atv; прошивка 261021_0117_r25, 260827_0003_r24, 250815_1012_r22, 260724_0207_r24, 1.0.1-1000-260724_0207_r24 · CA-бандлы всех пяти исследованных сборок совпадают по SHA-256 722be2869ed2c2a949e5edb75b030f1e737e869ca8e8f70bc8d876dd93227ead. ↩
-
fw-tv188b-261021-0117-r25--libphp5.c037 · code · android-dune-fw, android-atv; прошивка 261021_0117_r25, 260827_0003_r24, 250815_1012_r22, 260724_0207_r24, 1.0.1-1000-260724_0207_r24 · Заголовки CA-бандлов пяти исследованных сборок датируют данные Mozilla 11 октября 2022 года. ↩
-
fw-tv188b-261021-0117-r25.c026 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · firmware_features.txt r25 содержит новый флаг downloads ↩
-
fw-tv188b-261021-0117-r25.c025 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · ConfigUtils::load_firmware_features() в r25 убирает флаг downloads из набора, если есть файл /tmp/flm.txt (комментарий: оболочка создаёт его для «lite»-лицензии без загрузок) ↩
-
fw-tv188b-261021-0117-r25.c101 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 /tmp/firmware_features.txt — по флагу в строке: tmpfs, dunemdb_supplier_plugin_api_v2…v7, sup_api_v8, tv_config, newgui2021, app_root_url_type, movie_suppliers_update, movie_suppliers_order, url_sdcard, lcfg_v2, light_stop, apk, fw_apk, drm_apps, downloads. ↩
-
fw-tv188b-261021-0117-r25.c115 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 файла /tmp/flm.txt нет. ↩
-
fw-tv188b-260827-0003-r24--php-framework.c041 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · ConfigUtils::load_product_and_fw() читает /tmp/run/versions.txt (key=value: firmware_version, product, platform_kind, android_platform); для fw_apk android_platform берётся из /firmware/config/fw_apk_platform.txt ↩
-
fw-tv188b-261021-0117-r25.c052 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · Suppliers::reload_if_changed (в r24 — reload_suppliers_if_changed) перечитывает поставщиков не только при наличии флага-файла, но и при смене mtime каталога /tmp/movie_suppliers ↩
-
fw-tv188b-261021-0117-r25--movie-suppliers.c016 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В r25 do_cmd обрезает завершающие пробельные символы stdout через rtrim до измерения длины, debug-печати и json_decode. ↩
-
fw-tv188b-261021-0117-r25.c054 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В r25 suppliers.php впервые читает ключ описателя поставщика fixed_trailer_files (сам ключ был и в r24 — в описателе rutube): для трейлеров (ass_type 1) Suppliers берёт этот массив вместо запроса поиска файлов; не массив — пустой список ↩
-
fw-tv188b-261021-0117-r25--shell-ext--entry-handler.c074 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · В r24 диалог выбора воспроизведения давал кнопкам play_online поставщиков только s, e и sup_id, без sup_info; wh_* доходили до поставщика лишь через entry/play_recent. ↩
-
fw-tv188b-261021-0117-r25--shell-ext--entry-handler.c060 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В r25 диалог выбора воспроизведения строит для каждого поставщика (с дедупликацией по key_show_only_one) кнопку play_online с s, e, sup_id; только кнопке поставщика, чей id равен whi_sup_id последней записи истории, добавляется sup_info из get_wh_supplier_info. ↩
-
fw-tv188b-261021-0117-r25--shell-ext--entry-handler.c059 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · MovieHelper::get_play_action_suffix (r25) даёт подпись кнопки только если запись истории фильма по ключу all или
xимеет прогресс и whi_sup_id равен поставщику кнопки; процент («NN%», без скобок) пишется лишь для не досмотренной записи, а для всего фильма с эпизодом подпись — «[S : ENN%]» или «[S : E]». ↩ -
fw-tv188b-261021-0117-r25--app-launch.c016 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · В r24 (tv188b) finalize_launch_cmd, plain_launch_app и чтение app_data.json в shell_ext/android_apps/model.php такие же, как в r25 (diff файлов — две строки, не про запуск). ↩
-
fw-tv188b-261021-0117-r25--app-launch.c045 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В tv188b r25 функции libduneshell.so fcn.006f2b60 (apk_helper), fcn.00094884 (JNI startActivityFromArgs), fcn.00560a58 (ожидание фокуса), fcn.00560d20 и fcn.005605f4 (popen-помощники) совпадают с fcn.006e5630, fcn.00092710, fcn.0055b7c0, fcn.0055ba88 и fcn.0055b35c APK DMC по размеру и последовательности инструкций (без учёта адресов; в JNI различается путь исходника в __assert2), а обработчик launch_ext_app fcn.00560ee8 (580 байт) отличается от fcn.0055bc50 DMC (492 байта) веткой dunehd_service (c072, c057). ↩
-
fw-tv188b-261021-0117-r25--app-launch.c072 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В tv188b r25 нативный обработчик launch_ext_app (fcn.00560ee8 libduneshell.so), если ветка остановки воспроизведения не вернула управление раньше, для cmd, в которой есть непробельный символ, сравнивает начало cmd с «/system/dunehd/dunehd_service» (strncmp на 0x1d символов, ведущие пробелы не пропускаются): при совпадении печатает «gui_action D: run command '%s'» и передаёт cmd помощнику fcn.00560d20 (popen), иначе печатает «gui_action D: launch activity for command '%s'» и передаёт cmd разборщику apk_helper fcn.006f2b60; если помощник вернул −1, cmd дополнительно уходит в ветку launch activity. ↩
-
fw-tv188b-261021-0117-r25--app-launch.c030 · code · android-atv; прошивка 260724_0207_r24 · В APK DMC обработчик launch_ext_app (fcn.0055bc50, печатает «[gui_action] cmd '%s', ensure_playback_stopped %d, delay: %d») при непустой cmd с непробельным символом печатает «gui_action D: launch activity for command '%s'» и передаёт cmd целиком разборщику apk_helper (fcn.006e5630); ветки «run command», вызова popen или system в функции нет — shell-команды через launch_ext_app в DMC не выполняются. ↩
-
fw-tv188b-261021-0117-r25--app-launch--native.c002 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · На этапе обработки cmd в tv188b r24 обработчик launch_ext_app fcn.0054a368 при наличии непробельного символа в cmd сравнивает первые 0x1d байт исходной cmd с «/system/dunehd/dunehd_service»: совпадение направляет cmd в fcn.0054a1a0, иначе — в apk_helper fcn.006d4c9c; ведущие пробелы перед путём при этом сравнении не пропускаются. ↩
-
- fw-tv188b-261021-0117-r25--app-launch--native.c007 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · В tv188b r24 apk_helper fcn.006d4c9c пропускает ведущие пробельные байты помощником fcn.006d4784 с isspace и требует префикс «am start » (strncmp на 9 байт); при несовпадении пишет «unsupported command (1)» и возвращает -1.
- fw-tv188b-261021-0117-r25--app-launch--native.c008 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · В tv188b r24 apk_helper fcn.006d4c9c ищет разделитель некавыченных аргументов после «am start » как байт 0x20 и снимает парные одинарные либо двойные кавычки; внутри двойных кавычек обратная косая увеличивает шаг сканирования до 2, но сохраняется в передаваемом сегменте; при незакрытой кавычке берётся остаток строки.
- fw-tv188b-261021-0117-r25--app-launch--native.c010 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · В tv188b r24 apk_helper fcn.006d4c9c при непустом списке аргументов вызывает JNI-помощник fcn.00091b04, обращающийся к startActivityFromArgs с сигнатурой ([Ljava/lang/String;)Z; false даёт сообщение «jni returned error status» и статус -1, true — статус 0.
-
fw-tv188b-261021-0117-r25--app-launch--native.c011 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · В tv188b r24 ожидание потери фокуса fcn.00549ed8 сначала проверяет, потерян ли фокус уже (тогда результат 1), затем delay < 1 (тогда timed-out и 0); при положительном delay опрашивает фокус с usleep(100000) до истечения delay секунд, возвращая ненулевой результат при потере фокуса и 0 при тайм-ауте. ↩
-
fw-tv188b-261021-0117-r25--app-launch--native.c013 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · В tv188b r24 обработчик fcn.0054a368 при нулевом статусе запуска либо пустой/пробельной cmd вызывает ожидание фокуса fcn.00549ed8 с полем +8 (delay): при результате 0 следующим действием становится результат помощника с полем +0x1c; при ненулевом результате вызывается помощник с полями +0xc/+0x10 и, если поле +0x14 не NULL, показывается тост. ↩
-
fw-tv188b-260827-0003-r24--plugin-loader--php-runtime--opexec.c017 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Отмена операции PHP-плагина (php_plugin.c, fcn.00272050) находит дескриптор операции по id, печатает «Cancelling... Output-data: %p.» и ставит в дескрипторе байт-флаг отмены — и больше ничего: ни php_server, ни PHP-коду отмена не передаётся. ↩
-
fw-tv188b-260827-0003-r24--plugin-loader--php-runtime--opexec.c032 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 по тайм-ауту handle_user_input оболочка останавливает php_server плагина и тем прерывает вызов: за «cancelling by timeout (N s)» следуют «FATAL ERROR detected (msg = operation timed out)», «[php] shutting down...», через ~0,25 с «killing PHP-server process...» и «stopped.», затем «canceling req N (fast: 1)», «PHP-FW was shut down. The operation fails.», «result status canceled» и «canceled in N s»; PHP-код вызова не доработал. ↩↩
-
fw-tv188b-260827-0003-r24--plugin-loader--php-runtime.c036 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В r25 php_server содержит путь /tmp/run/%s.pid и импорт FS_writestring, которых нет в strings php_server r24 ↩
-
fw-tv188b-260827-0003-r24--plugin-loader--php-runtime--opexec.c030 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В r25 (261021_0117_r25) набор сообщений исполнителя операций тот же, добавлены «plugin_opexec I: waiting for mc index validation», «plugin_opexec I: mc index now valid» и «plugin_opexec D: %s: %s» (вместо «still working...»), а сообщения операции получили формат «%s->%s(%s.%s)». ↩
-
fw-tv188b-261021-0117-r25.c275 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 оболочка при старте VOD читает PluginVodSeriesInfo::markers начальной серии (playback_url_is_stream_url=true): для двух StreamMarker (intro from 2 to 12, closing_credits from 25 to 35) в shell.log «markers I: 2 markers added: 2..12,25..35». ↩
-
fw-tv188b-261021-0117-r25.c281 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 для ленивой серии VOD оболочка вызвала только get_vod_stream_url; get_vod_stream_info не вызывалась ни разу, хотя плагин-тестовый плагин реализует оба метода. ↩
-
fw-tv188b-261021-0117-r25--media-player.c038 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24, 261021_0117_r25 · subtitles.php в tv188b r24 и r25 имеет одинаковые размер 25911 байт и SHA256 b476a7eab854827cf514a5b02a644c7bc4ae5d4f8efd55629fc846fae32c249e. ↩
-
fw-tv188b-261021-0117-r25--media-player.c039 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24, 261021_0117_r25 · libxxx_dune_mediainfo.so и libvlc.so в tv188b r25 отличаются по SHA256 от одноимённых ELF r24. ↩
-
fw-tv188b-261021-0117-r25.c287 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 при старте VOD тестового плагина test_plugin6 с PluginVodInfo::buffering_ms=3000 оболочка пишет в shell.log «[player] setting buffering to 3000ms» и «[player] DEBUG: using special buffering 3000ms». ↩
-
doc-sdk-plugins--operations.c107 · doc · any-documented; прошивка — · PluginVodInfo::buffering_ms (предбуферизация в мс) не реализован ↩
-
fw-tv188b-261021-0117-r25.c006 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В r25 в firmware_ext/plugins 15 каталогов встроенных плагинов с dune_plugin.xml: к 13 из r24 добавлены downloads и s928x_dvfel ↩
-
fw-tv188b-261021-0117-r25--downloads--manager-runtime.c040 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · В r24 (260827_0003) файла system/system/bin/libxxx_dl_manager.so нет: в отсортированном tree.tsv за libxxx_curl.so сразу идёт libxxx_do.so. ↩
-
fw-apk-260724-0207-r24.c044 · code · android-atv; прошивка 260724_0207_r24 · В data.zip 12 встроенных плагинов: android_apps, bluray, dunemdb_supplier_generic, dunemdb_supplier_rutube, dunemdb_supplier_youtube, dunestore, ext_epg, kartina_tv_launcher, ktv_start, radiotime, shell_ext, widget ↩
-
- fw-tv188b-260827-0003-r24.c018 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Утилиты Dune в /system/dunehd/firmware/bin/ — симлинки на /data/data/com.dunehd.app/lib/libxxx_<имя>.so (например php_server, run_plugin_cgi, ts, root)
- fw-tv188b-260827-0003-r24.c019 · code · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Сами исполняемые файлы libxxx_*.so лежат в /system/bin/ (37 ELF); крупнейший — libxxx_ts.so (44235376 байт)
-
fw-tv188b-261021-0117-r25--network-services.c047 · code · tv188b, android-dune-fw; прошивка 261021_0117_r25 · В r25 firmware/bin/ts — симлинк на /data/data/com.dunehd.app/lib/libxxx_ts.so; сам libxxx_ts.so в /system/bin занимает 44235376 байт. ↩
-
fw-apk-260724-0207-r24.c054 · code · android-atv; прошивка 260724_0207_r24 · libxxx_ts.so (44235376 байт; firmware/bin/ts по apk_bin_map.txt) — программа на Go с идентификацией TorrServer/MatriX.134 (торрент-сервер), а не ядро медиаплеера ↩
-
thr-mydune-108.c011 · forum · hdtv_301, unknown; прошивка 150721_0136_B9 · В прошивке Dune 301 предустановленные плагины лежат в firmware_ext, и их можно удалить, модифицировав прошивку ↩
-
thr-mydune-108.c012 · forum · hdtv_301, unknown; прошивка 150721_0136_B9 · Участник перенёс dune_api.php из прошивки r11 в прошивку b9 (Dune 301), рассчитывая использовать sel_id и post_action в open_folder() ↩
-
thr-mydune-108.c013 · forum · hdtv_301, unknown; прошивка 150721_0136_B9, 190919_0242_r11 · По мнению Brigadir, переноса dune_api.php из более новой прошивки недостаточно для новых возможностей API: параметры уходят в шелл в виде JSON, и шелл тоже должен быть обновлён ↩
-
thr-mydune-108.c024 · code · android-dune-fw; прошивка 250815_1012_r22, 260827_0003_r24 · В прошивках tv188b r22 и r24 файл dune_api.php помечен как автогенерируемый ↩
-
thr-mydune-108.c025 · code · unknown; прошивка 240619_0210_r22, 260724_0207_r24 · В прошивках tv175u r22 и r24 файл dune_api.php помечен как автогенерируемый ↩
-
doc-sdk-plugins.c138 · inference · android; прошивка — · Вероятно, задумано по аналогии с SMP87xx: на Android содержимое .platform.android переносится в корень, а .platform.87xx удаляется ↩
-
fw-tv188b-260827-0003-r24--plugin-loader--php-runtime.c016 · inference, disputed · tv188b, android-dune-fw; прошивка 260827_0003_r24 · Тайм-аут операции (operation_timeout; по SDK по умолчанию 10 с, потиповой
N может задать своё значение) отсчитывает оболочка: по истечении она отменяет операцию у себя и сообщает «Operation time exceeded», но PHP-вызов в php_server не прерывается — его результат приходит позже и отбрасывается («Received result for cancelled operation»). ↩ -
fw-tv188b-261021-0117-r25.c310 · device · tv188b, android-dune-fw; прошивка 261021_0117_r25 · На tv188b r25 handle_user_input test_plugin5 со sleep(15) при «start (timeout=60.0s)» доработал без отмены: результат («result action») пришёл через ~15 с после старта, сообщений об отмене по тайм-ауту нет, а следующий вызов исполнил тот же php_server 17676. ↩