Oldal: Kezdőlap / Android OS, Bemutató, Fejlesztés / Oldal: Android honosítás 1. rész – Az android csomagjai

Android honosítás 1. rész – Az android csomagjai

2010. május 14. | 40 hozzászólás | Kategória: Android OS, Bemutató, Fejlesztés

Az Android operációs rendszerek honosításának menetéről most egy háromrészes cikksorozat készül, melynek első része az android apk csomagjainak felépítését hivatott bemutatni. Lehet, hogy sokaknak kicsit száraznak fog tűnni, de azért vágjunk is bele!

Sokszor hallottam már, hogy semmi extra nincs az Androidban, hiszen ugyanúgy Java csomagokból áll, mint a sima Javás telefonokra telepíthető programok. Ez részben igaz, az Android Javára épül, viszont nem csak egyszerű Java platformról van szó, hiszen ott van mellette maga az Android platform is. Az operációs rendszer felépítése a következő:

  • Linux kernel. Ez a nagyszerű rendszermag dobog az összes Android telefon szívében. A feladata, hogy összekösse a szoftvert a hardverrel, és kezelje az egyes eszközöket, pl.: kamera, g-szenzor, gps, stb.
  • Busybox. Ez a szoftver található meg általában az embedded Linux eszközökön, pl.: routerekben, fényképezőgépekben, és mint azt példánk mutatja: telefonokban. A busybox egy kis hely- és erőforrásigényű shell alapú programgyűjtemény. Ez indítja el a telefon egyes funkcióit, mint pl. a Dalvik VM
  • Dalvik. Ez a szoftver már az Android csomag része, neki köszönhető, hogy platformfüggetlenül telepíthetjük programjainkat bármilyen Android alapú készülékre. Nem más, mint egy virtuális gép, ami magát az androidot futtatja.
  • Framework. Az Android felhasználói felülete. A későbbiekben sok szó lesz róla.
 

Innen kezd érdekesebbé válni a dolog, mert eljutottunk arra a részre ahol az egyes alkalmazások futnak. Az Android alkalmazásai apk kiterjesztésű zip csomagokban vannak tárolva. Az apk csomagok három helyen kerülnek tárolásra.

/system/framework/ – A framework egy részét is apk csomagok képzik, nevezetesen a framework-res.apk csomag. Ez nagyon fontos a rendszer számára, mivel alapvető adatokat tartalmaz a telefon felületének elrendezéséről, a felület grafikai elemeiről, az Android rendszer szöveges állományairól, az egyes ablakok/képernyők színezetéről, és még rengeteg dologról.

/system/app/ – Itt találhatóak a telefonra gyárilag feltelepített alkalmazások, mint például a galéria, a telefon, a névjegyzék, stb.

/data/app/ – Itt pedig a Marketből, vagy egyéb forrásból telepített alkalmazások kapnak helyet.

Az apk csomagok jelentik tehát mindazt, amit a kijelzőn láthatunk. A készülék minden képi, és szöveges eleme ezekben a csomagokban van meghatározva, tehát ha módosítani akarunk valamit, elég az apk-kat módosítani. Ennek két jól járható útja is van, ahol az első az, ha rendelkezésre állnak az apk-k forrásai. Ebben az esetben könnyű dolgunk van, egyszerűen elhelyezhetjük a lokalizációnkat a csomagban, és azt lefordítva remélhetőleg egy már működő apk csomagot kapunk, amit használatba is vehetünk. Az esetek többségében viszont olyan apk-k fognak a kezeink közé kerülni, amik már módosításokat tartalmazzák, vagy nem rendelkezünk a forrásával. Ez esetben jön képbe a másik út, ki kell bontanunk, és vissza kel fejtenünk a csomagot.

Ennek mibenlétét akkor láthatjuk át, ha jobban megismerjük a csomagokat. Mint azt már írtam, egyszerű zip állományokról van szó, tehát valamilyen archívum-kezelővel meg is tudjuk nyitni a csomagokat.

Az apk-knak három nagyon fontos része van: az AndroidManifest.xml fájl, az src mappa és a res mappa.

AndroidManifest.xml. Ez az apk lelke. Ebben a fájlban vannak meghatározva az activity-k, amik a program felületeit jelentik. Az apk csomagoknak rengeteg féle activityjük lehet. Lehet indítható alkalmazás, widget, esetleg valamely rendszermenübe beépülő activity, amely lehet automatikusan induló, a háttérben futó alkalmazás, stb. Jó példa erre a gallery.apk csomag, ami egyszerre tartalmazza a galériát, a fényképezőt, a videórögzítőt, és a képkeret widgetet. Az AndroidManifest.xml fájlban határozható meg az is, hogy milyen engedélyekkel rendelkezzen a szóban forgó apk. Ez az a lista, amit telepítéskor láthatunk, amikhez hozzáfér az alkalmazás a telefonban.

