Michał z VerdandiTeamu ma povereu aktivitou "sprav port pre Motorolu Moto G84 5G a pomóž komunite".
Ohrabal som vyše rok a pol starú dokumentáciu, zas mám nové poznatky. (z kerých sa volakeré týkajú aj toho, že toto je Android 15 port namísto Android 10 portu)
Poznatek č.1. | pridávaní middleware balíčkov z iného branchu:
Code: Select all
cd hybris/mw
git clone https://github.com/mer-hybris/ngfd-plugin-droid-vibrator.git -b aidl
cd $ANDROID_ROOT
rpm/dhd/helpers/build_packages.sh --mw=https://github.com/mer-hybris/ngfd-plugin-droid-vibrator.gitPoprípade existuje alternatíva kedy sa dá builduvať čisto len špecifický spec z repa, jak napríklad pri sensorfw-aidl kerý treba pre správne funguvaní senzorov na tomto porte:
Code: Select all
rpm/dhd/helpers/build_packages.sh --mw=https://github.com/sailfishos/sensorfw --spec=rpm/sensorfw-qt5-binder.specPoznatek č.2. | definitívne opravení balíčkuvača:
Michał má ve svojom droid-config-${zarádení} repozitári zložku kickstart kde je upravený pack_package-droid-updater skript kerý sa používa pre alternatívne generuvaní flashuvacého ZIPu.
Šecky úpravy tohoto skriptu mosá pokračuvať configs rebuildom: rpm/dhd/helpers/build_packages.sh --configs
Póvodne tento flashuvací ZIP vyzíra tak, že má v sebe .tar.bz2 namísto .tar.gz (TWRP varianta) alebo userdata.img (modernejšá LineageOS recovery varianta)
Na to, aby tento kickstart skript ale vóbec volakedy funguval treba načať súbor rpm/dhd/helpers/build_packages.sh v kerom treba nájsť jedinú zmienku s .tar.bz2 a zameniť ju za .tar.gz alebo za .tar (polla toho čo komu treba) a potom má skript vačšú šancu funguvať.
Ďalej si to vyžaduje buď už iba sb2 -R zypper install zip cpio alebo zypper install zip cpio? (toto mosím ešte zistiť napresno) a odťál by to malo už lítať aj samé.
Upozornení: tento skript ví krachuvať celkom nahovno v prípade že v build zložke je už obsah. nepýtajte sa ma jak vím..
Poznatek č.3. | Jak na ZIP s vendor_bootom:
Toto je vellajšá vec, droid-hal-${zarádení}.spec potrebuje v sebe
Code: Select all
%define enable_kernel_update 1
%define enable_dtbo_update 1
%define enable_vendor_boot_update 1
Poznatek č.4. | Prečo mi to nebootuje a de zehnať linkerconfig:
Jeden z potenciálnych dóvodov prečo droid-hal neste bootuvať je potenciálna vec, kedy /system/bin/logcat vykrikuje že neví nájsť túto knižnicu, hentú knižnicu, bla, bla.
Potenciálne riešení je vysymlinkuvať obsahy šeckých /apex/<meno apexu>/lib a lib64 zložék do /odm/lib a /odm/lib64, ale tak sa veci NE-RO-BÁ.
Reálne riešení je teda zistiť, že prečo linkerconfig (kerý sa v logoch dá nájsť ťéž, len je tam schovatý) neví nájsť, neví pustiť, neví existuvať.
Prvý problém je to, že by to voláky linkerconfig pustilo keby existuval.
Pri builduvaní v ubu-chroot Android prostredí sa dá zistiť že či sa vybuilduval, stačí spraviť bežné rošošo setupenv, breakfast a potom pustiť make a jako parameter dať linkerconfig. Lenže to je vec, kerá 100% bude už existuvať.
Dóvod toho, že linkerconfig neni na svojom míste je ten, že keď človek pustí "find out/target/product -name linkerconfig" tak dojde na to že potenciálny zoznam súborov je takýto
Code: Select all
out/target/product/bangkk/recovery/root/linkerconfig
out/target/product/bangkk/symbols/apex/com.android.runtime/bin/linkerconfig
out/target/product/bangkk/root/linkerconfig
out/target/product/bangkk/obj/EXECUTABLES/linkerconfig.com.android.runtime_intermediates/linkerconfigPokračuvaní riešeňá je v tom, že buď treba vyhodiť volakeré patche a dúfať že to pomóže, alebo treba otvoriť rpm/dhd/droid-hal-device.inc, tam v ňom nájsť rádky s týmto obsahom:
Code: Select all
if [ -f %{android_root}/out/target/product/%{device}/apex/com.android.runtime/bin/linkerconfig ]; then
cp -a \
%{android_root}/out/target/product/%{device}/apex/com.android.runtime/bin/linkerconfig \
$RPM_BUILD_ROOT%{_libexecdir}/droid-hybris/system/bin/
fiPo tomto samozrejme treba už iba vybuilduvať hal s klasickým rpm/dhd/helpers/build_packages.sh --droid-hal a malo by byť oficiálne po probléme.
Poznatek č.5. | Najlepšá "dokumentácia" je build na OBS:
Zopakujem sa, najlepšá "dokumentácia" je build na OBS. Zas né na tej vyzílačke, ide o ten open build system service zázrak čo majú. Celá tá šaškárňa s middleware balíčkami je taký bordel-chaos, že človek vlastne neví jaký build používa customove balíčky a prečo a jaké.
Tak to je za normálnych okolností ak to je lokálny build, kedy takéto náležitosti po čase zabunne aj ten, kto si build spraveu (samozrejme dá sa to vyčuchať v hybris/mw/)
Ak ale teda človek narve build na OBS, tak najlepší je poznať a videť zoznam balíčkov odťál, lebo tí zmenené alebo alternatívne prídavné treba k tomu, aby OBS vóbec vyskladalo ten ostatek, ináč sa ťažko robá buildy a veci, ak neni z čoho.
Názorný príklad: build.sailfishos.org/project/show/nemo:testing:hw:motorola:miami


