Android honosítás 1. rész – Az android csomagjai
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









2010. május 14., 10:35
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!
2010. május 14., 10:57
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.
2010. május 14., 15:11
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.
2010. május 14., 15:39
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.
2010. május 16., 08:46
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
2010. május 16., 15:44
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.
2010. május 16., 16:35
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
2010. május 16., 19:59
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
2010. május 17., 06:57
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.
2010. május 17., 07:13
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.
2010. május 17., 08:48
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.
2010. május 17., 08:51
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.
2010. május 17., 09:18
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.
2010. május 17., 10:38
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.
2010. május 17., 10:40
xda-developers ^
Kérnék egy admint, hogy javítsa
2010. május 18., 07:35
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.
2010. május 18., 08:31
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)
2010. május 18., 08:37
Apoth: Nekem nem tűnik úgy, hogy nagyon figyelnéd a Pulse eseményeit. (Mondjuk a “fő” Pulse fórumot a mobilarena-n?)
2010. május 18., 08:43
A “kiszivárgott” YouTube videóra gondolsz, amiben a modaco romot piszkálják?
2010. május 18., 08:49
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.
2010. május 18., 08:50
Szerintem a MoDaCo Romról beszélsz. Adj már kinket, megnézném én is.
2010. május 18., 08:55
Azt nem mondtam, hogy nem arról beszélek.
http://android.modaco.com/content/t-mobile-pulse-pulse-modaco-com/308392/15-may-r6-1-bigbearmdc-and-pauls-pulse-2-1-rom/
2010. május 18., 08:59
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.
2010. május 18., 09:08
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.
2010. május 18., 09:10
LOL, ember, de nincsen
Vezesd már le hogy ezt mostmiből logikáztad ki 
2010. május 18., 09:18
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.
2010. május 18., 09:22
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?
2010. május 18., 09:25
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.
2010. május 18., 09:33
Igen, jó esetben platformonként egy fordítás elég, kivéve az eyes telefonok alkalmazásai közötti eltérést.
2010. május 18., 09:38
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.
2010. május 18., 09:41
Igen, ha azokban már bene vannak a magyar fájlok
2010. május 18., 10:19
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.)
2010. május 18., 10:21
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”?
2010. május 18., 10:45
Hjajj…
2010. május 18., 10:47
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á.
2010. május 18., 10:49
cblalzs, ennek az a módja, hogy felveszed a kapcsolatot a fejlesztővel, nem etikus szétcincálni a dolgokat.
2010. november 11., 19:16
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!
2011. február 12., 10:32
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
2011. február 12., 11:17
Probléma megoldódott. a framework-res.apk tárolja a hiányzó dolgokat.
2012. március 1., 11:02
SZiasztok!
Nekem segítség kellene, egy HTC legend magyarosításához.
Ha valaki bármit tudna megköszönném!