Src mappa. Ezt a mappát nem látjuk, csak a forrásban. Ha egy archívumkezelővel megnyitunk egy apk-t, classes.dex néven találunk benne egy fájlt. Ebbe a fájlba van belekódolva a teljes src mappa tartalma. Itt kerül tárolásra a csomag Java nyelvű utasításlistája, a programok, amit a telefon futtat, ha elindítunk egy-egy alkalmazást. Létezik mód a mappa visszafejtésére, de a lokalizációhoz nincs rá szükségünk.

Res mappa. Számunkra ez a legfontosabb része az apk-knak, itt található többek között az apk összes szövege, méghozzá nyelvenként külön-külön. A sorozat harmadik cikke fog foglalkozni a res mappa működésével, tehát most nem fogom az egyes állományokat részletesen bemutatni. Fontos megemlíteni viszont, hogy az archívumkezelővel kibontva itt sem fogunk több dolgot látni, mint a fájlok neveit és a képeket. Az apk-k rengeteg xml fájlt tartalmaznak, viszont mindet titkosítva találjuk, tehát visszafejtés nélkül nincs lehetőségünk belenézni az állományokba. A tárolt mappák jelentős része nem is látszik, kódolva tartalmazza őket a resources.arsc fájl a csomag gyökerében.

Az utolsó mondatokkal rá is tértünk az apk fájlok védelmére. Mivel a nem nyílt forrású csomagok harmadik fél szellemi értékeit (az általa írt programot, grafikákat, stb.) tartalmazzák, meg kell őket védeni a rossz szándékú felhasználástól. Ennek fényében a források nem, vagy csak részben visszafejthetőek, így nincs lehetőség a teljes forrás, vagy a forrás egyes részeinek máshol történő felhasználására. Aki kibontott egy apk-t az bizonyára felfigyelt a META-INF mappára. Itt kerül tárolásra a csomag készítőjének aláírása, mert bizony minden egyes apk fájl egy egyedi kulccsal van hitelesítve, Ez a kulcs szavatolja az apk védelmét a módosításokkal szemben. Amennyiben egy bit is megváltozik, az apk-t futtató környezet észlelni fogja, hogy érvénytelenül aláírt elemek vannak a csomagban, és visszautasítja azt, tehát az apk nem lesz működőképes. Megtehetjük azt, hogy generálunk saját kulcsot, amivel újra aláírjuk a csomagot, de az a csomag már nem a kiadó saját hitelesítését fogja hordozni, így nyilvánvalóvá válik a felhasználó előtt, hogy egy nem hivatalos, nem eredeti kiadású csomagot használ. Ezek a védelmi eljárások rányomhatnák a "FAIL" feliratú bélyeget a honosításokra, de szerencsére létezik egy lehetőség, amivel a módosított csomagokat használatba vehetjük a telefonon, amennyiben nem hivatalos romokra készítünk nem hivatalos update csomagokat.

Ahogy az egyes apk-knál, úgy a készülékek operációs rendszerét is védi egy kulcs, ennek eredményeként csak az operációs rendszer készítője által kiadott kulccsal aláírt frissítő csomagokat fogja elfogadni a recovery. Itt jön képbe a root. Akinek nem probléma a garanciavesztés, megteheti, hogy feloldja a telefonján a külső behatások ellen védő eljárásokat, rendszergazda jogokkal férhet hozzá a telefonon futó busyboxhoz, vagy más recoveryt telepíthet a készülékre, vagy valamelyik harmadik féltől származó szoftvert installálhat a gyári rom helyére. Innentől kezdve megkezdhetjük a kedvenc romunk magyarítását. Az első lépés, hogy a rom csomagjából, ami ugyancsak egy zip ki kell bontanunk az apk-kat, vissza kell fejtenünk, és lokalizálnunk őket.

A következő cikk a csomagok kibontásával, újraépítésével, és aláírásával fog foglalkozni…

Az Android honosításával kapcsolatban bővebb információk és véleménycserék a fórumban.

Szerző: Apoth

Hasonló bejegyzések

Hozzászólások követése

