Friday, August 5, 2011

> The DEFINITIVE iPhone 3G/iOS4 Guide

06.09.12: We're Back! I will loading into my iPhone 3G a beta version of redd00r.  I will test it out, see what's in it, what's not, and see if I can start tweaking away.  Please be patient, I will do a whole new rewrite.  Stay Tuned!


- - -
 > The DEFINITIVE iPhone 3G/iOS4 Guide


NOTICE: I expect who decide to do this to have knowledge of how it is done. I am not responsible for people bricking their phones. All resources are available on the web.  Remember, Google and YouTube are your friends and most of these operations can be found there as well.
- - -

After much searching around, reading and testing, restoring and frustrations, I have finally compiled the ultimate guide to having an iPhone 3G running iOS4, with all it's goodies, and fast, what Apple should've done.  This is the one-stop place for those of you looking to bring your iPhone 3G device back to an everyday usable phone.

This is a complete iOS4-equiped phone with all it's features working.  I personally Multitasking so that's a must, but you can leave out which features you don't need. With all the tweaks found below, your device with be incredibly fast, stable and perform better than the standard iOS4, and comparable to the iPhone 4.

- - -
• Phase 1  
Have a clean install of iOS4 on your iDevice
This custom firmware is based on Apple's iOS 4.1, which is the best choice for the iPhone 3G.   Multitasking runs perfectly in this version, and in this firmware, you will not have the screen glitch problems.

I must remind all of you that for these tweaks to work, your device has to be jailbroken.  Before installing, I always perform a “Erase All Content" from the General section in the Settings pane.  

Install iOS4.1

Remember you MUST set up as NEW PHONE. 

