Android - динамический модуль (.so) должен быть подписан
Как я понимаю из документа DSP Hexagon:
Чтобы обеспечить возможность успешного развертывания.so на производственных устройствах на большом количестве устройств OEM, динамический модуль должен быть подписан производителем. Независимым разработчикам рекомендуется работать со своими OEM POC, чтобы подписать производство модулей для OEM-устройств.
Итак, есть ли способ заставить мои.so(ы) работать на производственном устройстве (OnePlus 3T изначально работал с OxygenOS)?
Я попытался получить root права на устройство, скомпилировав LineageOS и установив его. Так что это даёт доступ 'adb root', но я получаю следующее dlopen
ошибка:
01-14 19:25:36.211 15243 15243 E adsprpc : vendor/qcom/proprietary/adsprpc/src/fastrpc_apps_user.c:433::error: -5: 0 == (nErr = dlerr)
01-14 19:25:36.212 15243 15243 D adsprpc : vendor/qcom/proprietary/adsprpc/src/fastrpc_apps_user.c:437: dlopen error: calculator signature verify start failed for libcalculator_skel.so
Любая идея, как я могу это исправить?
2 ответа
Я поговорил с Qualcomm India и US с заинтересованным лицом (я убедился, что они являются заинтересованными сторонами и могут предоставить достоверную информацию), и обнаружил, что это невозможно, если вы не купите у них лицензию, это даже невозможно для любого бережливого стартапа (с ограниченные средства). Другой вариант - войти в их программу для инвесторов (Qualcomm Ventures).
Так что, если вы планируете купить плату Intrinsyc для создания прототипов и думаете, что позже вы будете запускать то же самое программное обеспечение DSP на производстве, ОГРОМНОЕ ВНИМАНИЕ!!! Это невозможно, если вы не решите вышеуказанную проблему с подписью.
На мой взгляд, держись подальше от лицензии TRAP!
То, что программное обеспечение разрешено на ЦСП Qualcomm, в настоящее время контролируется производителем устройства. Если вы хотите, чтобы что-то работало на DSP, вы должны работать напрямую с OEM.
Не все устройства требуют подписи, существуют беспилотные и другие не телефонные устройства, которые могут запускать неподписанные модули.