<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Salut</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;"><br /></p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> Btw. this is not everything, the far more biggest issue, is that we cannot</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> scan the resource files attached in libs and executables, where those qml</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> files are shipped within the binary package. Patches to solve this are very</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> welcome, as I don't know how to extract the resources from a binary.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;"><br /></p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">The attached script should decode enough information from embedded compiled QML to extract imports from executable and library</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;"><br /></p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">If you don't want to depends on python3-elftools, you can replace the usage of find_in_elf() with find_in_file() in method scan_binary_for_imports().</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;"><br /></p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">$ ./qmlbytecode.py /usr/bin/kdeconnect-sms</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.people', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('QtQuick', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('QtCore', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('QtQuick.Dialogs', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.config', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.kirigami.delegates', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.kirigamiaddons.components', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('QtMultimedia', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.kdeconnect.sms', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.kirigamiaddons.formcard', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('QtQuick.Layouts', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.kdeconnect', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('QtQuick.Controls', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.kirigami', None)</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">$ ./qmlbytecode.py /usr/lib/x86_64-linux-gnu/qt6/plugins/plasma/applets/org.kde.panel.so</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.draganddrop', '2.0')</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.ksvg', '1.0')</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.plasma.plasmoid', '2.0')</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.kquickcontrolsaddons', '2.0')</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('QtQuick.Window', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.plasma.core', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('QtQuick.Layouts', '1.1')</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('QtQuick.Layouts', '1.0')</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.plasma.components', '3.0')</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.plasma.extras', '2.0')</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.kirigami', None)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('QtQuick', '2.15')</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('QtQuick', '2.5')</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">('org.kde.kirigami', '2.20')</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;"><br /><br /></p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Regards,</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Olivier</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;"><br /></p>
</body>
</html>