Because of how different custom firmwares are made, i personally enable the features i use (Wallpapers, etc. via iFile, but you can choose also MyOS from the Repo.  I find that some people tweak the firmwares and I find in different .plists options scattered that to me don't make sense.  
- - -

• Phase 2
System Tweaks and add-ons 

Cydia Apps
Add repo.insanely.com to your Cydia source. From there install the following:

• Springtimize
• MobileTerminal (NEW)
• Remove Retina
• SysClean
• Daemon Tools
• Appsync 4.0 
• MobileNotifier (optional)
• SBSettings (optional)

Tip:  I have noticed that for best results:  Install/run terminal scripts AFTER you have installed all your apps.
- - -

Tweaks and Settings

Backgrounder (In most hacktivated devices, this interferes with Push Notifications)
Backgrounder is a true multitasker that "runs" the applications in the 'background' instead of 'pausing' them in the memory like iOS4 does natively.  This alternative is much better and consumes far less system resources than the native multitasker. 

This add-on pairs extremely well with Multifl0w.


There are many configuration options but the most important is making sure that in the Global Settings, you set 'Backgrounding method' as 'Backgrounder'.  Then Fall back to Native: OFF. I chose 'Enable at Launch', 'Stay Enabled' as ON, the rest is all OFF.  Personally my App Switching is done by Multifl0w, but any other than the native will do.
 
Note: I have the Activator set to Home Button: Short Hold.  When you open an app and want to keep it open, short hold the home button and you can swiftly exit the app and it'll run in the background. 
 
Springtomize
This is perhaps one of the most important tweak mentioned on this site.   Springtomize offers a wide variety of tuning options for iOS4, but from here we will just use 5.

Settings:
1. Icons: Hide Shadows and Disable Jittering.  (These are really unneccesary, with these settings off, there is absolutely no lag when moving icons or folders around, or loading them onto the springboard, hence system is light and fast.
2. Dock: Hide Icons Reflections. Won't even notice the difference.
3. Lockscreen: Custom String: ON - write " unlock" (leave a space before to center the text).  This eliminates the lag when opening the iPhone.
4. Animations: Custom Duration: ON (Not Recommended if using Multifl0w: jittering instead of fading)
5. Lockscreen: Custom String: ON, use " Unlock" field (leave a space to center the word):  Eliminates unlocking lag. 

Edit System .plists
Using iFile, modify the following Springboard .plists, make sure the following keys are "FALSE":
 
N82AP.plist
* gamekit (if you don't use it)
* hdr-image-capture (this is REALLY unneccesary, it 'fixes' the laggy camera app
* hw-snapshots-need-purplegfx
* mms (if you don't use this)

N88AP.plist
*encrypted-data-partition
*gamekit (if you don't use it)
* hw-snapshots-need-purplegfx
*nike-ipod
*voice-control

Springboard tweaks
Lightweight Folders

Rename it to: "FolderSwitcherBG.png".  
Copy it to the following path: \System\Library\CoreServices\SpringBoard.app

With this background, folders open quicker. Especially if you decide to use FolderEnhancer.


Delete the following entries:
-FolderShadowBottom.png
-FolderShadowBottomNotch.png
-FolderShadowTop.png
-FolderShadowTopNotch.png
-SBBadgeBGMask.png
-SBDockMask.png
-SBDockMask-72.png
-Spotlight-full.png
-Spotlight-keyboard.png
-SwitcherIconShadow.png
-SwitcherShadowTop.png


Remove Launch Daemons
DaemonTools will remove launchdaemon which most of us will never really use, and will free system resources. iFile and Mobile Terminal are apps to access the filestructure of your iDevice.
Restart your phone.

Download a Language Pack delete script.
If you installed Sysclean you have a Lang Pack delete script, if not, you can download a standalone from Insanelyi Repo.  This will remove a lot of language files that are useless. Unless you use emoticons (emoji), you can delete all except English and Japanese (required for icons), if you do not use them, then delete all except English. 

Download Retina files delete script.
This will remove the Retina display files (iPhone/iPod & iPads).  Most apps today include retina images regardless of not having the Retina displays.  This frees about 2000 files! and reports of freeing a megabyte or two of RAM.
- - -
• Phase 3 (Optional)
Virtual Memory (New .plist: based on Stinky1's)
Included in the iPhone 3GS & 4 there is a Page File Swaping system which is basically virtual memory.  I've found a better Virtual Memory solution for the 3G that eliminates the constant lagging that is present with Apple's DynamicPager.  Instead of swapping page files, this VM makes a big static file to read/write from.  With this VM....it just feels like a whole different phone.

Download the Dynamic Pager:   https://rapidshare.com/files/3152728812/com.apple.dynamic_pager.plist
Using iFile copy it to the iPhone and install in the LaunchDaemons directory.


Disable Power Management (Optional, but I'm not using it)
To reduce lag, I’ve disabled the power management; phone doesn’t clock down to save power, then it’s full processing power is always on tap.  Some people notice battery drain, but it's not noticeable.  Doing this makes the iPhone more useful.  I have done it and using it with the current VM system.

Go to:  System/Library/SystemConfiguration/PowerManagement.bundle/
and rename, move or delete: “com.apple.SystemPowerProfileDefault.plist”

Soft Reset*, enjoy.   *Hold down home button and press Power until slider appear. Power Off.
- - -
Results:  This is what I have on my personal iPhone.  I've decided to keep it as simple and clean as possible, I have added Multifl0w but not Backgrounder, from testing i noted that when using Backgrounder with WhatsApp, Push Notifications didn't work.  I don't use wallpapers cause I like the black theme, and it works zippy.

With these settings, I believe this is the best that can be done, sure there are more tweaks, but I've seen little gain or cause stability problems.  From here, all we can wish for is someone to truly find how to remove the underclocking, which is what i believe our biggest setback is.  I hope this is worth the effort and help you enjoy your iPhone 3G again.
- - -

• Optional Installs:
A better iDevice.  What Apple should have done...

Before performing this, be sure to set the Home Button to respond to go Home, this is found in the General Settings pane.

Backgrounder
Backgrounder is a true multitasker that "runs" the applications in the 'background' instead of 'pausing' them in the memory like iOS4 does natively.  This is especially good if you like receiving instant messages and the sorts.  
 
Note: I have the Activator set to Home Button: Short Hold.  When you open an app and want to keep it open, short hold the home button and you can swiftly exit the app and it'll run in the background.


Multifl0w
In my opinion, this is the best app switcher for the iphone.  It is fast, simple, and much more impressive that the native switcher.
Settings is only: Switcher Style: Cards. (Responds faster than Exposé)
- - -