
SELinux Se on vakiinnuttanut asemansa yhtenä Androidin tärkeimmistä tietoturvaesteistä, ja se asettaa käytäntöjä, jotka määrittävät, mitä sovellukset ja prosessit voivat tai eivät voi tehdä. Androidin kehittyessä SELinuxin läsnäolo ja merkitys on kasvanut eksponentiaalisesti: alkuaikojen yksinkertaisesta mekanismista siitä on tullut olennainen pilari järjestelmän eheyden turvaamisessa. Ymmärrä, miten SELinux toimii ja miten sen toimintaa voi muokata Se ei ole kiinnostavaa vain edistyneille kehittäjille ja järjestelmänvalvojille, vaan myös välttämätöntä niille, jotka tarvitsevat laitteiden mukauttamista tiettyihin käyttötarkoituksiin, yhteensopivuusongelmien korjaamista tai yksinkertaisesti tietoturvan optimointia mukautetuissa ympäristöissä.
Tämä artikkeli Se kattaa perusteellisesti kaiken SELinuxiin Androidilla liittyvän.. Selitämme kaiken perusasioista käytäntöjen yksityiskohtiin, mukaan lukien tekniset yksityiskohdat siitä, miten ne integroituvat järjestelmään, miten konteksteja hallitaan, mitä varotoimia sinun tulee tehdä laitteen toiminnallisuuden menettämisen välttämiseksi, miten päivitykset vaikuttavat niihin ja mitä eroja Android-versioiden välillä on. Keskustelemme myös yleisistä SELinuxin muokkaamiseen liittyvistä ongelmista, siitä, mitä menetelmiä tilojen vaihtamiseen on olemassa, ja mitä se tarkoittaa sekä kehittäjille että kokeneille käyttäjille. Jos etsit kattavaa, selkeää ja hyödyllistä opasta SELinux-muutosten tekemiseen Androidilla, tässä on kaikki tiedot, joita tukevat virallinen dokumentaatio, foorumiarvostelut ja todistetut tekniset resurssit.
Mikä on SELinux ja miksi se on tärkeä Androidille?
SELinux (Security-Enhanced Linux) on ytimeen integroitu tietoturvamoduuli, jonka tarkoituksena on valvoa pakolliset käyttöoikeuskäytännöt. Sen tehtävänä on määritellä, mitä kukin prosessi, sovellus tai käyttäjä voi tehdä käyttöjärjestelmässä. Androidilla SELinuxin käyttöönotto on ollut avainasemassa klassisten tietoturva-aukkojen korjaamisessa., erityisesti Android 4.3:sta lähtien, jolloin se otettiin käyttöön vahvistamaan sovellusten välistä eristystä ja suojaamaan käyttöjärjestelmän kriittisiä osia luvattomilta muutoksilta (esim. rootkit-hyökkäyksiltä, hyökkäyshaittaohjelmilta ja haitallisilta sovelluksilta).
SELinuxin käyttö Androidilla parantaa merkittävästi turvallisuuttaEstää prosesseja, joilla on laajennetut oikeudet (mukaan lukien pääkäyttäjän oikeudet), käsittelemästä tiedostoja, prosesseja tai jopa laitteita, joita käytäntö ei salli. Tämä käytäntö on erittäin konfiguroitavissa, mutta Sen räätälöintiin liittyy riskejä: : Sen muuttaminen väärin voi johtaa käyttökelvottomiin laitteisiin, sovellusten toimimattomuuteen tai jopa järjestelmän käynnistyksen estymiseen.
Järjestelmä käyttää kahta päätoimintatilaa: täytäntöönpanossa (valvomalla käytäntöä tiukasti ja estämällä kaiken, mikä ei ole nimenomaisesti sallittua) ja Salliva (jossa luvaton käyttö tuottaa lokeja, mutta on sallittua, hyödyllinen kehitystyössä, mutta ei suositella päivittäiseen käyttöön). Jos haluat ymmärtää perusteellisesti, miten SELinux-lokit paikannetaan ja analysoidaan, voit tutustua oppaaseemme osoitteessa Kuinka tehdä muutoksia SELinuxiin Androidilla.
SELinux-kehyksen perusteet Androidilla

