Hacking Android I


Tak jsem si slibil, že si zkusím pohrát s Androidem a ideálně jej dostanu do ps3. To samozřejmě až v nějaké další části, nejprve se zkouším dostat do obrazu a rozjet jej alespoň na x86 platformu. Nějaký částečný success už jsem utrpěl, ovšem jsou tu i  "drobnosti", které mi zatím dělají problémy. Každopádně to zkusím postupem času shrnovat v blogpostech.

Vyšel jsem z verze pro Asus eee, protože si myslím, že přece jenom x86 je x86 a poupravit existující konfiguraci jádra, na kterém Android bez problémů běhá, bude jednodušší, než tvořit config na zelené louce. Takže jsem si vytvořil ve VirtualBoxu novou mašinu a nainstaloval Kubuntu (2.6.24-22-generic). Androuš má krásně popsaný postup, jak stáhnout zdroje z repozitáře pomocí GITu.Protože se netahá "master" větev, je nutné spustit inicializace repozitáře s parametrem a ručně vytvořit lokální manifest.

1. $ mkdir ~/mydroid

2. $ cd mydroid

3. $ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake

4. $ repo sync

cat > ./.repo/local_manifest.xml << _EOF
<manifest>
      <project name="platform/vendor/asus/eee_701" path="vendor/asus/eee_701"/>
</manifest>
_EOF

5. $ repo sync

V tomto okamžiku by měly být staženy kompletí zdrojové kódy (resp. ty jsou staženy už  krokem čtyři, krok pět stáhne patch pro eee verzi) , v mém případě s jádrem 2.6.27 (podadresář kernel) a moduly, init skripty a konfigurací jádra pro Asus eee (podadresář vendor/asus/eee_701). Pak je možné už jednoduše kompilovat pomocí make, po specifikaci parametrů pomocí proměnných.

6. $ TARGET_ARCH=x86 TARGET_PRODUCT=eee_701  DISABLE_DEXPREOPT=true make

7. $ TARGET_ARCH=x86 TARGET_PRODUCT=eee_701  DISABLE_DEXPREOPT=true make bootimage userdataimage

8. $ TARGET_ARCH=x86 TARGET_PRODUCT=eee_701  DISABLE_DEXPREOPT=true make installer_img

 Buildovací proces vygeneruje jednotlivé "images" v podadresáři out/target/product/eee_701, installer_img potom vygeneruje installer.img, kde jsou zabaleny všechny tyto obrazy a je možné jej nabootovat (např. pomocí qemu), ovšem nabootuje pouze z boot partition (boot.img) a nepřipojí kořenový systém, takže naběhne pouze sh, který ovšem vůbec nic neumí.

9. $ qemu -hda installer.img

Image Hosted by ImageShack.us

Image Hosted by ImageShack.us

Teď se snažím o vytvoření obrazu, který mi kompletně nabootuje Androuše, ale o tom příště!


3 komentáře: “Hacking Android I”

  1. Diky za odezvu a link, mrknu na to. Jen spis tedka vice bojuju s casem, nez s Androusem, snad bude po vikendu lepe 😉

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *