fbpx Skip to content

Az Apple mindig úgy reklámozza az iPhone-t, hogy az a legfejlettebb mobil operációs rendszer, ami gyakorlatilag igaz is. Még az Android is kb. 1 évre van lemaradva technikailag tőle.  A rendszer a végletekig egyedivé tehető, módosítható. Lássunk most erre egy példát. Dátum a lockscreen-re majd később, azért egyszerre minden nem megy 🙂

Kedvcsinálónak, itt egy kép:

IMG_0003

A többit a tovább gomb után. 🙂

Van nekünk a /System/Library/Frameworks/ könyvtárban egy UIKit.framework. Ez az iPhone megjelenítéséért, a felhasználói felületért felelős file-okat, azzal kapcsolatos beállításokat tartalmazza.

Érdekes, hogy megint fundamentális szintű változások voltak a firmware-ben, pl. eltűnt a UIKit binary-je. Ez csak azért ad aggodalomra okot, mert ezután saurik elég nehezen fogja tudni átírni a WinterBoardot az új rendszerverziókra, nem lesz “honnan” kinéznie az artwork file-ok szerkezetét. Szerencsére, itt még nem változott a 3.0-hoz képest a szerkezet, ezért volt elég egy sima MobileSubstrate frissítés a WinterBoard működéséhez. Megint más, hogy eltűnt a firmware-ből az összes videocodec is, hogy hová “épültek be” azt nem tudom, mindenesetre én visszamásoltam a UIKit binary-t, megadva neki a futási jogokat, és a videokodekeket is, legnagyobb meglepetésemre a youtube videók VÉGRE minden probléma nélkül működtek a Safariból a visszamásolás után. Na mind1, remélem azért tudja az Apple, mit miért csinál.

Kenny és a custom keyboard layout-ok

Van nekünk egy kedves Kenny nevű fejlesztőnk, aki elég sok fajta MobileSubstrate kiegészítést alkotott meg eddig, mind nagyon hasznos (QuickScroll, iKeyEx, hogy csak a fontosabbakat említsem meg). Az iKeyEx eléggé egyszerűen használható, konfigurálható, csak egy baj van vele: eléggé kis rendszererőforrás-zabagép. Nem is a memória itt a fő baj, inkább egy általános lassulás. Persze 3GS-nél ez a probléma nem valami nagy fontosságú, majdnem elhanyagolható mértékű, de ha nem szükséges, azért ne foglaljuk le a processzorunk ilyen dolgokkal.

