Spring naar hoofdtekst

MotoG6 met Android 12L en FM-radio

Geplaatst op door .
Laatste aanpassing op .

Inleiding

Al geruime tijd maak ik dankbaar gebruik van LineageOS als besturingssysteem voor mijn Android-apparaten. Bij aankoop en liefst daarvóór zoek ik uit of er officiële ondersteuning is, of ten minste een actieve groep ontwikkelaars die een recente versie van het alternatieve systeem op het betreffende apparaat draaiend heeft gekregen.

Voor mij is het dan een uitdaging om bij een update van de LineageOS broncode een nieuwe versie te bouwen met die aanpassingen ingebakken. Met name de maandelijkse veiligheidspatches van Google zorgen er voor dat een Android apparaat nét dat beetje veiliger gebruikt kan worden.

TL;DR

Mijn meest recente LineageOS 19.1 build (Android 12L) is te vinden op het XDA-forum. Daarnaast voorzie ik ook elke maand in een LineageOS 18.1 build (Android 11). De downloads worden gehost op een zelfgebouwde open-source download-service.

Dierentuin

Tot zover de theorie en de algemene situatie. In mijn geval begon de leerweg met de Ascend Y550 van Huawei, een Android 4.4 toestel uit 2014, waar uiteindelijk LineageOS 14.1 (Android 7.1) op draaide. Google's laatste beveiligingsupdate voor Android 7 kwam in juni 2021 – dus daar zal dit toestel voor altijd op blijven steken.

Daarna volgde de Galaxy Tab S2, een Android 7 tablet van Samsung uit 2016. LineageOS bood toendertijd officiële ondersteuning, tot en met versie 16.0 (Android 9). Sinds januari 2022 zijn er geen beveiligingsupdates meer verschenen, dus ook dit toestel is qua software jammer genoeg afgeschreven.

Met de Lenovo Tab M10, een Android 8 toestel uit 2017, volgde een tweede tablet, waar geen specifiek ROM voor beschikbaar was, maar een zogenaamd Generic System Image (GSI). Dit is een generiek, algemeen ROM waarbij alleen het fabrikant-specifieke gedeelte (vendor) bij het apparaat moet passen en kan worden hergebruikt uit de originele firmware. In dit geval was dat LineageOS 17.1 (Android 10) met de onderbouw van Lenovo (Android 9).

Moto G6

Na een eerdere ervaring met de G5 smartphone van Motorola, besloten we de opvolger in huis te halen: een Motorola G6 (2018, Android 9). Dit was een betaalbaar toestel met de boven genoemde vrijwillige, onofficiële ondersteuning voor het draaien van LineageOS (17.1, Android 10). In de loop van de tijd werd deze ondersteuning uitgebreid tot LineageOS 18.1 (Android 11). Op het moment van schrijven is zelfs Android 12.1 (12L) beschikbaar.

Het bouwen van de maandelijkse ROMs is een leuke en vooral leerzame klus. Ik kwam er door in contact met ontwikkelaars van over de hele wereld. In eerste instantie vroeg ik hulp om het bouwen überhaupt te laten slagen. Daarna wilde ik méér en probeerde een functie toe te voegen: FM-radio, waar met behulp van een bedraad headset of hoofdtelefoon als antenne, de lokale ether wordt afgezocht naar de zenders die op dat moment beschikbaar zijn.

Ik voegde de betreffende app toe aan het bouwmanifest en startte de build. Na installatie wachtte ik vol spanning of de app zou starten en stelde vast… dat ze dat niet deed. In het systeemlogboek vond ik de volgende melding:

I android_hardware_fm: FM: loading FM-JNI
E android_hardware_fm: open_dev failed, [fd=-1] /dev/radio0
D android_hardware_fm: OpenFd, [ret=-1]
W android.fmradio: type=1400 audit(0.0:5661): avc: denied { read } for uid=1000 name="radio0" dev="tmpfs" ino=14169 scontext=u:r:system_app:s0 tcontext=u:object_r:fm_radio_device:s0 tclass=chr_file permissive=0

Ik vroeg mijn medestrijders om raad en de oorzaak bleek te liggen in het ontbreken van een SELinux toestemming (permission) voor het openen van het radio-apparaat. Toen ik deze toevoegde, was de FM-ondersteuning een feit!

echo -e "\n\nallow system_app fm_radio_device:chr_file { ioctl open read };" >> \
  device/motorola/msm8953-common/sepolicy/vendor/system_app.te

Uiteindelijk heeft de hoofdontwikkelaar van de groep mijn aanpassing overgenomen in zijn code, waardoor nu alle builds die zijn basis gebruiken, er van profiteren. Zo werkt open-source! :)

Terug naar boven

Inhoudsopgave

Delen

Met de deel-knop van uw browser, of met onderstaande koppelingen deelt u deze pagina via sociale media of e-mail.

Atom-feed van FWiePs weblog

Artikelen


Categorieën

Doorzoek de onderstaande categorieën om de lijst met artikelen te filteren.


Terug naar boven