Page 1 of 1

Qt for Android

Posted: Thu Jan 15, 2026 10:12 am
by chainik
Приложение на Qt под Андроид.
Как оно работает: прога компилируется в native library, затем неведомыми тулзами это всё оборачивается в apk, где java-код сначала запускает либу самой Qt, а уже оттуда грузится моя либа, из которой вызывается main(), ну и поехали.
Защищаем только свою либу. Вне зависимости от ничего - хоть защищать сам main(), хоть какую-то левую функцию, хоть только строки без функций - результат один:

Code: Select all

I/QtCore  (13597): Start
I/Qt      (13597): qt started

E/audit   (  517): type=1400 audit(1768417515.034:19120): avc:  denied  { execmod } for  pid=13597 comm="qtMainLoopThrea" path="/data/app/.../lib/arm64/libxxx_arm64-v8a.so" dev="sda31" ino=2359773 scontext=u:r:untrusted_app_29:s0:c173,c257,c512,c768 tcontext=u:object_r:apk_data_file:s0 tclass=file permissive=0 audit_filtered
E/libxxx_arm64-v8a.so(13597): Initialization error 1
I/Zygote  (  543): Process 13597 exited due to signal 9 (Killed)
Qt запускается, но на моменте загрузки основной либы какой-то audit все зарубает, VMP ругается на "Initialization error 1", и все умерли.

ИИ нам сообщает что
The avc: denied { execmod } message indicates that the Android SELinux (Security-Enhanced Linux) policy is blocking a process associated with an untrusted app from executing code out of a memory region that has been modified (e.g., from a writable/executable memory mapping). This is a security feature designed to prevent the execution of arbitrary, potentially malicious, code on the device.
Что делать? :?

Re: Qt for Android

Posted: Thu Jan 15, 2026 10:20 am
by Admin
"Initialization error 1" показывается в случае когда mprotect, вызываемый из кода инициализации вмпротекта, вернул ошибку.

Re: Qt for Android

Posted: Thu Jan 15, 2026 10:47 am
by chainik
да, а делать-то что?
выхода нет, работать на стоковом андроиде не будет?

Re: Qt for Android

Posted: Thu Jan 15, 2026 11:04 am
by chainik
Вон что нашел: https://android-review.googlesource.com ... y/+/937658
Коммит называется "Allow execmod for apps with targetSdkVersion=26-28"

Собрал с targetSdkVersion=28 - и, действительно, audit не зарубает инициализацию.
Другое дело что это так себе выход, конечно... как минимум потому что в маркет такое положить нельзя.

Re: Qt for Android

Posted: Tue Jan 20, 2026 10:41 am
by chainik
Так, для понимания, какие-то идеи - ожидать?
Или официальная позиция что VMP не совместим с Android >=10, и точка?

Re: Qt for Android

Posted: Tue Jan 20, 2026 12:51 pm
by Admin
chainik wrote: Thu Jan 15, 2026 10:47 am да, а делать-то что?
Выключить опцию "Упаковать выходной файл".

Re: Qt for Android

Posted: Tue Jan 20, 2026 2:24 pm
by chainik
выключена, не в этом дело

Re: Qt for Android

Posted: Mon Jan 26, 2026 6:43 am
by Admin
Исправлено в 2553.