Gidai

Kaip sukurti pasirinktinį ROM iš „Android“ atvirojo kodo projekto

Jei esate susipažinęs su „Android“ telefono įsišaknijimu ar pasirinktinių ROM, pvz., Labai populiarios „CyanogenMod“ ar jo įpėdinės „Lineage OS“, atsisiuntimu, galbūt susimąstėte - kaip žmonės kuria šiuos ROM? Kiek tiksliai tenka dirbti kuriant pritaikytą ROM?

Šiame vadove paaiškinsite pagrindinius savo „Android“ ROM kūrimo pagrindus. Reikėtų pažymėti, kad tai yra didžiulis užsiėmimas - jei neturite jokios patirties koduodami ar kvailiodami „Linux“ terminaluose, prieš pasinerdami į šį giluminį modelį galbūt norėsite pasisemti žinių. Bet jei turite bent pagrindinę tų dalykų idėją, pabandysiu kuo paprasčiau paaiškinti dalykus, kad galėtumėte sekti paskui.

Iš esmės tai, ką mes darome, yra atsisiųsti žalias „Android“ šaltinio kodas (AOSP) ir jo modifikavimas pagal mūsų skonį. Kadangi yra tiek daug šaltinių, kuriuos galite pasirinkti skirtingiems įrenginiams, šiame vadove paprasčiausiai bus nuoroda į meistras šaltinis žinomas kaip AOSP („Android“ atvirojo kodo projektas).

Dabar AOSP yra tas, kad grynas šaltinio kodas neapima konkretaus įrenginio aparatinės įrangos nuosavybės. Kalbant paprastai, aparatinė įranga, tokia kaip jūsų kamera ir GPU, neveiks „iš dėžės“, kai kuriate su AOSP. Tiesą sakant, jūsų prietaisas net nebus paleistas be šių aparatūros dvejetainių failų.

Jei kuriate „Google“ prekės ženklu pažymėtą telefoną („Pixel“, „Nexus“ ir kt.), Aparatūros dvejetainius failus galite rasti tiesiai iš „Google“, o šis vadovas padės jums juos įsigyti ir įdėti į savo ROM. Tačiau, jei kuriate firminio telefono („Sony“, „Samsung“ ir kt.) ROM, na, palaiminkite savo širdį, nes laukiate pasivažinėjimo.

Kai kurie gamintojai turi savo atviro kodo projektus arba leidžia kūrimo įrankius būsimiems kūrėjams, o kiti gamintojai griežtai laikosi savo nuosavų kodų. Čia pateikiamas trumpas populiaresnių gamintojų atviro kodo projektų sąrašas:

„Samsung“ atvirojo kodo išleidimo centras

„Sony“ kūrėjų pasaulis

„Lenovo“ palaikymas

„Huawei“ atvirojo kodo išleidimo centras

„Motorola“ kūrėjai

Jei to nepadarysime, tęskime prielaidą, kad kuriame „Google Pixel“ įrenginiui ROM, skirtą paprasčiausiam, vanilės „Android“ patirčiai. Turėdami šias žinias po diržu galėsite savarankiškai išsišakoti ir pradėti kurti pritaikytas konkretaus gamintojo ROM versijas.

Šio vadovo reikalavimai:

  • „Android“ atvirojo kodo projektas
  • „Pixel XL“ telefonas arba „Android“ emuliatorius, skirtas „Linux“
  • 64 bitų „Linux“ operacinė sistema - „Ubuntu“ arba „Linux Mint“ yra labiausiai naujokams palankios distros, o „BBQLinux“ buvo sukurta specialiai turint omenyje „Android“ kūrėjus.
  • „Python“
  • Gaivus kompiuteris (kompiliuojant kodą reikia daug atminties ir vietos!)

Savo aplinkos kūrimas

Pradėkime nuo „Android“ emuliatoriaus nustatymo „Linux“ kompiuteryje. Nesvarbu, ar turite „Google Pixel XL“ įrenginį, bet visada saugiausia išbandyti naują ROM „Android“ emuliatoriuje prieš tai mirksi prie savo prietaiso. Mano asmeninis mėgstamiausias yra „Genymotion“, todėl aš jums padėsiu įdiegti būtent tą emuliatorių. Tačiau taip pat galite peržiūrėti šį vadovą „Geriausi„ Android “emuliatoriai“, nes dauguma jų taip pat turi suderinamumą su „Linux“.

Eikite į „Genymotion“ svetainę, užregistruokite paskyrą, patikrinkite ją el. Paštu ir atsisiųskite vykdomąjį failą į savo „Linux“ darbalaukį.

Dabar atidarykite „Linux“ terminalą ir įveskite:

Chmod + x genymotion-xxxxx.bin (pakeiskite xxxx failo pavadinimo versijos numeriu)

./genymotion-xxxxxx.bin

Paspauskite Y sukurti „Genymotion“ katalogą. Dabar įveskite terminalą:

CD genymotion && ./genymotion

Dabar jis paprašys pradėti diegimo procesą, todėl tiesiog spustelėkite „Kitas“, kol pateksite į langą Pridėti virtualius įrenginius. Parinktyje „Device Model“ pasirinkite „Pixel XL“, tada užbaikite diegimą. Jei norite, galite išbandyti virtualųjį įrenginį. Tai iš esmės bus kaip „Pixel XL“ telefono darbalaukyje.