Niille, jotka haluavat mukauttaa tai muokata SELinuxia Androidilla peruskomentojen lisäksi, on tärkeää ymmärtää:
- SELinux-käytäntö Se ei ole yksittäinen tiedosto, vaan kokoelma sääntöjä, jotka on jaettu kontekstitiedostoihin, käytäntötiedostoihin ja kokoonpanoihin rakennuspuussa.
- Integrointi Androidiin viittaa siihen, että SELinux on vuorovaikutuksessa järjestelmän eri osien kanssa: ytimen, käynnistysprosessin, valmistajan ja järjestelmäosioiden sekä Android-kehyksen.
Käytännöt määrittävät, mitkä prosessit voivat olla vuorovaikutuksessa minkäkin tyyppisten tiedostojen, laitteiden, sokettien, järjestelmäominaisuuksien tai muiden prosessien kanssa. Jokainen käyttöoikeus määräytyy nimenomaisen säännön mukaanJos sitä ei ole käytännössä, se hylätään automaattisesti (valvontatilassa).
Keskeiset tiedostotyypit SELinux-kokoonpanossa
SELinuxin muokkaaminen Androidilla edellyttää erityyppisten tiedostojen käsittelyä, joilla jokaisella on omat toimintonsa. Näiden tiedostojen oikea käsittely on tehokkaan ja turvallisen muutoksen perusta.:
- .te-tiedostotNe määrittelevät verkkotunnukset ja niiden tunnisteet. Tässä luodaan prosessi- ja objektityypit ja asetetaan tietyt käyttöoikeussäännöt. Lisätietoja turvallisten prosessien luomisesta saat tutustumalla seuraaviin artikkeleihin: Kuinka tehdä muutoksia SELinuxiin Androidilla.
- tiedostokontekstit: Määrittää SELinux-tunnisteet tiedosto- tai hakemistopoluille. On erittäin tärkeää varmistaa, että jokaisella tiedostolla tai laitteella on oikea konteksti sijainnin ja tarkoituksen perusteella.
- ominaisuuskontekstit: Määrittää järjestelmämuuttujien (Android-ominaisuuksien) otsikot, mikä mahdollistaa sisäisten Android-asetusten ja -säätimien käytön tarkkuuden.
- palvelukontekstit: Ohjaa palvelunhallintaohjelman (ja laajemmin myös Binder-palveluiden) hallinnoimien palveluiden taggausta ja määrittää, mitkä prosessit voivat paljastaa tai käyttää tiettyjä palveluita.
- seapp_contextsHallitsee sovellusprosessien tunnisteita ja kuhunkin sovelluspakettiin liittyviä /data/data-hakemistoja.
- mac_käyttöoikeudet.xmlYhdistää sovellukset SELinux-tunnisteisiin niiden allekirjoituksen ja paketin nimen perusteella varmistaen, että vain luotettavat sovellukset käyttävät arkaluonteisia resursseja.
- genfs_contextsMäärittää erityisille tiedostojärjestelmille, kuten proc tai vfat, osoitetut tunnisteet, jotka eivät tue laajennettuja attribuutteja.
- avainsäilö2_avainkontekstitNimiavaruudet Keystore 2.0:ssa: Merkitsee avainstore XNUMX -nimiavaruudet varmistaen selkeän eron avainten ja suojausavaruuksien välillä.
Android 8.0 ja uudemmat versiot esittelevät näiden käytäntöjen selkeämmän organisoinnin, jossa alustan (järjestelmän) ja palveluntarjoajan (myyjän) käytännöt erotetaan toisistaan, mikä helpottaa mukauttamista ja OTA-päivityksiä ilman yhteensopimattomuuden riskiä.
Kuinka toteuttaa ja kääntää SELinux Androidilla?
SELinuxin mukauttamisprosessi Androidilla Kyse ei ole vain tiedostojen muokkaamisesta, vaan pikemminkin peräkkäisinä koordinoiduina vaiheina rakennusjärjestelmän sisällä:
- Käyttöönotto ytimessä: Ytimen CONFIG_SECURITY_SELINUX-parametrin on oltava käytössä (CONFIG_SECURITY_SELINUX=y).
- Käynnistysasetukset (cmdline/bootconfig): Parametria käytetään androidboot.selinux=salliva uusien käytäntöjen kehittämisen aikana järjestelmän käynnistämiseksi sallivassa tilassa ja kieltojen tarkkailemiseksi ennen siirtymistä valvontatilaan.
- Lokien ja hylkäysten kerääminen: Työkalujen, kuten dmesg, logcat ja audit2allow, avulla estetty pääsy tunnistetaan ja tarvittavat säännöt luodaan.
- Tarkista ja kirjoita uudet säännöt: Lokien avulla voidaan havaita, mitkä verkkotunnukset tarvitsevat lisäkäyttöoikeuksia tai tiettyjä tunnisteita. Tiedostoja .te, file_contexts, seapp_contexts jne. luodaan tai muokataan.
- Kokoonpano BoardConfig.mk-tiedostossa: Tämä tiedosto on avainasemassa alihakemistojen ja mukautettujen käytäntötiedostojen sisällyttämisessä kullekin laitteelle ja valmistajalle.
- Järjestelmäkuvan kääntäminen: Järjestelmä kääntää käytännöt uudelleen ja integroi ne järjestelmän tai toimittajan levykuvaan tarpeen mukaan.
- Varmistus ja testaus: Uuden levykuvan flashaamisen jälkeen se testataan sallivassa tilassa ja sitten valvontatilassa tarkistaen, että järjestelmä käynnistyy ja pääpalvelut toimivat oikein.
On tärkeää korostaa sitä AOSP-käytäntötiedostojen (system/sepolicy) muokkaamista suoraan ei suositella.. Muutokset on tehtävä tiettyihin polkuihin kullakin laitteella (/laite/valmistaja/laitteen-nimi/sepolicy) säilyttäen järjestelmän ja palveluntarjoajan käytäntöjen erillisyyden.
SELinux-käytäntöjen mukauttaminen Android-version perusteella
Android 8.0:n (Oreo) ja uudempien versioiden myötä käytäntöjärjestelmästä tuli kehittyneempi:
- Globaali käytäntö on jaettu alustan (system), palveluntarjoajan (vendor) ja Android 11:stä lähtien myös system_ext- ja product-osioihin.
- Alusta julkistaa vain osan käytännöistään, jota vasten palveluntarjoajat voivat laatia sääntöjään. Tämä varmistaa yhteensopivuuden ja vakauden OTA-päivityksistä huolimatta.
- Nimikonflikteja (tyypit, attribuutit, palvelut, ominaisuudet jne.) minimoidaan käyttämällä eriytettyjä etuliitteitä. (esim. vendor_xxx toimittajille).
- Konteksti- ja käytäntötiedostot kootaan ja sisällytetään erillisiin osioihin, mikä mahdollistaa järjestelmästä ja toimittajasta riippumattomat päivitykset.
Lisäksi Android 9:stä alkaen on sisällytetty erityisattribuutteja (rikkojat, epäluotettava, laitteistopalvelu jne.) rajoitusten vahvistamiseksi ja alustan ja palveluntarjoajien vastuiden erottamiseksi.
Käytäntöjen yhteensopivuus ja ristiriitojen hallinta
Yksi suurimmista haasteista SELinuxin muokkaamisessa Androidilla on ylläpitää eri osioiden käytäntöjen yhteensopivuutta: alusta (system), palveluntarjoaja (vendor) ja laajennetut (system_ext, product) Android 11:stä alkaen.
OTA-päivitykset voivat korvata tai muokata tunnisteita, mikä johtaa tilanteisiin, joissa sovellettu käytäntö jättää tietyt resurssit käyttökelvottomiksi tai paljastaa muita, jotka pitäisi suojata. Tämän välttämiseksi:
- Tiedosto-, palvelu- ja ominaisuustunnisteet on selkeästi liitettävä alustaan tai toimittajaan, välttäen päällekkäisyyksiä ja uudelleenmäärittelyjä.
- Jokaisen toimittajan määrittämän tyypin tai attribuutin etuliitteenä on oltava vendor_, jotta vältetään törmäykset alustan määrittämien attribuuttien kanssa.
- Vain alustan tulisi merkitä olennaiset polut, kuten /system, /proc, /sys ja root /; Toimittajan tiedot tulisi rajoittaa /vendor- ja /data/vendor-hakemistojen alle.
- Käyttöoikeussäännöt tulisi kirjoittaa käyttämällä attribuutteja aina kun mahdollista, eikä konkreettisia tyyppejä.
Versioitunut attribuuttien määritysjärjestelmä mahdollistaa vanhoilla tunnisteilla varustettujen objektien pysymisen käytettävissä uuden käytännön alaisuudessa, ja uusia tyyppejä tai palveluita voidaan ottaa käyttöön vaarantamatta yhteensopivuutta taaksepäin.
Erilaiset SELinux-kontekstit Androidissa: toiminto ja rakenne
Kontekstitunnisteiden käyttö Androidissa on kehittynyt joustavan ja yhteensopivan hallinnan varmistamiseksi:
- TiedostokontekstitAndroid 8.0:sta lähtien on olemassa plat_file_contexts (järjestelmä) ja vendor_file_contexts (toimittaja) -tiedostoja. Alusta merkitsee vain järjestelmän ja tiettyjen toimittajien osat yhteentoimivuuden varmistamiseksi. Myyjä merkitsee tietyt reitit omille toteutuksilleen.
- Ominaisuuskontekstitplat_property_contexts- ja vendor_property_contexts-tiedostot pitävät järjestelmän ja toimittajan ominaisuudet erillään, mikä estää päällekkäisyyksiä tai ei-toivottuja uudelleenmäärittelyjä.
- Palvelukontekstitplat_service_contexts (järjestelmä) ja vendor_service_contexts (toimittaja) järjestävät palvelujen käytön ja rekisteröinnin servicemanagerissa varmistaen eristäytymisen ja yhteensopivuuden.
- HWService-kontekstitplat_hwservice_contexts ja vendor_hwservice_contexts määrittävät HwBinder-palvelut, jotka ovat välttämättömiä kriittisten prosessien ja laitteiston väliselle viestinnälle.
- Seapp-kontekstitplat_seapp_contexts ja vendor_seapp_contexts hallitsevat sovellusprosessien ja -hakemistojen taggausta, mikä on avainasemassa käyttäjätietojen ja järjestelmäsovellusten suojaamisessa.
- MAC-käyttöoikeudetNe on jaettu alustakohtaisiin ja ei-alustaisiin mac_permissions.xml-tiedostoihin, ja ne mahdollistavat tarkennetun käyttöoikeuksien hallinnan sovellusten allekirjoitusten ja pakettien nimien perusteella. Järjestelmän hallinnoimat oikeudet erotetaan selvästi toisistaan, ja toimittajan vastuulla olevat oikeudet on jaettu oikein.
Case-tutkimukset: Yleisiä ongelmia ja ratkaisuja SELinuxin muokkaamisessa
Yritykset muokata SELinuxin toimintaa Androidilla vastaavat tyypillisesti kahteen päätarpeeseen:
- Muuta SELinux-tilaa (Pakollinen ↔ Salliva): Hyvin yleinen kehitysympäristöissä, mukauttamisessa tai sellaisten sovellusten tai moduulien suorittamisessa, jotka vaativat erityisiä käyttöoikeuksia.
- Syvällinen käytäntöjen mukauttaminen OEM-mukautuksille, mukautetuille ROM-levyille tai yrityskäyttöönotoille: Tarpeellinen uuden laitteiston tukemiseksi, mukautettujen palveluiden lisäämiseksi tai prosessien eristämisen muokkaamiseksi.
Tosielämän esimerkki SELinux-tilan muutoksista: Foorumeilla, kuten HTCMania ja Reddit, on monia tapauksia, joissa käyttäjät yrittävät muuttaa SELinux-tilan sallivaksi suorittamalla komentoja, kuten setenforce 0 päätteestä root-oikeuksin, rivien muokkaaminen build.prop (ro.build.selinux tai ro.securestorage.support) tai käyttämällä työkaluja, kuten Busybox. Típicos tulokset: Monissa tapauksissa muutos on vain väliaikainen (uudelleenkäynnistykseen asti) tai sillä ei ole vaikutusta käynnistyskäytäntöjen tai ytimen rajoitusten vuoksi. Toisinaan, jopa tiedostojen muokkaamisen jälkeen, SELinux pysyy valvontatilassa uudelleenkäynnistyksen jälkeen, mikä korostaa SELinux-tilan valvontatavan ja -ajan ymmärtämisen tärkeyttä. Käytännön selityksen löydät artikkelistamme aiheesta .
SELinuxin muokkaamisen riskit Androidilla
SELinux-käytännön tai -tilan muuttamisella voi olla vakavia seurauksia:
- Turvattomuus: SELinuxin jättäminen sallivaan tilaan altistaa järjestelmän hyökkäyksille ja hyväksikäytöille. Monet haittaohjelmat ja rootkitit hyödyntävät järjestelmiä, joissa on poistettu käytöstä tai löysä SELinux.
- Yhteensopimattomuus: Väärät muutokset voivat aiheuttaa järjestelmän käynnistymisen epäonnistumisen, keskeisten palveluiden epäonnistumisen tai OTA-päivitysten virheellisen asennuksen.
- Tuen menetys: ROM-levyt tai laitteet, joissa SELinux on poistettu käytöstä, menettävät CTS (Compatibility Test Suite) -testauksen yhteensopivuuden, eivätkä ne ole oikeutettuja virallisiin sertifiointeihin tai tiettyihin päivityksiin.
- Ongelmia päivitysten jälkeen: Käytäntöjen tai merkintöjen muutokset voivat rikkoa yhteensopivuuden julkisen alustan käytännön kanssa, jolloin sovellukset lakkaavat toimimasta tai laitteisto ei tunnista niitä.
Vaiheittainen opas SELinuxin mukauttamiseen Androidilla (tekninen yleiskatsaus)
Kehittäjille tai edistyneille teknikoille, jotka haluavat muokata SELinuxia Androidilla alusta alkaen (ei vain tilan väliaikaista vaihtamista), prosessiin kuuluu:
- Kloonaa ja valmistele Android-lähdekoodipuu. Varmista, että sinulla on oikea ytimen versio ja lähdekoodit laitteellesi/valmistajallesi.
- Mukauta ja laajenna käytäntötiedostoja. Lisää tai muokkaa .te-tiedostoja, file_contexts-, property_contexts-kohteita jne. polussa /device/manufacturer/name/sepolicy.
- BoardConfig.mk-tiedoston konfigurointi. Sisältää polut uusiin käytäntötiedostoihin ja mukautettuihin konteksteihin.
- Käynnistä järjestelmä sallitussa tilassa (lisäämällä androidboot.selinux=permissive käynnistysparametreihin kehitysvaiheessa).
- Kerää hylkäyslokit dmesg:n, logcatin ja audit2allow:n käyttäminen estettyjen pääsyjen havaitsemiseen.
- Luo uusia sääntöjä ja tunnisteita ratkaista evätyn pääsyn ongelman varmistaen, että jokaisella verkkotunnuksella on vain sen tarvitsema pääsy.
- Käännä järjestelmän kuva uudelleen ja flashaa se laitteeseen.
- tarkistaa Valvontatilassa kaikki toimii eikä lokeissa ole virheitä. Säädä sääntöjä, kunnes kaikki toimii ilman tarpeettomia kiistoja.
Kaupallisissa laitteissa Monet näistä vaiheista ovat mahdollisia vain pääkäyttäjän oikeuksilla, lukitsemattomilla käynnistyslataimilla ja joskus mukautetuilla ytimillä.. Valmistajat ja suuret mukautetut ROM-projektit (LineageOS, Extended AOSP jne.) noudattavat tätä prosessia varmistaakseen laitteiden toimivuuden ja turvallisuuden.
Vinkkejä konfliktien välttämiseen ja yhteensopivuuden varmistamiseen
Kunnioita alustan ja palveluntarjoajan käytäntöjen erillisyyttä Se on välttämätöntä:
- Käytä etuliitteitä, kuten vendor_, kaikille toimittajakäytännön mukautetuille tyypeille ja määritteille.
- Älä etsi tai määritä alustatunnisteita uudelleen palveluntarjoajan käytännössä.
- Vältä kriittisten polkujen muokkaamista /vendor- tai /data/vendor-kansioiden ulkopuolella, jos se saattaa mennä päällekkäin tulevien järjestelmäpäivitysten kanssa.
- Hallitsee tiedosto- ja palvelukonteksteja erikseen kullekin osiolle varmistaen, että vastaavat tiedostot sijaitsevat oikeissa poluissa (system/etc/selinux ja vendor/etc/selinux).
- Tarkista versioiden yhteensopivuus käyttämällä yhdistämistiedostoja (tyypit yhdistetään versioituihin määritteisiin).
- Vahvista muutokset Android-lähdekoodien mukana tulevilla tarkistusapuohjelmilla ennen niiden käyttöönottoa tuotantoympäristössä.
SELinux-käytäntöjen testaus ja validointi Androidilla
On ratkaisevan tärkeää, että SELinux-käytäntöihin tehtyjen muutosten jälkeen kattava validointitestaus suoritetaan. Sitä varten:
- Käynnistä laite sallitussa tilassa tarkistaaksesi hylkäykset lukitsematta järjestelmää.
- käyttötarkoitukset audit2allow luoda sääntöjä hylkäyslokien perusteella, mutta tarkista ne manuaalisesti ennen ehdotettujen sääntöjen soveltamista: ole varovainen, ettet salli enempää kuin on tarpeen.
- Tarkista lokit varoitusten varalta palveluista, joilla ei ole määritettyä toimialuetta tai epäilyttävästä käytöstä.
- Varmista, että jokaisella uudella tiedostolla, palvelulla tai ominaisuudella on oikea tunniste eikä se korvaa alustatunnisteita.
- Kun siirryt valvontatilaan, varmista, että laite käynnistyy ja kaikki tärkeät toiminnot (puhelut, data, kamera jne.) toimivat oikein.
Mukautetuissa ROM-levyissä ja OEM-kehityksessä on toiminnallisten testien lisäksi pakollista läpäistä testit CTS y VTS Googlelta sertifioinnin ja suljettujen palvelujen käyttöoikeuden saamiseksi.
Todellisia käyttötapauksia ja esimerkkejä SELinuxin estämistä hyökkäyksistä
Yleisimpiä uhkia, joita SELinux auttaa torjumaan Androidilla, ovat:
- Haitalliset symboliset linkitTiedosto-oikeuksia muuttavat etuoikeutetut prosessit voidaan huijata symbolisten linkkien avulla; SELinuxin avulla voit rajoittaa, mitkä prosessit voivat kulkea symbolisten linkkien läpi tai muokata tiettyjä tiedostoja.
- Järjestelmätiedostojen suojausVaikka root tai daemonit, kuten netd/init/vold, voivat muokata järjestelmätiedostoja, SELinux-käytäntö voi rajoittaa pääsyn vain laillisiin prosesseihin estäen hyökkäysohjelmaa laajentamasta käyttöoikeuksia tai pääsemästä käsiksi kriittisiin tietoihin, vaikka se onnistuisi suorittamaan koodia root-käyttäjänä.
- Sovellusdatan eristäminenEdes erittäin etuoikeutetut prosessit eivät voi käyttää muiden sovellusten tietoja, jos käytäntö sen kieltää, mikä vähentää massahyökkäysten vaikutusta.
- setattr-ohjausobjekti (chmod/chown)SELinux voi rajoittaa tiedostojen määrää, joiden käyttöoikeuksia voidaan muokata, estäen sovellusta tai prosessia muuttamasta oikeuksia muita kuin ehdottoman välttämättömiä.
SELinux-käytännön vaikutus Androidin yhteensopivuuteen ja kehitykseen
SELinux-käytäntö määrittelee alustan ja toimittajan välisen suhteen perustan. Kun mukautat Androidia, On tärkeää varmistaa yhteensopivuus, erityisesti OTA-päivitysten aikana.. Android hallitsee SELinux-käytäntömuutoksia (uusia tai vanhentuneita tyyppejä, luokkamuutoksia tai käyttöoikeuksia) versioitujen attribuuttien ja automaattisten määritysten järjestelmän avulla. Tämä mahdollistaa:
- Uusia ominaisuuksia voidaan merkitä ja hallita vaikuttamatta vanhoihin laitteisiin tai olemassa olevien toimittajien käytäntöihin.
- Alustapäivitykset voivat muokata käytäntöä rikkomatta vanhempien toimittajien laitteiden toimivuutta.
- Palveluntarjoajat voivat määrittää uusia tyyppejä, prosesseja ja sääntöjä ilman päällekkäisyyksien riskiä.
- Varmista turvallisuus estämällä tunnisteen muutoksen jättämästä resurssia suojaamattomaksi tai käyttökelvottomaksi ilman tietoista puuttumista asiaan.
Erillinen kontekstinhallinta osiota kohden, kontekstitiedostojen eriytetty kääntäminen järjestelmälle ja toimittajalle sekä attribuuttien määritysjärjestelmä ovat Androidin vankan SELinux-tietoturva-arkkitehtuurin ydintä nykyään.