Az iPhoneOS-ben, gyakorlatilag amióta van UIKit.framework, lehetőség van .keyboard kiterjesztésű file-ok használatára, melyekkel tetszőleges kiosztású, elrendezésű billentyűzet hozható létre, akár nyelvenként specifikusan is, és ez egy lényegesen “gazdaságosabb” megoldás, a top szerint mindössze kb. 300 KB-unkba kerül a dolog, és akkor lehet mondjuk ilyet csinálni (a dánoktól irigyeltem meg, láttam, az ő “szifon.com”-jukon iKeyEx nélkül is megoldható, hogy külön betűként látszódjon az Å,å betűk, meg a Æ,æ. Ez ugye nekünk is jól jönne, ráadásul úgy, hogy mondjuk van egy angol meg egy magyar billentyűzetünk, az angolnak teljesen megegyezik a kiosztása a magyaréval, csak nem lesz rajta külön gombként az a néhány ékezetes betű, míg a magyarra átváltva rajta lesz. Ez elég praktikus szerintem. Mondjuk egy sms-nél én nem szoktam ékezetes betűket használni, míg egy Mailnél, féőleg, hogy landscape módban még kényelmesen el is férnek az ékezetes betűk, igen praktikus – szerintem. És mindez hogyan lehetséges – egyszerűen?

Persze, merthogy a .keyboard file-ok binárisak, az SDK-n keresztül létre tudunk hozni ilyeneket, ObjectiveC-vel, de azért ez nem valami “hűde-szimpla” dolog.

Kenny viszont létrehozott egy layout-plist-to-keyboards nevű kis programot, amit közvetlen az iPhone-ról lehet futtatni. Kell hozzá egy iKeyEx-es layout.plist, és ezt konvertálja át a teljes .keyboard filecsoporttá, ami a landscape és normál módokhoz, külön-külön az emailhez, a többi progihoz, a numerikus billentyűrészhez tartalmazza a layout.plist által megszabott billentyákiosztást. Sajnos, a fentebb említett fundamentális változások miatt, a progi csak 3.0 és 3.0.1 alatt működik, 3.1 alatt még nem, remélem Kenny átírja, mert ez egy igen hasznos dolog. Szerencsére, a régebben, a .30-án létrehozott file-ok hiba nélkül működnek a 3.1-en is. Az egész annyira egyszerű lenne:

1. letölteni a http://networkpx.googlecode.com/files/layout-plist-to-keyboards URL-ről a bináris file-t. Bemásolni T-Pottal mondjuk a /private/var/root-ba, majd a telefonunkon Terminal-ban egy szokványos

su root (alpine a jelszó)

után

cd /var/root

majd

chmod a+x layout-plist-to-keyboards

ezután T-Pottal odamásolni, ugyanúgy a /private/var/root könyvtárba a létrehozott, és konvertálásra szánt layout.plistet, és kiadni a

2. /var/root/layout-plist-to-keyboards ./layout.plist parancsot.

3. a létrehozott, elvileg 8 darab .keyboard kiterjesztésű file-t egyszerűen, T-Pottal át kell helyezni a /System/Library/Frameworks/UIKit.framework könyvtárba.

4. Ha csak egy nyelv van engedélyezve a billentyűzeteknél, akkor valamiért nem igzán működik a dolog. A Settingsben menjünk a keyboards-okhoz, és engedélyezzük az angolt is a magyar mellé. Az egész akkor működik a legkönyebben és legjobban, ha telepítettük a magyar billentyűzetet a szifon repoból, és ezután tesszük ezt.

Nálam, az eredmény ez:

Ez az angol billentyűzet kiosztás –  vagyis a “normális” szifon.com-os billentyűzet:

IMG_0002

Ez pedig a magyar – a plussz gombokkal – szerintem, főleg emailnél, nagyon jól használható, bár ezt csak úgy “kitaláltam”, hogy épp ezeket az ékezetes betűket tegyem rá, sajnos azért “korlátlanul” nem lehet kitenni őket, mert nagyon kicsik lesznek – arányosan – a billentyűk:

IMG_0003

Én ezeket raktam ki külön, mindenki eldöntheti, hogy mit szeretne, milyen sorrenddel.  Íme a leírás a layout plistekhez, nem nehéz egyáltalán. Pl: a fentebbi billentyűzetnek ez a layout.plistje:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Alphabet</key>
        <dict>
               <key>arrangement</key>
               <array>
                       <integer>11</integer>
                       <integer>11</integer>
                       <integer>8</integer>
                       <integer>0</integer>
               </array>
               <key>rowIndentation</key>
               <string>Alt</string>
               <key>texts</key>
               <array>
                       <array>
                               <string>q</string>
                               <string>w</string>
                               <string>e</string>
                               <string>r</string>
                               <string>t</string>
                               <string>y</string>
                               <string>u</string>
                               <string>i</string>
                               <string>o</string>
                               <string>p</string>
                               <string>ó</string>
                       </array>
                       <array>
                               <string>a</string>
                               <string>s</string>
                               <string>d</string>
                               <string>f</string>
                               <string>g</string>
                               <string>h</string>
                               <string>j</string>
                               <string>k</string>
                               <string>l</string>
                               <string>é</string>
                               <string>á</string>
                       </array>
                       <array>
                               <string>í</string>
                               <string>z</string>
                               <string>x</string>
                               <string>c</string>
                               <string>v</string>
                               <string>b</string>
                               <string>n</string>
                               <string>m</string>
                       </array>
               </array>
               <key>usesKeyCharges</key>
               <false/>
        </dict>
        <key>EmailAddress</key>
        <dict>
               <key>arrangement</key>
               <array>
                       <integer>11</integer>
                       <integer>11</integer>
                       <integer>8</integer>
                       <integer>3</integer>
               </array>
               <key>hasSpaceKey</key>
               <false/>
               <key>rowIndentation</key>
               <string>Alt</string>
               <key>texts</key>
               <array>
                       <string>=Alphabet</string>
                       <string>=Alphabet</string>
                       <string>=Alphabet</string>
                       <array>
                               <string> </string>
                               <string>@</string>
                               <string>.</string>
                       </array>
               </array>
        </dict>
        <key>SMSAddressing</key>
        <dict>
               <key>arrangement</key>
               <array>
                       <integer>11</integer>
                       <integer>11</integer>
                       <integer>8</integer>
                       <integer>0</integer>
               </array>
               <key>rowIndentation</key>
               <string>Alt</string>
               <key>shiftKeyEnabled</key>
               <false/>
               <key>texts</key>
               <array>
                       <string>=Alphabet</string>
                       <string>=Alphabet</string>
                       <string>=Alphabet</string>
               </array>
        </dict>
        <key>URL</key>
        <dict>
               <key>arrangement</key>
               <array>
                       <integer>11</integer>
                       <integer>11</integer>
                       <integer>8</integer>
                       <integer>3</integer>
               </array>
               <key>hasSpaceKey</key>
               <false/>
               <key>rowIndentation</key>
               <string>Alt</string>
               <key>texts</key>
               <array>
                       <string>=Alphabet</string>
                       <string>=Alphabet</string>
                       <string>=Alphabet</string>
                       <array>
                               <string>.</string>
                               <string>/</string>
                               <string>.com</string>
                       </array>
               </array>
        </dict>
</dict>
</plist>

Igazából csak logika kell a kitalálásához a dolgoknak a file-ban:

a betűk az egyes sorokat jelentik, ezek végére-vagy tetszőleges helyre <string></string> kulcsok közé magát a karaktert írhatjuk, a rendszer tudja a kicsi és a nagy betűt, azt nem kell külön megadni. Az egyes számok: a betűk számát jelölik az egyes sorokban, nyilván ez különbözik a mailnél és a normál-egyéb programoknál: a normál kiosztásnál a legutolsó <integer></integer> érték 0, a mailnél 3, ez azt jelenti, hogy ide kirakja a . / és a .com gombokat, persze ezekhez is lehet plusszt rakni, mint ahogy látszik, a file végére. Tényleg nem bonyolult, csak nézzük át a dolgokat, ha hozzá akarunk tenni egy betűt, tegyük, csak vigyázzunk a számokkal: ahány betű, annyi szerepeljen a kiosztásoknál – pl ha az enyémhez adunk még hozzá, akkor 11 helyett több/kevesebb.

Hát kb. ennyi, persze felrakom a saját file-jaimat, csak annyi a dolgunk, hogy T-Pottal bemásoljuk a /System/Library/Frameworks/UIKit.framework-be. Attól függően mit szeretnénk, tetszőlegesen törölhetjük a file-okat. Pl. ha csak az emailnél akarjuk a cuccot, akkor csak azokat a file-okat hagyjuk meg, melyek nevében benne van az Email.  A NamePhonePad nevű file-ok a Phone-ban a billentyűzetet kódolnák, ez azonban szerintem felesleges, ha egyszer számokat akarunk beütni, akkor miért is írnánk azt át… Tehát a törlés után, praktikusan 6 darab file fog maradni.

Íme egy zipben feltéve:

magyarkey

Update: mielőtt elfelejteném: nem tettem fel az ehhez használt layout.plist-et, illetve a bináris file-t is.

layout.plist

layout-plist-to-keyboards


Remélem, érthető és követhető volt a leírás, kellemes használatot, próbálgatást…

Kimaradva a JB-korán-vagy várjunk vitákból, és az effajta dolgokból, egy biztos – de mielőtt kommentek százai bizonygatnák az ellenkezőjét, ez csak egy laikus magánvéleménye, bár talán nem vagyok teljesen tudatlan iPhone-nal kapcsolatban – legalábbis szerintem, ha az Apple annyira, de annyira szeretné megakadályozni a Jailbreaket, megtehetné. De nem akarja. Az egy dolog, hogy az AppStore miatt azt kell mutatnia, hogy ellene van a crackelt programok letöltésének. Akkor mégis miért lehet kb. 1 nap alatt feltörni az aláírási rendszert? Akkor mégis, hogyan lehet néhány hét alatt találni újabb hibákat az iBootban, iBBS-ben? És akkor miért mondta maga a nagy Steve Jobs, még a 2.0 megjelenése előtt egy nyilatkozatban, hogy az Apple nem fogja végleg megakadályozni, hogy külső, általa nem engedélyezett 3rd party programok futtatása lehetővé váljék az iPhone-okon? És akkor miért is van, hogy a Dev-Team statisztikái szerint a Pwnage Tool és redsn0w seed-ek egy eléggé tekintélyes része az Apple belső IP-címjeiről jön? Az egy dolog, hogy szolgáltatóként én is elvárnám, hogy a pénzemért – mert hogy, aki még nem tudná, az exkluzív szolgáltatók minden eladott iPhone után havonta fizetnek egy bizonyos összeget az Applenek, a 2 év hűségnyilatkozat alatt – egy olyan telefont áruljak, amit nem 2 másodperc függetleníteni, feltörni, IP-telefonálásra végletekig alkalmassá tenni, ingyen smst küldeni rajta a világ bármely részére, PC-s internetezésre használni az egyébként korlátlan netcsomagot, ami a telefon mellé jár, és így olyannyira leterhelni a hálózatot, hogy a fejlesztések ellenére is az egyik legrosszabb legyen az országban (AT&T), stb, stb… Persze nem sajnálni akarom a cégeket, sőt, ellenkezőleg, rengeteg hasznot és új előfizetőt termel nekik ez a kütyü, csak arra akartam felhívni a figyelmet, hogy én is biztosan mérges lennék az AT&T elnöke helyében, ha egyszer nem erről volt eredetileg szó. És még a legújabb telefon is a megjelenése után nem sokkal függetleníthető, JB-elhető volt… Szóval szerintem persze, jelenjenek meg az új törések, JB-ek, greenp0ison – azt se tudom hol a nulla a nevében, ilyen-olyan sn0w, stb., stb. Persze, az Apple kijavítja őket. Mi meg nyálgcsorgatva és hálálkodva várjuk a Dev-Team, GeoHot, ChronicDev munkáját, hogy megtalálják az újabb rést… Úgyhogy jó JB-et, csak-csak megérkezik az a várva-várt 3.1 3GS törés.


Olvasd el a hozzászólásokat is

39 Comments

  1. Köszönjük a cikket!Gratulálok az írónak! 🙂

  2. [OFF]
    Irtam, hogy az uj iPhone-om eldobálja a hálózatot, na most beletettünk egy T-Mobilos SIM-et azt is ledobálta meg minden, de most visszatéve a vodást,csodák csodájára minden jól működik!Szerintetek merjem megtartani így?Mert 10nap gari van rá, és utána már nem adhatom visssza.

  3. Bzoolka ha erre jársz…:

    “@bzolkaa: Hát feladom…feltennéd valahova a UILCDBackground.png-t amit te használsz? Mert nekem nem lesz átlátszó, csak fehér, pedig transparent elvileg. Köszi előre is! (A slider már átlátszó, azzal nem volt gond.)”

  4. z a magyar bill fasza
    cydia csomagot belőle…
    Hama hama, ez jó dolog
    🙂
    olyan nicsn ami bemondja ki hív mint nokia n95 től felfele? 🙂

  5. ku*va jo koszi!!!! fel is raktam be is allitottam!

  6. ja egy bajom van vele hogy a y-z a full kiosztasnal angol rend szerint van 🙁

  7. @vjoe: Jaja az kéne 😀

  8. nem lehetne ezt egty cydiás csomagba?

  9. nem olyan ordongoseg a leirtak es a mellekelt fileok alapjan berakni, ne legyetek lustak 😛 nincs sultgalab, csak a siker orome 🙂

  10. Sziasztok

    valaki hozzáértő emeberke csinálhatna egy Becstelen Brigantyk os témát:)
    jó film nekem speciel tetszett:D

    am jo ez a leiras majd holnap megcsinalom de ugy kene h az osszes karakter rajta legyen marmint ekezetes meg sima:)

  11. @Crazy: holnap megcsinálom őket, barátnőm telefonján még 3.0 van, azon menni fog a progi. Ok, csinálhatok olyat is, amin minden rajta van, legalábbis nagyrésze, meg pl. ez, meg akkor visszacserélem az y-z betűket. Ha tényleg van rá igény, küldöm adminnak csomagként, szerencsére, mivel csak arról van szó, hogy felrakja a csomag a UIKit könyvtárba a dolgokat, így nagyon gyorsan lehet csomagot csinálni belőle. Egyébként annyira jó a dolog, lehet “mixelt” dolgokat csinálni, pl. landscape módban elférne az összes bill., álló módban pedig maradhatna ez. Dehát ezért a leírás, nem nehéz, és ha kész, akkor olyan billentyűzetünk lehet, amilyet csak akarunk. Az, hogy meg lehet kapcsolgatni a billentyűzetek között, szerintem már csak ráadás.

  12. @Ace: oksi, feltettem a rapidomra:
    rapidshare. com/files/282797025/UILCDBackground.png

  13. @telegdyd: Vidd gariba, veszteni nem vesztessz semmit sem…

  14. Szuper!!!

    A magyar bill.-t Cydia repoba pls 😀 Ez kb. olyan fontos mint a magyarosítás vagy még fontosabb, így aztán igazán megérdemelhetne egy “gyors” megoldást 🙂

  15. Off!
    Hello. Le vagyok sztem maradva egy picit. Nem túl régóta van iPhone-om, és most olvastam a cikk végén ezt az “ingyen sms” dolgot…. elárulná nekem valaki h ez h is van pontosan?:)

  16. @daweed: Persze, van egy progi AppStore-ban, a neve:Global.aq sms a neve, ha nincs “kedved” kifizetni, rákereshetsz, appulous-on megtalálod, de linket is adhatok hozzá:
    appscene. org/download/wkARvMIb1W5067b615c2

  17. Frankó!Jó hogy ennyire vágja valaki a témát!Lehet csak én nem figyeltem eléggé!De az mitől függ hogy landscape módban mások legyenek a betűk mint állóban?

  18. @telegdyd: Haverom első iPhone-ja csinálta ezt, és szerencsére még időben ki tudta cserélni, azaz visszakérte a pénzt, sok csinál ilyet, és nem lehet vele mit kezdeni, hol megy hol nem, de idegesítő, mert mindíg csak azt vettük észre hogy nem csörög ki a telefonja, azóta másik van neki, ami soha nem dobja el a hálózatot…

  19. Hát én nagyon nem értem ezt a procedúrát:)!!!Jó lenne cydiában !!!
    Az ilyen topáknak mint én :)))!!!Köszi!!4

  20. @bzolkaa: Háh, ez megy, nagyon szépen köszönöm. Elárulhatnád, hogyan csináltad. 🙂

  21. Grat a cikkhez bzolkaa mindig vmi újdonság 🙂
    egy kérdés Global.aq sms ezzel lehet frankón ingyé küldeni smst? :-O

  22. @bzolkaa: az fasza lenne ha össze tudnál dobni egy full magyar billt mondjuk fekvő módban egy fél magyart meg állóban::) vagy ahogy jónak látod

    Üdv

  23. @Sonik-29: jaja frankon lehet de net kapcsolat kell hozza min edge max wifi 🙂

  24. @Crazy: és van limit ilyen napi 1 vagy annyit küldök amennyit nem szégyenlek ? 😀 akkor lekapom én is

  25. @Sonik-29: sztem NO limit

  26. @Sonik-29: csak még annyi h a számot így kell beírni: +36 30 vagy +36 20 vagy +36 70 😀

  27. @Crazy: Thx akkor meglesem mit is tud 😀

  28. @Crazy: Neked melyik verzió van meg, mert nekem az 1.0.2 nem indul. (másoknak sem)
    Ha megvan a régi verzió feltöltenéd valahova?

  29. @horsepower: installoussal kell letolteni és feltelepiteni és akkor menni fog!!!

  30. @bzolkaa: de ugye ugy is megoldhato h nincs fent a telon a magyarosítás?!

  31. @Crazy: UI.: a MewSeek Pro hoz tudna valaki adni egy cracket? fontos lenne

    Köszi

  32. @bzolkaa: Köszi a segítséget. de van egy kis gondom:S feltelepítem, belépek, de abban a pillanatban ki is lép…:S mi lehet a gond?

  33. REMEK !!!
    Nagyon köszi! Nagyon tetszik 😉

  34. @bzolkaa: tudnál segíteni intelli screenben? kene crack meg valami link ami mukodik marmint nem fontos a legujabb intelli csak mukodjon!:D

    Előre is köszi

  35. Admin vagy bzolkaa megtaláltam az inteliscreent: de kene egy kis help a telepitessel kapcsolatban meg pedig az h hova masoljam a fileokat?:O

    ntellicreen 2.95.4 crack

    Instructions:
    – Install Intellishared using the command below (Download Link: MediaFire)
    Code:
    dpkg -i intellishared.3.1.1.sg1.deb
    – Install Intelliscreen using the command below (Download Link: MediaFire)
    Code:
    dpkg -i intelliscreen.2.95.4.cracked.sg1.deb
    – Respring or Reboot

  36. @Crazy: megcsinaltam:P thx xsellize majd sztem kene csinalni egy uj postot erről
    üdv

  37. Tudom nem fogtok érte szeretni, de az iPhone OS-t, hogy lehet a legfejlettebbnek nevezni? Bár nekem csak egy touch 2G-m van, én csak az jelenteném ki, hogy a legfürgébb, és legbarátibb kinézetű, és a legkönnyebben kezelhető rendszer.
    De amíg korlátozva van a bluetooth, pl: a külsö GPS használatra is csak most nyílt lehetőség de ahhoz is hack-elni kell, gyárilag nem tudja, ugyan úgy ahogy sajnos a készülék témájának a megváltoztatása sem 2 kattintás, stb, stb.

    Szép a rendszer, látványos, gyors és a legjobban kezelhető. De nem fejlett.
    Na akkor lehet megkövezni…

  38. bocsi egy kérdés hol van az a terminal a telomon?:D

  39. cydia…


Add a Comment