40 hozzászólás ehhez: “Android honosítás 1. rész – Az android csomagjai”

  1. makarie hozzászólása:

    Értékeld!  0Thumb upThumb down

    Remek cikk, sok új infót szereztem általa! Kíváncsian várom, hogy a folytatásból mi mindent tanulhatok még! Köszönöm, Apoth!

  2. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    Köszi, a következő cikkben már gyakorlat is lesz, szóval akit érdekel a dolog, az előre letöltheti az:
    Android SDK-t: http://developer.android.com/sdk/index.html
    És az APKTOOLT: http://code.google.com/p/android-apktool
    Továbbá preferálom, hogy valamilyen linux alapú oprendszeren, mondjuk ubuntun kísérletezzetek majd, bár winen is meg lehet csinálni mindent.
     
     

  3. sanyiii hozzászólása:

    Értékeld!  0Thumb upThumb down

    Nem bírom ki hogy ne kötözködjek. D
    AndroidManifest.xml: A Widget nem Activity, mint úgy a Service és a BroadcastReceiver sem.
    Src mappa: nincs belekódolva a tartalma, hanem az ebből fordított bájkód van benne. Az “src” mappában szöveges állományok vannak, a “.dex”-be ez nem kerül bele.
    Ettől függetlenűl jó a cikk, grat. hozzá. Tökéletes azok számára akik szeretnének rálátni a működéésre.

  4. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    Vártam ezt a hozzászólást Kötözködj nyugodtan, inkább javítsanak ki, mint hogy hülyeséget mondjak. Én szeretem a kritikát, az okosabbtól mindíg jó tanulni
    Igyekeztem arra figyelni, hogy egyszerű halandó is könnyen megértse a dolgok működését.

  5. cbalazs hozzászólása:

    Értékeld!  0Thumb upThumb down

    Sziasztok !

    Furcsa kérdésem lenne. Azt szeretném megkérdezni, hogy nem e tud valaki segiteni abban, hogy T-Mobile HTC G2 Touch készülékre, hogy tudom megírni a magyaritést, ill. hogy tervezik e rá. Ha arrol lenne szó még fizetnék is érte.

    Várom a esetleges válaszokat.

    cbalazs01@gmail.com

  6. Mike hozzászólása:

    Értékeld!  0Thumb upThumb down

    előző hozzá szolsáshoz csatlakozva én is kíváncsi vagyok, de jó lenne ha ide is leírnátok nem csak z email címérre. előre kösz.

  7. Román János hozzászólása:

    Értékeld!  0Thumb upThumb down

    Sziasztok!
    Ez most kicsit of f. Azt szeretném megtudni, hogy a barátnőm készülékére (htc hd2), hogy tudom felrakni az androidot, mert én ezt használom két éve (először g1 és most htc desire) és nagyon meg vagyok elégedve. Neki meg elég sok problémája van a win 6.5-tel csak a készülékbe lett szerelmes…
    Segítségeteket előre is köszönöm
    RJ

  8. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    cbalazs: Ha kész lesz mind a három rész, meg tudod csinálni magadnak a honosítást a leírtak alapján.
    Román János: Van mód winmobilon Androidot futtatni, de nem igazán működik a dolog rendesen. Nézz szét az XDA-Developers fórumán: http://forum.xda-developers.com

  9. Watt hozzászólása:

    Értékeld!  0Thumb upThumb down

    Ha a 2.1 tartalmazza a magyar nyelvet, akkor ezt most miért is? Vagy ez csak a T-Mobile-nál van?
    Tényleg érdekelne, hogy vajon sok telefon van-e, amire tudni lehet, hogy nem fog elkészülni a 2.1? Csak mert a legoccsóbb Pulse-omra is most már elhiszem, hogy belátható időn belül kijön a hivatalos 2.1.

  10. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    A 2.1 nem tartalmazza a magyar nyelvet. A Spicában gyárilag benne van a samsung jóvoltából, meg a fejlesztés alatt álló 2.1-es Modaco-ban lesz benne, ha lehet hinni a pletykáknak. Plusz még én elkezdtem 1.6-ra készíteni egy modot: http://mamt,.apoth.hu
    Tudni nem lehet, sejteni viszont igen. Például a T-Mobile G1 -re kiadott legutolsó hivatalos 
    ROM 1.6-os. Létezik rá házilag barkácsolt 2.1, ami mögött rengeteg fejlesztői munka áll, de sosem fog úgy működni, mint a gyárilag kiadott 1.6. Rengeteget kísérleteztem én is 2.1-es ROMokkal, nem használhatóak olyan jól, mint az 1.6, sajnos ezt tudomásul kell venni.

  11. Czene Balázs hozzászólása:

    Értékeld!  0Thumb upThumb down

    Sziasztok ! Lenne egy furcsa kérdésem. HTC HERO T-MOBILE G2 re várható e 2.1 rom. A másik meg a magyaritás. Ha a Samsung elkészitette a magyar nyelvet ebben az esetben a T-Mobile is nyugodtan nekiálhatna. Van akora cég mint a Samsung. Szerintem a 2.1 romot kellene leforditani. Ha lessz de már nem igazán bizok benne. Ha valaki tud valamit írjon légyszives.

  12. androidos hozzászólása:

    A legutolsó HTC-s tájékoztatás szerint júniusban várható, addig érdemes várni. Hivatalos magyar lokalizációról egyelőre nincs hír.

  13. LouiS hozzászólása:

    Értékeld!  0Thumb upThumb down

    Nem akarok ünneprontó lenni, de nagyon nem hiszek abban, hogy valaha is lesz 2.1 ROM a Hero-ra. A másik meg a magyarítás: őszintén szólva teljesen feleslegesnek tartom ezt is.  Nézzétek meg a Spica magyarítását, több benne a ferdítés, mint a fordítás. Ha nem gyári programmal használod a telefont, akkor a legtöbb esetben bukod a “magyarítást” is. Lehet még kísérletezni a MoreLocale nevű alkalmazással, de az is csak részlegesen magyarít.

  14. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    A hivatalos romot csak ígérgetik, ezzel szemben az xda-developers fórumában találhattok házilag gyártott 2.1-es romokat, az egyiket itanczos barátom már nagyban fordítja is, ha jól tudom. Ezekre a romokra ugyanaz vonatkozik, mint a G1 -es társaikra: kipróbálni jó, hosszú távon viszont nem állják meg a helyüket.

  15. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    xda-developers ^
    Kérnék egy admint, hogy javítsa

  16. Watt hozzászólása:

    Értékeld!  0Thumb upThumb down

    Ahogy írtam, nagyon úgy tűnik, hogy a Pulse-hoz a 2.1 magyarítva fog érkezni, amiből én azért azt gondolom, hogy a T-Mobile-nak már van magyarítása a 2.1-hez. Ha továbbmegyek a gondolatmenettel, ez azt jelenti, hogy ők most már minden új 2.1-es Androidos telefont kiadhatnának magyar nyelvvel. Hiba is lenne nem meglépni ezt, hiszen amíg nincs honosítva, addig az Android platform csak egy sokkal szűkebb vásárlói körnek adható el.

  17. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    Watt: Mibőlgondolod,hogy magyarítva fog érkeznia Pulse 2.1-es update-je? Az se bitos hogy lesz 2.1-es frissítés rá, mivel egy félhivatalos fórumbejegyzésben lebbent fel a hír hónapokkal ezelőtt, és azóta sem erősítették meg. Még ha a T-Mobile-nek lenne is honosítása, attól az Android main fájába az még nem kerülne be, nem jellemző hogy egy multicég hozzáférhetővé teszi a drága pénzen kiadott munkáit a riválisoknak. (lásd Samsung)

  18. Watt hozzászólása:

    Értékeld!  0Thumb upThumb down

    Apoth: Nekem nem tűnik úgy, hogy nagyon figyelnéd a Pulse eseményeit. (Mondjuk a “fő” Pulse fórumot a mobilarena-n?)

  19. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    A “kiszivárgott” YouTube videóra gondolsz, amiben a modaco romot piszkálják?

  20. Watt hozzászólása:

    Értékeld!  0Thumb upThumb down

    2 tény:
    1. Létezik bárki számára letölthető, telepíthető, működőképes, bár az újraindulások miatt valóban használhatatlan, de a Pulsra készült 2.1-es beta ROM. (Nem Pulse Mini-ről, vagy akármi másról portolt.)
    2. Van benne magyar támogatás.

  21. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    Szerintem a MoDaCo Romról beszélsz. Adj már kinket, megnézném én is.

  22. Watt hozzászólása:
  23. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    Na, de tudnod kell, hogy ez nem hivatalos frissítés, nem a Hauweitől van. Garanciavesztést okoz. Én is csinálok nem hivatalos updatet T-Mobile G1, és HTC Magic telefonokra.

  24. Watt hozzászólása:

    Értékeld!  0Thumb upThumb down

    A téma itt most az, hogy létezik valszeg T-Mobile által készített magyar nyelvű Android rendszer, amit akár beletehet az általa forgalmazott készülékekbe. Saját márkásakba mindenképp.

  25. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    LOL, ember, de nincsen Vezesd már le hogy ezt mostmiből logikáztad ki

  26. Watt hozzászólása:

    Értékeld!  0Thumb upThumb down

    A levezetésem az eddigi hozzászolásaim.
    Ha a beta szó zavar és az, hogy még nincs kiadva maga a működő rendszer, arra azt mondom, hogy attól még el van készítve a magyarítás!
    Amire ki akarok lyukadni az az, hogy a cikk ugyan tényleg nagyon hasznos és én is örültem neki, mert sokat lehet belőle tanulni, de lehet, hogy magánban nekikezdeni a magyarításnak feleleges, mert lassan megjelennek hivatalosan is a magyar Android rendszerek.

  27. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    Jó, megjelenik egy magyar lokalizációval kiadott android rendszer mondjuk htc desire-re, csodával határos módon nem odex-ben tárolt stringekkel, mint a samsungnál például(az odexet nem lehet kibontani). Hogyan teszed bele a honosítást mondjuk egy Nexus One-ba?

  28. Watt hozzászólása:

    Értékeld!  0Thumb upThumb down

    Ha jól értem, a cikk többi része erről fog szólni… Nem azt mondom, hogy nem kell semmit sem tenni, de konkrétan a fordítást szerintem nem kell majd elvégeznünk.

  29. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    Igen, jó esetben platformonként egy fordítás elég, kivéve az eyes telefonok alkalmazásai közötti eltérést.

  30. Watt hozzászólása:

    Értékeld!  0Thumb upThumb down

    Ja, és a linkelt rom ugyan odex-szelt, de a Changelog-ban ez van:
    r5
    Rebuilt and odex’d
    Amiből én arra KÖVETKEZTETEK (nem ellenőriztem), hogy az r4-ből, vagy az előttiekből simán kinyerhetőek a szövegek?
    Azt ne kérdezd, hogy honnan lehet r4-et letölteni. Szerintem a forumot átböngészve meg lehet találni.

  31. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    Igen, ha azokban már bene vannak a magyar fájlok

  32. Watt hozzászólása:

    Értékeld!  0Thumb upThumb down

    Nem “már”, hanem “még”, mert nem a MoDaCo-sok tették bele, hanem aztán valamelyik verzióból valóban inkább kiszedték, de úgy rémlik, én az r6-ot próbáltam és abban benne volt. (Még. Tehát az r4 is kell, hogy tartalmazza.)

  33. Watt hozzászólása:

    Értékeld!  0Thumb upThumb down

    Van más, tehát nem Paul és BigBear által készített verzió is, van Vanila verzió, azokból vanak asszem csak kiszedve a nyelvi pack-ok, mert ugye “minek az”?

  34. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    Hjajj…

  35. cbalazs hozzászólása:

    Értékeld!  0Thumb upThumb down

    Sziasztok nekem Htc Hero T-Mobile G2 van. Nagy utána járások után találtam egy olyan progit a marketen ami le tudja forditani magyarra a kezelö felületet. Az a baj vele, hogy sajnos még gyerekcipőben jár. Mert nem forditja le az egész kezelőfelületet. Csak egy pár dolgot. Ezt a progit kellene szétcincálni, hogy hogy csinálták meg. Mert ez olyan stilus lehet mint a sunny soft windows mobile alá.

  36. Apoth hozzászólása:

    Értékeld!  0Thumb upThumb down

    cblalzs, ennek az a módja, hogy felveszed a kapcsolatot a fejlesztővel, nem etikus szétcincálni a dolgokat.

  37. Joka hozzászólása:

    Értékeld!  0Thumb upThumb down

    sziasztok!Aban kérném valaki segítségét hogy hogyan tudok x10 minimre új androidot tenni konkrétan 2.1-t.Nagyon fontos lenne mert kez a telefon meghülyülni!Előre is köszönöm!

  38. G.L.Smith hozzászólása:

    Értékeld!  0Thumb upThumb down

    Sziasztok!
    Az lenne a problémám, hogy xda-n fejlesztik a 2.3.2-es androidot SE x8-ra.
    Bármelyik rendszer apk-t kicsomagolom hibát ír. Illetve van olyan aminél nem ír hibát, azt megpróbálom visszacsomagolni. Akkor meg ott van a hiba, és az új apk nem jön létre.
    Ötleteket várok, hogy mi lehet a gondja.
    Email/msn: frosty1986@citromail.hu

  39. G.L.Smith hozzászólása:

    Értékeld!  0Thumb upThumb down

    Probléma megoldódott. a framework-res.apk tárolja a hiányzó dolgokat.

Trackback

  1. Android honosítás 2. rész ? Az apk csomagok kezelése | Magyar Google Android  

Hozzászólás írása

Amennyiben szeretnéd, hogy a saját avatárképed megjelenjen a hozzászólásod mellett, regisztrálj a gravatar.com oldalon, majd látogass vissza!