Dabar nustatykime „Python“:

$ apt-get install python

Dabar „Linux“ kompiuteryje turime sukonfigūruoti „Java Development Kit“. Atidarykite „Linux“ terminalą ir įveskite šias komandas:

$ sudo apt-get atnaujinimas

$ sudo apt-get install openjdk-8-jdk

Dabar turėsite sukonfigūruoti „Linux“ sistemą, kad leistumėte pasiekti USB įrenginį. „Linux“ terminale paleiskite šį kodą:

Tai atsisiųs reikiamą failą 51-android.txt, kuris leis pasiekti minėtą USB įrenginį. Atidarykite .txt failą ir pakeiskite jį, kad įtrauktumėte savo „Linux“ vartotojo vardą, tada įdėkite .txt failą į šią vietą: (kaip root vartotojas). Dabar prijunkite įrenginį prie kompiuterio per USB, kad naujosios taisyklės įsigaliotų automatiškai.

Atsisiunčiamas „Android“ šaltinis

AOSP yra talpinama „Git“, todėl norėdami bendrauti su „Git“ naudosime įrankį, vadinamą „Repo“.

Pirmiausia turime nustatyti / bin aplanką jūsų namų kataloge. Į „Linux“ terminalą įveskite šias komandas:

$ mkdir ~ / bin

$ PATH = ~ / bin: $ PATH

Dabar atsisiųsime „Repo“ įrankį, todėl įveskite „Linux“ terminalą:

$ curl //storage.googleapis.com/git-repo-downloads/repo> ~ / bin / repo

$ chmod a + x ~ / bin / repo

Įdiegę „Repo“, dabar turime sukurti tuščią katalogą, kuriame bus jūsų darbo failai. Taigi įveskite tai į „Linux“ terminalą:

$ mkdir WORKING_DIRECTORY

$ cd WORKING_DIRECTORY

Dabar sukonfigūruosime „Git“ naudodami jūsų vardą ir el. Pašto adresą - naudokite reguliariai tikrinamą „Gmail“ adresą, kitaip negalėsite naudoti „Gerrit“ kodo peržiūros įrankio.

„$ git config“ - globalus vartotojo vardas. „Jūsų vardas“

$ git config –pasaulinis vartotojo el. paštas [email protected]

Dabar pasakysime „Repo“, kad jis iš „Git“ išsitrauktų naujausią pagrindinį AOSP manifestą:

$ repo init -u //android.googlesource.com/platform/manifest

Jei tai bus padaryta sėkmingai, gausite pranešimą, kad „Repo“ buvo inicijuota jūsų darbo kataloge. Taip pat rasite „.repo “ katalogas kliento kataloge. Taigi dabar atsisiųsime „Android“ šaltinio medį su:

$ repo sinchronizavimas

„Android“ šaltinio kūrimas

Čia prasideda šio vadovo pradžioje minimi aparatūros dvejetainiai failai. Eikime į AOSP tvarkyklių puslapį ir atsisiųskite „Pixel XL“ dvejetainius failus, skirtus „Android 7.1.0“ (NDE63P). Norite atsisiųsti tiekėjo vaizdą, tiek aparatūros komponentus. Jie pateikiami kaip suglaudinti archyvai, todėl ištraukite juos į savo darbalaukį ir paleiskite savaime išsiskiriantį scenarijų iš šakninio aplanko. Pasirinkite įdiegti dvejetainius failus anksčiau sukurtos WORKING_DIRECTORY šaknyje.

Dabar įveskite savo „Linux“ terminalą:

$ padaryti klobą

$ source build / envsetup.sh

Dabar mes pasirinksime tikslą, kurį norite sukurti, todėl įveskite:

$ pietūs aosp_marlin-userdebug

$ setpaths

$ make –j4

Ten mes dabar „sukūrėme“ „Android“ ROM iš šaltinio. Išbandykime jį emuliatoriuje, įvesdami terminalą:

$ emuliatorius

Taigi šiek tiek žaiskite emuliatoriuje. Kaip matote, grynai vanilinė „Android“ patirtis yra gana minimali, todėl gamintojai AOSP pritaiko savo poreikiams. Taigi tu galėjo jei norite, „flash“ šį ką tik sukurtą ROM į jūsų įrenginį, tačiau nepridėjus jokių patobulinimų, grynai vanilinė „Android“ patirtis iš tiesų būtų labai nuobodus dalykas.

Taigi, ką gamintojai paprastai darys naudodamiesi AOSP, tai šakutė, pridėkite savo nuosavų dvejetainių failų, pritaikykite vartotojo sąsają, pridėkite įkrovos logotipą ir kt. Gamintojai iš esmės tik piešia atsargų „Android“ ROM, taigi tai bus ir kitas jūsų tikslas .

Sekite naujienas, nes antroji šio vadovo dalis apims jūsų ROM šriftų, temų ir įkrovos animacijos pridėjimą!

$config[zx-auto] not found$config[zx-overlay] not found