Ebben a részben finomhangolás lesz, azaz ne várjon senki drasztikus szabad memória-méret növekedést, vagy fénysebességű processzort, de azért, ha szépen mindegyik lépést megcsináljuk, érezhető gyorsulás lesz, ezt megígérhetem.
telo
Ha valaki elhatározza, hogy megcsinálja a módosításokat, akkor nézzen rá a régebbi cikkre is a Daemonokkal kapcsolatban, megéri megcsinálni az abban leírtakat, a kettőnek együtt van nagy hatása! (és mivel abban a cikkben a plist módosítások alapjai is le volt írva, ezért nem fogom mégegyszer részletezni azt is, mindent, ami kell, elméleti ismeret, abban a cikkben benne van)
Lássuk:
1. Kapcsoljuk ki teljesen a loggolást, és tegyük még gyorsabbá a bootot:
-van nekünk a /System/Library/SystemConfiguration/Logger.bundle/ könyvtárban egy plistünk, írjuk át az Info.plistet:
(egyébként ez irányítja a loggolást a telón)
az összes true-t írjuk át false-ra, így a rendszerloggolás nagy részét kikapcsoljuk:
<key>Enabled</key>
<false/>
<key>LOG_ALL</key>
<false/>
<key>LOG_NETWORK_KERNEL_EVENTS</key>
<false/>
<key>LOG_NOTIFY_DNS_CONFIGURATION</key>
<false/>
<key>LOG_NOTIFY_NETWORK_CHANGE</key>
<false/>
<key>LOG_SC_NETWORKCHANGE</key>
<false/>
<key>LOG_SC_PRIMARYSERVICE</key>
<false/>
<key>LOG_SC_REACHABILITY</key>
<false/>
<key>LOG_SYSTEM_POWER_EVENTS</key>
<false/>
- töröljük ki a must have daemonokat a daemonos cikk alapján
-a /System/Library/LaunchDaemons könyvtárban módosítsuk a következő file-okat:
a, com.apple.fairplayd.plist:
a végén a file-nak ezt látjuk:
<key>StandardOutPath</key>
<string>/var/logs/fairplayd.log</string>
Szépen töröljük ki ezt a bejegyzést, felesleges a fairplayd-nek logolnia.
Ugyanebben a file-ban átírhatjuk ezt:
<key>KeepAlive</key>
<true/>
erre:
<key>OnDemand</key>
<true/>
b, com.apple.gmmd.plist:
az elején ez áll:
<key>Debug</key>
<true/>
írjuk át:
<key>Debug</key>
<false/>
így nem fog állandóan Debugolni a rendszer
Ha akarjuk, nyugodtan ki is törölhetjük a file-t, az előző cikkben talán még a fontosak között szerepel a daemon, azonban minden működőképes nélküle is, és nem is lassul be a rendszer a törlése után.
c, com.itunesstored.plist:
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
írjuk át:
<key>OnDemand</key>
<dict>
<key>SuccessfulExit</key>
<false/>
és:
a benne lévő szolgáltatásoknál nyugodtan kikapcsolhatjuk a ResetAtClose-t, felesleges, hogy respring-kor mindig frissítgesse a notification-öket (azaz az AppStore-on a badge-et, hogy hány frissítés van):
<key>com.apple.iTunesStore.daemon</key>
<dict>
<key>ResetAtClose</key>
<true/>
</dict>
<key>com.apple.iTunesStore.daemon-notifications</key>
<dict>
<key>ResetAtClose</key>
<true/>
</dict>
<key>com.apple.iTunesStore.daemon.notifications.public</key>
<dict>
<key>ResetAtClose</key>
<true/>
</dict>
<key>com.apple.iTunesStore.daemon.public</key>
<dict>
<key>ResetAtClose</key>
<true/>
ezt írjuk át erre:
<key>com.apple.iTunesStore.daemon</key>
<dict>
<key>ResetAtClose</key>
<false/>
</dict>
<key>com.apple.iTunesStore.daemon-notifications</key>
<dict>
<key>ResetAtClose</key>
<false/>
</dict>
<key>com.apple.iTunesStore.daemon.notifications.public</key>
<dict>
<key>ResetAtClose</key>
<false/>
</dict>
<key>com.apple.iTunesStore.daemon.public</key>
<dict>
<key>ResetAtClose</key>
<false/>
d, com.apple.mDNSResponder.plist:
eredeti:
<key>OnDemand</key>
<false/>
írjuk át:
<key>OnDemand</key>
<true/>
így addig nem indul el, amíg nem netezünk.
e, com.apple.mediaserverd.plist:
<key>KeepAlive</key>
<true/>
ezt a bejegyzést töröljük a file-ból.
Alatta, a file végén van egy ilyen:
<key>OnDemand</key>
<false/>
írjuk át:
<key>OnDemand</key>
<true/>
Ha nem akarjuk a videófelvételt engedélyezni a rendszernek a 3G-n (tudjátok, az M68AP.plist módosításával), akkor töröljük a MachServices részből ezt:
<key>com.apple.coremedia.recorder</key>
<dict>
<key>ResetAtClose</key>
<true/>
</dict>
elvileg máshoz nem kell a recorder funkciója a mediaserverdnek.
2. kicsit gyakrabban frissíthetjük a GPS jelet:
igazából a programokon, amik eddig is néha elvesztették a jelet, vagy késett a jel (lásd Sygic, iDA) csak kicsit segít, de én úgy vettem észre, hogy talán stabilabb lett a jel a módosítás és reboot után:
/System/Library/LaunchDaemons/com.apple.locationd.plist
(a locationd a GPS chip daemonja)
<key>ThrottleInterval</key>
<integer>3</integer>
ezt a 3-at átírhatjuk 2-re vagy 1-re, nálam 1-en van, ha ki van kapcsolva a GPS akkor nem merít jobban, ha be van kapcsolva, akkor sem vettem észre gyorsabb merülést.
A változó azt állítja, hogy hány másodpercenként frissítse be a rendszer a daemon állapotát
3. felesleges SpringBoard szolgáltatások:
/System/Library/LaunchDaemons/com.apple.SpringBoard.plist
eredeti:
<key>KeepAlive</key>
<true/>
írjuk át:
<key>OnDemand</key>
<true/>
és
MachServices részben:
<key>com.apple.springboard.UIKit.migserver</key>
<dict>
<key>ResetAtClose</key>
<true/>
</dict>
töröljük ki a bejegyzést nyugodtan, elvileg a SIM kártyáról történő sms és névjegyzék átmásoláshoz kell, felesleges
ha nem használjuk a push szolgáltatást (nagyon kérem mindenki nézze meg mi az a push, aki nem tudja, a daemonos cikkben benne van, mert nem a mailes push-t jelenti), nyugodtan kitörölhetjük ezt is:
<key>com.apple.springboard.remotenotifications</key>
<dict>
<key>ResetAtClose</key>
<true/>
</dict>
Elvileg az alábbi bejegyzés a Calendar Render Server szolgáltatás támogatása lenne a SpriongBoard részéről, azonban én a törlése után semmiféle funkcióváltozást nem vettem észre, ha valami nem működik, írjuk bele vissza:
<key>com.apple.CARenderServer</key>
<dict>
<key>ResetAtClose</key>
<true/>
</dict>
4. lopjuk a 3GS-től:
merthogy, ha megnézzük a 3GS /System/Library/CoreServices/ könyvtárában az N88AP.plist-et (ami a 3GS plussz funkciót tartalmazza), akkor láthatjuk, hogy van két érdekes bejegyzés, ami nem hardverfüggő. Ezeket beleírhatjuk a saját plistjeinkbe, iPhone EDGE-nél az M68AP.plistbe, iphone 3G-nél az N82AP.plistbe. Olyan nagy változást nem vettem észre, de talán egy picit tényleg gyorsabb lenne a képek megjelenítése, és a SpringBoardon a lapozás:
<key>launch-applications-while-animating</key>
<true/>
<key>load-thumbnails-while-scrolling</key>
<true/>
értelemszerűen, az egyik bejegyzés a képek lapozásánál már elkezdi tölteni a következő képet, így simábbnak, gyorsabbnak tűnik a megjelenítés, a másik pedig a programindítás animációjának futtatása közben is tölti a progit.
5. WinterBoard
azért elöljáróban el kell, hogy mondjam, hogy gyakorlatilag az ikonok kicserélgetésén kívül minden belassítja a rendszert, így, ha nem cserélgetjük egyfolytában a témákat, hanem egy, jól megszokott témát használunk, akkor érdemes T-Pottal vagy SSH-val kicserélgetni pl. az alkalmazások képeit, hogy legalább azokat ne a WinterBoard töltse be. a LockScreen képeket érdemes bemásolni a a /private/var/stash-ben lévő Wallpaper.blabla (blabla változó karaktersort jelent) könyvtárba, és a Settingsben beállítani a LockScreen Wallpapert. Ha nem muszáj, mindenképpen nagyon egyszerű témákat használjunk, ne komplexeket (értsd: Wallpaper.html vagy LockScreen.html és egyéb html widgetek (SpringBoardon egyéni óra, stb), javascriptek nagyon nagyon belassítják a SpringBoardot, és eszik az akksit is. Dokkot, buborékokat, StatusBart is ki tudjuk kézzel cserélni, felesleges a témában lennie.
-a WinterBoard témákban gyakran van egy UIImages könyvtár. Ebben legtöbbször csak a záróképernyőn lévő óra mögötti sötét sáv eltüntetésére szolgáló kép van, ami egy átlátszó png. A WinterBoard ilyenkor automatikusan betölti a memóriába az UIImages modult, ami kb 0,6 MB-nyi, és lassabb működést is eredményez (persze itt mondjuk tizedmásodpercekre kell gondolni). Mindezt ezért a kis módosításért A témázgassunk cikkben leírtam, hogyan lehet módosítani az artwork file-okat, amikben az UIImage-ek vannak. Csináljuk meg kézzel a módosítást, ha szükségünk van rá, és kész, ezután:
íme, ha nincsenek UIImage-ek, vagy nekünk nincs a módosításukra szükségünk, akkor kapcsoljuk ki a betöltését a modulnak a WinterBoardban:
írjuk át (legjobb iFile-lal, mert binary formátumban hagyja a plisteket):
/Library/MobileSubstrate/DynamicLibraries/ könyvtárban a WinterBoard.plistet:
<dict>
<key>Bundles</key>
<array>
<string>com.apple.springboard</string>
</array>
</dict>
ezzel azt érjük el, hogy a WinterBoard nem a UIKit-be, hanem csak a SpringBoard-ba töltődik be. (a UIKit rendszerszintű, a SpringBoard meg csak a SpringBoard)
a módosítás után elvileg nem fognak az egyes alkalmazásokhoz készített külön képek se betöltődni, de próbáljuk ki, ha a témánk nem valami sok ilyet tartalmaz, akkor nem fogunk nagy változást észrevenni. A módosítással kicsit kevesebb memóriát fogyaszt a WinterBoard.
Van egy WinterBoard Lite is, erről is írtam már, David Ashman csinálta, gyakorlatilag annyi, hogy kivette a WinterBoard.dylib-jéből a UIKit modult, úgy ahogy van. Ezzel persze sokkal-sokkal gyorsabb működést és kevesebb memóriafogyasztást ért el, de Saurik kérésére a Cydiából még aznap törölte a csomagot Ashman. Szerencsére, azért a dylib-et fent hagyta az oldalán:
david.ashman.com/WinterBoard.dylib
letöltés után, T-Pottal töröljük ki a /Library/MobileSubstrate/DynamicLibraries/
könyvtárból a WinterBoard.dylib-et (mert ez csak egy symlink a file-hoz, ami a Applicationben van a WinterBoard.app-ben), vagy iFile-t is használhatunk, ez esetben a könyvtárban menjünk rá a file mellett lévő kis fülre, és feljönnek a tulajdonságai, itt látni fogjuk, hogy a file típusa symlink, és a target: /Applications/WinterBoard.app/WinterBoard.dylib, ide tappoljunk be ebbe a mezőbe, és töröljük az egészet, ha leokkézuk a változást, akkor a symlink automatikusan eltűnik, törlődik, de egyszerűbb a dolog T-Pottal)
Szóval, ha leszedtük a linkről a file-t, akkor T-Pottal felmásolhatjuk, majd azonnal állítsuk át a jogait iFile-lal 755-re, vagy WinSCP-vel egy lépésben megtehetjük a kettőt. Respring, és láthatjuk a változásokat.
Ha lefagyna a SpringBoard és Safemode restartol, próbáljuk meg mégegyszer a respring-et, ha ekkor is, akkor nagy valószínűséggel elrontottunk valamit a jogoknál.
- Ha nem akarjuk elveszíteni a témánk egyetlen kis darabját sem, akkor is megéri törölni a symlinket, és kimásolni az eredeti file-t a /private/var/stash/Applications/WinterBoard.app-ből, vigyázzunk, ha T-Pottal csináljuk, akkor jogokat ne felejtsünk utána állítani.
6. még mindig WinterBoard, csak más vonatkozásban:
A WinterBoard feltelepülés után aranyosan hozzáfűzi a saját igényeit a notifyd daemon beállításait tartalmazó /private/etc/notify.conf file-hoz.
A notifyd végzi a rendszer egyes komponensei között a változásokról való értesítést. Jelen esetben ezt fűzi hozzá a WinterBoard a filehoz:
reserve com.saurik.winterboard. 0 0 rwr-r-
monitor com.saurik.winterboard.lockbackground /var/mobile/Library/LockBackground.jpg
ezzel azt éri el, hogy a rendszer automatikusan értesíti a WinterBoard-ot, ha változna a LockScreen háttérkép. Hogy minek, azt nem tudom, ígyis-úgyis respring kell új témánál, ha meg a Settingsben állítjuk át a hátteret, és nincs a témánkban külön ilyen kép, akkor meg teljesen felesleges, hogy külön értesytse a WinterBoard-ot a rendszer erről az eseményről. Természetesen, a dolognak az az értelme, hogyha a beállított témánk is tartalmaz LockScreen wallpapert, és megunnánk (LockBackground.jpg), és a Settingsben a telón lévő Wallpaperekből, vagy a képekből állítunk be egyet, akkor egy esetleges respring után a WinterBoard ne töltse be újra a témából a képet, és változtassa vissza. Nem hiszem, hogy erre a funkcionalitásra olyan nagy szükség lenne, az említett file-ból törölhető a bejegyzés, és így a notifyd kevesebb memóriát fog enni.
7. Symlinkek
A symlinkek használata nagyon általános a UNIX-alapú rendszerekben, az iPhone felmemóriája is egy sajátos HFS filerendszert tartalmaz, ami tudja kezelni a symlinkeket. Azonban, alapvetően, ha fizikailag is ott az adott file, ahol lennie kellene, és nem kell a rendszernek ugornia egy másik helyre, akkor gyorsabb a betöltés. A MobileSubstrate /Library/MobileSubstrate/ könyvtárában lévő MobileSubstrate.dylib is csak egy symlink, ami /usr/lib/ könyvtárban lévő libsubstrate.dylib-re mutat.
A dolgot legjobb WinSCP-vel elintézni, ugyanis a symlink törlése után a progik a respringig ki fognak lépegetni a telón: Töröljük a symlinket, majd WinSCP-vel másoljuk át a /usr/lib/libsubstrate.dylib-et a /Library/MobileSubstrate/-be (de ne töröljük az eredeti helyről se a file-t, (mert saurik a WinterBoardnak azt adta meg, hogy a gyorsabb működés érdekében eleve ne a symlinket használja, mint a többi mezei MobileSubstrate kiterjesztés), majd másolás után nevezzük át MobileSubstrate.dylib-re, és azért ellenőrizzük le, hogy a jogai 775 vagy 755 legyen a file-nak. Ezután respring. Ha minden működik, elindulnak a progik, akkor reboot.
Ha valami elcsesződik, nem akar bootolni a SpringBoard, akkor az azt jelenti, hogy valamit rosszul csináltunk, ez esetben rádugni a telót a gépre, T-Pottal el tudjuk érni a filerendszert, LaunchDaemonok közül a SpringBoard plistjét törölni, és visszamásolni az eredeti plistet (vagy átmozgatni a gépre a plistet, kitörölni belőle a MobileSubstrate bejegyzését, és visszamozgatni)
-symlinket használ egy csomó könyvtár is JB után a /Library/-ból, hogy minek, az megint jó kérdés. Nem írom le bővebben, a fentebb leírt mechanizmus alapján iFile-lal vagy WinSCP-vel, szépen minden könyvtárt át lehet mozgatni az eredeti helyére, iFile-lal pedig meg lehet nézni, hogy a symlinkek (kék az iFileban) hová mutatnak, és honnan kell átmozgatni a symlink törlése után a dolgokat. A jogok meghagyására vigyázzunk!
(A Themes könyvtár is symlink, eredeti helye a /Libraryban lenne, hogy ne foglaljon nagy méretet a rendszerpartícióból, ezért tette át saurik a /var/stash/Themes helyre, ha nem nagy a könyvtárunk, akkor nyugodtan tegyük át.)
Két symlinket ne piszkáljunk a /Library-ból: a Ringtones-ot, és a Wallpaper könyvtárakat, azokat a Cydia nagyon háklisan őrzi, hogy mindenképpen a /private/var/stash/ könyvtárban legyenek fizikailag.
8. Felesleges dolgok törlése:
- Nyelvek: az iPhone-ban 30 nyelv van beépítve, ha magyarosítás fent van, akkor úgyis csak arra, és az eredeti angol file-okra van szükség, ha angolul használjuk a telót, akkor minden más nyelvet törölhetünk a teljes rendszerből!
A nyelvek a különböző alkalmazások és rendszerkönyvtárakban a .lpoj kiterjesztésű könyvtárakban vannak.
Az English.lproj és en.lproj könyvtárak egyaránt az eredeti angol file-okat tartalmazzák, ne töröljük őket, változó, hogy egy adott helyen English.proj vagy en.lproj-t használ a rendszer.
Hogy ne kelljen kézzel törölgetni a könyvtárakat, főleg hogy nagyon sok könyvtárról van szó, és a kézzel kijelölésnek (Total Commanderben: *.lproj-t adunk meg a csoportos kijelölésnél) az is veszélye, hogy valamelyik helyen elfelejtjük az angol file-ok kijelölését megszüntetni, és azokat is kitöröljük.
Ezért íme néhány parancs, ami kitörli nekünk az összes nyelvet a telóról, mindenhonnan, kivéve a magyart és az angolt.
(SSH, putty, vagy Terminal a mobilon, su root, alpine, és adjuk ki őket:)
find / -name ar.lproj | xargs rm -Rf
find / -name cs.lproj | xargs rm -Rf
find / -name da.lproj | xargs rm -Rf
find / -name de.lproj | xargs rm -Rf
find / -name Dutch.lproj | xargs rm -Rf
find / -name el.lproj | xargs rm -Rf
find / -name es.lproj | xargs rm -Rf
find / -name fi.lproj | xargs rm -Rf
find / -name fr.lproj | xargs rm -Rf
find / -name French.lproj | xargs rm -Rf
find / -name German.lproj | xargs rm -Rf
find / -name he.lproj | xargs rm -Rf
find / -name hr.lproj | xargs rm -Rf
find / -name id.lproj | xargs rm -Rf
find / -name it.lproj | xargs rm -Rf
find / -name Italian.lproj | xargs rm -Rf
find / -name Japanese.lproj | xargs rm -Rf
find / -name ko.lproj | xargs rm -Rf
find / -name ms.lproj | xargs rm -Rf
find / -name nl.lproj | xargs rm -Rf
find / -name no.lproj | xargs rm -Rf
find / -name pl.lproj | xargs rm -Rf
find / -name pt_PT.lproj | xargs rm -Rf
find / -name pt.lproj | xargs rm -Rf
find / -name ro.lproj | xargs rm -Rf
find / -name ru.lproj | xargs rm -Rf
find / -name sk.lproj | xargs rm -Rf
find / -name Spanish.lproj | xargs rm -Rf
find / -name sv.lproj | xargs rm -Rf
find / -name th.lproj | xargs rm -Rf
find / -name tr.lproj | xargs rm -Rf
find / -name uk.lproj | xargs rm -Rf
find / -name zh_CN.lproj | xargs rm -Rf
find / -name zh_TW.lproj | xargs rm -Rf
Ha nem akarjuk sorban kiadogatni őket (már pedig ki szeretne ilyet tenni) íme egy scriptként is megcsinálva. Töltsük le a file-t, másoljuk mondjuk T-Pottal a /preivate/var/tmp/ könyvtárba, WinSCP-ben vagy iFile-ban adjunk neki 775 jogot, majd Puttyban vagy a telón a Terminalban adjuk ki ezt a parancsot:
su root (alpine a jelszó)
cd /tmp
./langdel.sh
ÉS várjunk, kb 5-10 perc mire befejezi a műveletet, és visszakapjuk a parancssort.
íme a file: langdel.sh
-felesleges dolog a /System/Library/TextInput könyvtár nagy része, hacsak nem szeretnénk használni angolul vagy magyarul a prediktív szövegbevitelt (akkor nyilván hagyjuk meg az adott nyelvek könyvtárát) akkor nyugodtan törölhetjük az egész könyvtárat, amivel rengeteg helyet szabadítunk fel.
-Az emoticonok a /System/Library/PrivareFrameworks/WebCore.framework-ben vannak, igazából törölhetőek, de néhány progi, ami emoticont használ (pl. biteSMS) utána nem tudja megjeleníteni őket
-a/System/Library/Fonts/ könyvtárban vannak a betűtípusok
Ugyan sokan ajánlják, de ne töröljünk semmit, mert utána ha egy weboldalban egy kanyi kínai vagy japán karakter is van, akkor kilép a Safari
Viszont helyezzük át a kömyvtárat a rendszermeghajtóról, így gyorsabbá téve picit a teló működését:
Terminalban:
su root
mv /System/Library/Fonts /var/ && ln -s /var/Fonts /System/Library/
várjunk, mert a könyvtár kb 150MB, így egy ideig eltart a dolog.
-töröljük a felesleges programokat a /private/var/stash/Applications-ből:
felesleges Mo-on, hanem nem USA accountunk és gift cardunk van:
MobileStore.app
ezenkívül:
FieldTest: kiírja dB-ben a jelerősséget
Web.app: a Webapp-ekhez kellene, ha kitesszük őket ikonban elvileg, de enélkül is működik a dolog
DemoApp.app: felesleg
MobileAddressBook.app: felesleges külön is, a törlés után a Phone ugyanúgy eléri a Contactsokat.
Stocks.app: ha nem használjuk, töröljük.
Mivel kézzel is át lehet írni a /private/var/mobile/Library/Preferences/ könyvtárban lévő beállítási file-okat, ezért én alapvetően törölni szoktam azokat a programokat, melyeknek semmi más funkciója sincs, csak hogy az adott MobileSubstrate kiterjesztést lehessen vele állítgatni, ilyen pl.:
WinterBoard.app: vigyázat, másoljuk át a symlink helyére a dylibet!!!!
Backgrounder.app
egy csomó RockYourPhone cuccnál is csak erre szolgál az alkalmazás, pl.: IntelliDial.app
Mivel én mxtube-ot használok, és nem is tetszett ez a YourTube-os kiterjesztés a gyári progi mellé, és van iMobileCinama telepítve, ami meg magából a Safariból játssza le a videót, ezért én törölni szoktam a YouTube.app-et is.
Még valami: más progikkal nem próbáltam, de biteSMS-el tuti működik:
ha a biteSMS-nél be van állítva, hogy Default SMSApp, akkor nyugodtan törölni lehet a MobileSMS.app-et is.
-még törölhető a MobileSafari.app-ből a csomó felesleges StaticBookmark file,ez felelős azért, hogy a Safariban alapból benne legyen a Google, Apple, Yahoo linkje.
pl.:
StaticBookmarks-en_JM.plist
egyedül a
StaticBookmarks-hu_HU.plist-et hagyjuk meg, bár igazából az is felesleges.
-törölhető a /System/Library/Frameworks/UIKit.framework/
könyvtárban lévő Keyboard-Emoji.artwork file, hacsak nem akarjuk az Emoji billentyűzetet is használni.
illetve ugyanezen könyvtárban a különböző keyboard file-ok:
pl. Keyboard-bg.plist
maradjon meg a Keyboard-Default.plist, a magyar, meg persze az angolok (en, en_US,enGB), meg persze, ha valamilyen nyelvű billentyűzetet még szoktunk használni, mert mondjuk szoktunk németül mailt írni, akkor azokat hagyjuk meg, többi mehet a süllyesztőbe
-ugyanebben a fentebbi könyvtárban, annak a DateFormats alkönyvtárában töröljünk mindent,kivéve persze a magyart (hu.plist)
-a /System/Library/Audio könyvtárban vannak a rendszerhangok, én mivel ez az egyetlen amit el tudok viselni a Glass sms hangon kívül a többit törölni szoktam a sorszámnak megfelelően, a Settingsben a Glass a harmadik hang, ezért a könyvtárban a neve: sms-received3.caf. Egyébként mi magunk is tudunk csinálni ilyen hangokat, Windowson QuickTimePro-val vagy a legegyszerűbben egy mezei konverterrel, pl Nero-ban is van, vagy JetAudioval átkonvertálunk egy file-t mp3-ból vagy más formátumból, esetleg wav-ból aiff-á és átírjuk TotalCommanderben a kiterjesztést aif-ról caf-vá, átnevezzük pl. sms-received6.caf-ra, bemásoljuk ebbe a könyvtárba T-Pottal, felülírjuk az eredetit, és innen a hatodik hang alatt az általunk kreált hang fog megszólalni.
-Ebben az Audio könyvtárban találjuk a szörnyen idegesítő bipbip hangot is, amit mindig kiad a teló, ha rádugjuk a számítógépre, ha fel van hangosítva, ha le van halkítva, akkor pedig emiatt vibrál. Én ezt nagyon idegesítőnek tartom, ha kitöröljük beep-beep.caf-ot akkor megoldódik a probléma.
-alapvetően, minél kevesebb file-t kell a bootkor becachelnie a rendszernek, annál gyorsabb lesz a működése, most a Ringtones és Wallpaper könyvtárra gondolok:
én mindig azt szoktam csinálni, hogy az általam kedvelt LockScreen háttereket beteszem iTunesba, hogy szinkronizálja fel a telóra őket, és a Wallpaperből mindent kitörlök (a könyvtár teljesen üresen marad, magát a könyvtárat nem kell törölni), ugyanígy a Rintonesból is a sajátokat iTunes-sal szinkronizáltatom fel, és a beépített Ringtones könyvtárból mindent törlök. Így gyorsabb lesz kicsit a működés, aminek főként az az oka, hogy az iTunes a képeket betömöríti, és egy sajátos szerkezetű file-ba tölti az egészet, amit a rendszer nem kell, hogy külön cacheljen.
-nagyon buta dolog, de sajnos teljesen igaz: az iTunes-os, AppStore-os progik mindig külön UDID-os könyvtárba kerülnek, ez az a hosszú kód, ami alatt találjuk az egyes progikat, és az iTunes vagy ha az AppStoreból töltöttünk a telón le valamit, akkor az itunesstored és az installd daemonok beleírják az adatait ennek a UDID könyvtárnak, illetve magának a proginak egy adatbázisfileba.
Természetesen, és sajnálatosan, minél nagyobb az adatbázis mérete azaz minél több progit rakunk a telóra, annál lassabb lesz a működése.
Tehát, ami nem kell, inkább töröljük. Mivel bármikor hozzá tudunk férni mind AppStore-on, mind Installouson keresztül a progikhoz, ezért nem hiszem, hogy annyira akut eset történhessen, hogy egy egyébként ritkán használt progira, pl rajzoló progik, vagy FaceMelter azonnal és sürgősen szükségünk legyen
-Cydiából a felrakott progik főleg a MobileSubstrate-os kiterjesztéseken keresztül lassítják a telót, ebből is pl. IntelliScreen az első helyen (jó, tudom, tudom, de a RockYourPhone RockExtensions-ja mivel saurik nyílt forráskódúvá tette még a legelején a MobileSubstrate-ot totálisan ugyanaz, mint a MobileSubstrate), iRealSMS se a legjobb biteSMS sokkal kevésbé erőforrásigényes, Loggolóprogik se túlságosan jók, UIFaker, stb. Mivel pl. UIFakerre, vagy VoIPOver3G/Tricker3G/3GUnrestrictor -ra csak néha van szükségünk, ezért én csinálni szoktam egy-egy BossPrefs kapcsolót hozzájuk, aminek az elkészítése tetszőleges dylib-hez nem egy nagy ördöngősség, példának:
3GUnrestrictorhoz:
az egyik file meg a BossPrefs.app services könyvtárába, ez maga a kapcsoló, a másik a scripts-be, ez maga az, hogy mit kell csinálni a kapcsolónak:
servicesbe: tetszőleges néven létrehozunk egy sima szöveges file-t, vigyázzunk, az UTF-8 kódolásra (kitűnően kezeli Winen a muCommander)
mondjuk Unrestrictor3G néven, kiterjesztés nélkül, és ezt írjuk bele:
/Applications/BossPrefs.app/scripts/voip.sh on
/Applications/BossPrefs.app/scripts/voip.sh off
exist /Library/MobileSubstrate/DynamicLibraries/Unrestrictor3G.dylib
Nyilván, a fentebbi esetben egy voip.sh nevű file kell a scripts könyvtárába a BossPrefs-nek:
ez így nézzen ki:
#!/bin/sh
case “$1? in
on)
mv /Library/MobileSubstrate/DynamicLibraries/Unrestrictor3G.dylib_ /Library/MobileSubstrate/DynamicLibraries/Unrestrictor3G.dylib
mv /Library/MobileSubstrate/DynamicLibraries/Unrestrictor3G.plist_ /Library/MobileSubstrate/DynamicLibraries/Unrestrictor3G.plist
;;
off)
mv /Library/MobileSubstrate/DynamicLibraries/Unrestrictor3G.dylib /Library/MobileSubstrate/DynamicLibraries/Unrestrictor3G.dylib_
mv /Library/MobileSubstrate/DynamicLibraries/Unrestrictor3G.plist /Library/MobileSubstrate/DynamicLibraries/Unrestrictor3G.plist_
;;
esac
Ha az én scriptemből kicserélitek otthon egy egyszerű szövegszerkesztős Csere segítségével az adott kiterjesztés nevére a fentebbieket, akkor kaptok egy gyorsan működő BossPrefs-es kapcsolót. A scripteket tényleg UTF-8-ban kell írni
A dolgok egy része respring nélkül is működik, más része nem. Ha kell respring, külön sorként írjuk bele a scriptbe, a végére:
respring
9. Binary plistek
Merthogy, a plisteknek két fontos lehetséges formátuma van: a binary és az xml, az xml egy szöveges file, a binary már le lett egy bináris kódba fordítva, és ezt természetesen jóval gyorsabban tudja betölteni a rendszer. Kb. 1000 darab plist file van egy iphone-on. Tehát, nem mind1, hogy ezer szöveges file-t, vagy ezer binary file-t kell betöltenie a rendszernek. Ezek egy része a rendszerfile-ok eleve a firmware-ben binary-ben vannak, és nem is fordulnak maguktól át xml-lé természetesen, de jó sok file van, aminél erre nem figyeltek oda (Cydiás progik főként), így érdemes az összes plist file-t átfordítani binary formátumba. Ezt egy egyszerű paranccsal meg tudjuk tenni:
Putty, vagy Terminálban:
su root
find / -name *.plist | xargs plutil -convert binary1
Ha lefuttatjuk, kapunk néhány hibaüzenetet, nem kell vele foglalkozni, ez a Carriereknél van főleg, mert ott a könyvtárakhoz symlinkeket használ a rendszer.
10. Témák, tömörített png file-okkal:
Az iphone-on lévő .png file-ok egy sajátos headerrel lettek betömörítve, ezért nem lehet olyan egyszerűen megnyitni őket gépen. Szerencsére, a T-Pot át tudja konvertálni őket. Ettől eltekintve, a témákban lévő képfile-ok általában sima png-ek, melyek nem biztos, hogy a legtömörebben vannak megcsinálva, tehát nagyobb méretet foglalnak, mint amekkorára össze lehetne őket nyomni. Igazából, ez inkább optimalizálás, mint tömörítés. Van egy speciálisan png file-ok tömörítésére kifejesztett kis program, Win alatt fut, parancssorban. pngcrush a neve. A link:pngcrush.zip
Tehát, Winen, Start menüből futtatást választva, cmd.
A parancssorban elnavigálunk a cd paranccsal abba a könyvtárba, ahová felmásoltuk a kedvenc témánk png-jeit, és ebbe másolva a pngcrush.exe-t koiadhatjuk, hogy
pngcrush -brute -m 0 -l 9 -reduce -e _C.png *.png
a fentebb kiadott parancs a lehető legnagyobb tömörítést és optimalizációt fogja végrehajtani az összes, a futtatási könyvtárban lévő png file-on, és a tömörített file-oknak az eredeti filenév_C.png nevet fogja adni.
Persze, ha 3MB volt az ikonok meg képek mérete együtt, akkor nem kell csodát várni, mondjuk lesz fél megával kevesebb, de ettől függetlenül hasznos az eljárás, ha kisebb a betöltendő kép mérete, akkor gyorsabb a dolog, kevesebb memóriahasználattal párosulva.
Az elkészült file-okkal felülírhatjuk az addig használtakat.
11. A hírhedt overclock
Nem, sajnos nincs működő megoldás erre, és nem is lesz, valószínűleg.
Amit tudni kell: az eredeti iPhone-ban, iTouch-ban és 3G-ben ugyanaz a proci dolgozik, egész pontosan egy 600Mhz-es Samsung ARM chip, 412 MHz-re underclock-olva. A 1.x verziókban nem volt lockolva a rendszerben a proci órajele, így tetszőlegesen lehetett overclockolni a sysctl parancs segítségével, a Terminalban. Az iPhone EDGE a fórumok beszámolói alapján nyugodtan, melegedés nélkül működött 512 Mhz-en. Sajnos, az Apple szempontjából érthető módon a 2.0 betáiban már letiltották a lehetőséget. Most lehetne mondani, hogy persze, csak annyi a baj, hogy valami nagyágyú, pl. a Dev-Team nem foglalkozott a kérdéssel, de ez nem igaz, maga ChronicDev kísérletezett a dologgal. Amit talált: a kernel dekódolása után meg lehet ugyanúgy találni a változó lock-ját, és egy patch-el átállítani, de ettől függetlenül a sysctl azt írja, hogy a változó lockolt, és read-only. Valószínűleg, az iBootba, illetve az iBBS-be került bele az órajelzár. Szóval, ha valaki overclockot ír, az hazudik. Sajnos.
Amit viszont meg lehet valóban tenni, és ezt már egy ideje tudjuk, hogy meg lehet tenni:
valóban, a /System/Library/SystemConfiguration/PowerManagement.bundle/ könyvtárban lévő
com.apple.SystemPowerProfileDefaults.plist-et kell módosítani, persze, ha ez a vicces valaki tudta volna, hogy mit kell átírni, akkor nem magyarázat nélkül töltött volna fel egy file-t (mégegyszer, az egész egy vicc volt, a file, amit a srác feltöltött, tökéletesen azonos volt a firmware-ben lévővel)
ha megnézzük a file-t, akkor sokmindent látunk benne, a magyarázat: a file tartalmazza a különböző energiagazdálkodási profile-okat, hasonlóan a nagytestvér Mac OS X-hez. Azért nem három profile van benne (természetesen a UPSPower-nek nem sok értelme van), mert a különböző újraindítási okoktól, paraméterektől függően a rendszer más és más AC Power és Battery üzemmódokba kapcsolhatja a telót. Ha megnézzük, két érdekesebb bejegyzést láthatunk. Az egyik:
<key>GPUSwitch</key>
<integer>1</integer>
a másik:
<key>Reduce Processor Speed</key>
<integer>0</integer>
Így van, mindkettő azt szabályozza, ami a neve: a GPUSwitch a processzorba beépített grafikai gyorsítót (ko-processzort), a Reduce Processor Speed pedig a processzor sebességét veszi visszább, a használat fokának megfelelően sajna a rendszer néha nem találja el a használat fokát és hogy nem kellene levennie a sebességet.
a
<key>Reduce Processor Speed</key>
<integer>0</integer>
mindig 0 legyen a változó értéke, ez a false boolean értékkel egyezik meg, tehát nem fogja levenni a sebességet a rendszer ami a hiedelmekkel ellentétben nem sokat vesz le az akksiból. A másik, a GPUSwitch ennek értéke 0 -ha a legenergiatakarékosabbb, leglassabb működést akarjuk, 1 ha a leggyorsabbat, 2 ez pedig valami köztes lehetőség, a nagytestvérben az 1 és 2 a két videókártya chip között kapcsol, itt ugye erről szó sincs.
Tehát: át kell írni az összes profile-ban a változókat.
Én ezt már megtettem, itt a bináris formátumú átírt plist:
com.apple.SystemPowerProfileDefaults.plist
Használjátok egészséggel, talán a játékokon lehet érezni kicsit, hogy gyorsabb, akadásmentesebb a grafika.
És: reboot helyett power off-power on, hogy frissüljenek a cache file-ok.