August 11, 2012

Galaxy S II Bible: Complete reference

Tutorials & Guides

How to build a perfect ROM

Know the Basics
Without knowing what you are getting yourself into will only make things worse even before you start off. To build a good Rom is different and to atleast build a fully functional Rom is different. So make sure you are fully aware of the technical fundamentals of building a Rom to enough extent so that you are able to fix the bugs and know what and where can things go wrong and how to solve them.

Performance, Memory, Stability and Battery
These are the four defining points which decide the pros and cons of the Rom that you develop. The Rom should be Fast, Have enough storage and program memory, should be stable and have a good battery backup. Trying to get a good balance of all these is very important. So make sure you keep all these things in mind while developing your Rom.

Be Patient and Polite
Building a good/perfect or bug free Rom wont come immediately. It’ll take many releases, experiments, testing and knowledge till you reach a nearly perfect Rom. So be patient as it sometimes takes weeks or sometimes months. Dealing with the public is not an easy job. You’ll find all sort of people of various characters. The can be nice as well as rude, but do remember that their critics are the only way you can improve. All they want from you is a good Rom, just keep this in mind and ignore the negatives.

Make it User Friendly
There are many ways in which you can make your Rom user friendly. Integrating useful apps. Prepping Eye candy themes, Important shortcuts etc.

Stay Motivated
This is the only driving force behind every Rom developer to continue doing their work with ease and success. Stay motivated and alert so that you can deliver the best with every release. Its hard sometimes but its it important.

Give Time to your Work
Most of the developers are either students or work some where and building Roms is some what like a hobby for us. Its correct that we are not supposed to spend all the time on building Roms but if we want to have a good working Rom we should manage considerable amount of time for few alternate days to work on this project.

Make it Different
You Rom characteristics should be some what different from what is already been provided by other developers. If its nothing different and Catchy then it’ll be hard to get users trying your Rom consistently. I still remember the days when i used to try alot of different Roms but still couldn’t find one that was nearly perfecting my needs. I tried alot of Roms that time.

Join Hands with another Developer
This is what i like the most. Join hands and team up with other developers and thus improve the efficiency and effectiveness of your Rom. The mind of two can bring together wonders. You can even team up with Developers of other devices and build a Rom for device that you personally do not own but you you widen your work area.

Don’t be ignorant
Make sure you are attentive and up to date with all what is discussed about your Rom, all bugs, all tests, reports, etc. so that you do not miss out on any bug possibly to be fixed for next release. If you ignore or avoid fixing the important bugs, the users will think that you are not really capable of solving them or not really interested in this Rom.

Get Testers
Testers are users who like to test the Rom and report you the bugs before you go public with the release. They are very helpful if you like to avoid the criticism after the release of the Rom as before itself you’ll be able to get rid of maximum number of Bugs and issues present in the Rom. That is where testers come in handy. Jus give a notice and many would love to try and test your Beta releases.

Keep Detailed Changelogs
Changelogs keep track of your developments over the time. They come in handy when ever you need to check for prolonged bugs. For example you may not notice it but if someone reports that he has been having an issue since your 3rd Rom release, then you can check out what all changes you made on that release and cross check whether one of those changes cause that bug.

Be Active on the Rom Page
This is the most important part of being interactive with the users cause there is alot that they want to be done in your Rom. Talk to them, answer their questions and discuss the pros and cons of the Roms with them. You can learn alot from them. Being active to the discussion will make them feel that you are eager to further develop and make this Rom improve further.

Add only Useful apps and Regularly Update them
Make sure the application you add to your Rom are useful by the people. Adding two Music Players in the Rom is not a good choice. Choose one that is best and use that only. But make sure you add one possibly best Application for all needs of the users. Keep track of all the applications that you have included in your Rom and make sure the latest versions are included. It keep the user feel updated with your Rom. Many times there are applications which are important to add but have some bug. Later these bugs are fixed in their next releases, so even you should add those updated fixed Applications. Use only Genuine Licenses and No Warez Applications. Warez is like a virus to the development of your Rom. Copyright issues and illegal use of cracked applications make pose a ban on you Roms by the Blogs and threads where you list them. Either you use development licenses to use the in your Roms or use an equally good free Application.

Good looking User Interface and Graphics
This is the major aspect that defines your Rom and makes it distinct from others. Work on that graphics that can be changed in your Rom, try different themes and skin enhancements in different aspects of os like dialer, lockscreen, fonts etc.

Keep Polls and ask Questions
Polls and asking questions from users is a very important way by which you can interact with users and get their feedback. Polls can be asking them about their preferences. Which applications they like or dislike, asking frequents questions on that changes you will be making in the Rom cause at the end of the day it is them who will be using them.

Learn from Competition
I don’t call the fellow developers a competition and usually many share their work and are supportive like i am to each other’s work. But you can learn from what is included in their Rom and if its catchy and important then you can add it to your Rom aswel. There might be many new and useful applications and features that other developers might be using and you are not even aware of that. It can be very helpful in evolving your Rom completely.

Listen and Learn from Users
Listening what a user has to say about their experiences on using your Rom is very important. They might have something very important to share from their experiences which you can incorporate in your Rom. It really helps in fixing bugs and improving your Rom further.

In the end you are the Decision Maker
Its you who has to take the decisions in the end. There will be many people wanting you to do this or that and add this or remove that but in the end you have to keep an unbiased judgment on all the requests, ideas and suggestions and bring forward the changes that you feel the masses are going to appreciate. And for that you will need to take care of all the above mentioned points in mind.

Give Credits
Not to forget that 70%-80% of your work is inspired from that of other developers. And it wonk charge you anything to be humbly give credit or some appreciation to the help you have got from other developers in terms of guides, tips, tricks, applications, UI Enhancements, etc. It just shows your character as a person as well.


What are Stock Roms and Custom Roms?

What is a Rom?
ROM – Read Only Memory is that memory which stores the system files of your Device. Those files which make up the basic Operating System, be is Windows Mobile Phone OS, Android, Symbian, Windows OS, etc. Every electronic device has a Read only Memory which stores the basic programming of the functions that the Electronic equipment is to perform. ROM in terms of our Android Devices the basic set of programming applications and files of functions which your device performs Out of the Box. Without a Rom no electronic device exists.

What are Stock ROMs?
Those ROMs which come pre installed are called Stock ROMs. Stock ROMs are the ones that come Box packed with your Device preinstalled. These are official Software that are provided by the Manufacturer or the OEM.

Is it possible to Edit/Customize/Alter Stock ROMs?
Yes it is. For a lot of Operating Systems be it Windows Mobile Phone OS, Android, Symbian, etc, it is possible to Customize these stock ROMs and install them to our devices.

What are Custom ROMs?
They are Custom ROMs are based on Stock ROMs but customized by the user in terms of additions in applications, improvements, removal of unnecessary application, etc. A customized ROM may be an minor improvement to Stock Rom or can even be a complete makeover of Stock Rom even changing the drivers of the Rom with that of other compatible devices providing better performance.

Why do we need Custom Rom?
Customization is making things personal. That is one main reason why we customize a Stock Rom. A stock Rom no matter what will have a lot of unnecessary applications, files, images, settings that are pre set by the Manufactures but are not at all important to us and uses a lot of space for no reason. No matter what there has to be one or the other Bug in a Stock Rom. To get rid of these issues we customize a stock ROM by either adding useful applications, settings, removed crap, fixing bugs and on getting a Top Notch easy to use and completely customized Device.

What about the warranty?
This is decision that you need to make personally. Yes, Custom ROMs will take away your precious warranty. But that to only if your device stops working while you are using Custom Rom on your device and you have to take it to the company. If you want you can revert back to Stock ROMs and then take your device to the Service Center and they won’t even know about it. But you need to consider reverting back to Original Stock Rom.

su
Also referred to as substitute user - a command for changing the account in the current terminal (usually black screen with blinking cursor). Default account is root account. So if you insert into terminal 'su' and hit enter, you will become root user.

root
Root alias superuser or poweruser is special user account for system administration. Similar to windows having its administrator account, unix-like systems have a root account. With this, you can do anything and if you run a command to delete the whole system, unix will just do it! No asking, no confirming. So, watch your steps!

rooting
Rooting is just enabling power of root for applications and other purposes.

Superuser app
After rooting is done, you will see a new app called superuser in app drawer. This app can delegate applications to use su (root) feature. When an app asks this from first use, a popup window will appear asking if the application should be allowed to use root permission.

sh, bash
is a command-line interpreter or shell that provides a traditional user interface for the Unix operating system and for Unix-like systems. So simply, it is some interface, which can execute command(s), which you have entered. Many shells exist, but in scope of android you can (as far as I know) use only sh (standard - Bourne-shell) or bash (compiled in BusyBox or separately on XDA). Both are basically same, but bash has much more features and it is more comfortable.

user/root shell
How do I know if I'm root or normal user? It's simple. Root's shell is ended with # (usually it's shell looks like "bash-3.2# _") and user's ends with $ (usually bash-3.2$ _). In terminal emulator you also can have only [path]($|#) (for root for example "/etc # _")

BusyBox
also called "The Swiss Army Knife of Embedded Linux" is a tool which brings into Android basic tools known from unix system, but is much more smaller than standard tools is. But this "packing" has limited functions in comparison to standard tools in unix-system (missing special modes of tool, color output and so on). Many application use this. For example busybox grep (filtering of text) is needed for application called Market enabler.

BusyBox commands
list of commands is really wide, so it's not possible explain all, so I pickup only top few. (hint: if you want what some command do, just search on google for "man <command_name>" for example man mv or enter command here

cd - change directory - same like in windows. You can switch directory. example: cd /sdcard
ls - list of files in actual directory (have few switches like for example: ls -l /sdcard/*.png (detailed listing)
cat - print file into standard output (like more in windows) Example: cat /sdcard/data.txt
vi - editing of file. But on limited phone keyboard (no keyboard) it is little harder Read more about vi
cp - copy of one or more file. Example: cp /sdcard/bike.jpg /sdcard/media/bike-wallpaper.jpg
mv - moving/rename files, Example: mv /sdcard/bike.jpg /sdcard/media/renamed-moved-bike.jpg
rm - delete file (rm -R for recursive, or for delete whole folder), Example: rm -R /sdcard/wallpaper-bad/*
find - search for files, Example find / -name "best-chopper-ever.avi"
mkdir - make directory - creates directory, Example: mkdir mynewdir
chmod - changes access of files
less - similar like cat, but you can scroll in it and it doesn't produce any output. Example: less /sdcard/funnytext.txt

For BusyBox's tool help, just enter BusyBox <command_name> -h.

ADB (shell)
ADB - Android Debug Bridge is a versatile tool that lets you manage the state of an emulator instance or Android-powered device. It is a client-server program that includes three components:
* A client, which runs on your development machine. You can invoke a client from a shell by issuing an adb command. Other Android tools such as the ADT plugin and DDMS also create adb clients.
* A server, which runs as a background process on your development machine. The server manages communication between the client and the adb daemon running on an emulator or device.
* A daemon, which runs as a background process on each emulator or device instance.

Generally, it can be compared with standard cmd prompt in windows (you can write commands which will be executed locally, for example in Terminal Emulator) or it can be just like SSH in unix-like system (you connect to terminal through adb client (in Android SDK) and commands will be run remotely.

Android SDK
Android software development kit is a complex set of tools for developing apps on Android. It includes a fully usable emulator of Android OS on your PC, where you can do everything. You can install/delete apps, browse web page in embedded web browser, play games or make your own application in Eclipse (widely used IDE for development). Of course, with emulator you can use also GPS or camera.
Android SDK tools
* Fully emulated Android device
* Android Development Tools Plugin (Eclipse IDE)
* Android Virtual Devices (AVDs)
* Hierarchy Viewer
* layoutopt
* Draw 9-patch
* Dalvik Debug Monitor Service (ddms)
* Android Debug Bridge (adb)
* Android Asset Packaging Tool (aapt)
* Android Interface Description Language (aidl)
* sqlite3
* Traceview
* mksdcard
* dx
* UI/Application Exerciser Monkey
* monkeyrunner
* Android
* zipalign

Tools for work with Android adb shell
You have two ways to connect into ADB service - locally and remotely.
Locally - for local access you will need some application which can connect to local adb shell.
Terminal Emulator (free) - probably most commonly used app from market, which works and looks like standard unix shell.
ConnectBot (free) - same as Terminal Emulator, but it can be also used for connecting via SSH or telnet
Remotely- For remote connection you need phone configuration adjustment:
Home desktop -> [menu button] -> Settings -> Applications -> Development -> USB debugging [ON].
Also you need connect your phone via USB (or finds on market some widget/app, witch enable using ADB also via wi-fi)

adb tool from Android SDK
After downloading Android SDK, extract the archive anywhere (in example I extracted it in c:/AndroidSDK). Then follow instructions on developer.android.com for installation of SDK Platform-tools (contains adb). After installation click on start menu and in Run... (in Windows7 in search bar) enter 'cmd' and press Ok or [enter]. Then write in cmd line:

Quote:
cd c:\AndroidSDK\android-sdk-windows\tools [enter]
now you can enter following command to connect to phone's adb shell if you don't have more connected device (virtual or real-one)

Quote:
adb shell
If you have more then one, you need explicitly say which one should be used for connection. So list connected devices with

Quote:
adb devices
which shows you serial number of connected devices. Than use

Quote:
adb -s <serial-number> shell
3. Custom recovery
* What is custom recovery
* Tools which custom recovery provide - NAND backup/restore, formatting of SDcard, partitioning (ext1,ext2, ext3), wiping, flashing of Custom ROM, ...
* Is it safe to install? - potential problems, backup/restore of original recovery
* How this whole thing works - installation description (not how-to install, just explanation of what is done during installation)

What is custom recovery
Recovery is an image (binary data) stored in internal memory. This image contains something like a "program" or "tool", which can boot-up independently from the Android system. This tool is part of phone system, and in PC terminology recovery can by compared to BIOS with some added features. This recovery state can be reached on all phones, but if you don't have a custom recovery, it will do a so-called HW reset and automatically restart itself into standard boot mode.

Tools which custom recovery provides
* USB-MS Toggle :mounts sdcard as mass storage
It just mounts your phone as USB-mass storage (USB disk) so you can access it through your PC

* Backup/Restore:
Absolutely GREAT feature. With NAND you can copy an image of your actual system (phone's memory). It means that you can backup the whole system with all configuration, customization, wallpapers, system's tweaks... just everything. This image will be written to your SD card which you are then free to copy around and back up on your computer

* Flash Zip From Sdcard
This tool is designed for installation of custom ROMs or tweaks. If you are instructed to install via custom recovery, then you should use this menu. Never unzip the file because it contains meta-information about itself with some validate-checks so if you edit it, or unpack and pack back, it won't work. And remember to place the file in the root (main folder) of your sdcard.

* Wipe Menu:
Wipe data/factory reset: wipes data & cache
- wipes user data (contacts, apps, configuration, ...) and cache (caches of applications)
Wipe cache
- wipes cache only
Wipe Dalvik cache : Wipes Dalvik cache in all possible locations if moved by apps2sd
- wipes Dalvik cache
Wipe SD:ext : Wipes Apps2sd ext partition
- if you used Partition SDcard option, you can wipe it here
Wipe Battery Stats (remember to fully charge your phone before doing this)
- If you think, that your battery life is too short, you can try delete battery stats. Than let phone fully charge. (more)
Wipe rotate settings
- wipe sensor settings (acceleration, ...)
Wipe .android secure : Wipes froyo native .android_secure on sdcard
- wipe information about moved apps
* Partition Sdcard:
Partition SD: Partitions sdcard for apps2sd (this formats card so all data will be lost)
- will create ext2 partition (you will be asked for size of ext2 and cache)
Repair Sd:ext
SD:ext2 to ext3 : converts apps2sd ext2 partition to ext3 (requires kernel support for ext3)
SD:ext3 to ext4 : same as above but ext3 to ext4 (requires kernel support for ext4)

ext2 - file system for the Linux kernel (no journal, fast but not recovery of I/O error)
ext3 - file system for the Linux kernel (journal, slower than ext2 because of journal, but provides recovery on I/O error)
ext4 - file system for the Linux kernel (journal, enhanced version of ext3)

* Mounts:
Gui automatically mounts folders

png-optimized -
png files takes less memory, are loads faster

JIT -
just-in-time compilation also known as dynamic translation, is a method to improve the runtime performance of computer programs, but it takes some time to convert into it on start.

HW:acceleration -
using of HW acceleration for rendering GUI. Increases battery consumption.

VM.Heap Size -
maximum memory an application can consume

stagefright -
In Android 2.2 new media framework that supports local file playback and HTTP progressive streaming

Deodex

Advantages or disadvantages
- Odexed ROMs are slightly faster, deodexed ROMs are slightly slower
+ You can make custom themes for your ROM
+ Performance los is negligible.

Requirements:
Download XUltimate
Busybox installed
Root

1. Connect phone to computer
2. Start xUltimate, we will now get the required files from our phone to deodex and zipalign it which we will describe in the 3rd step.
3. On the main menu of xUltimate, choose option 5 (Pull and deodex all). Everything will be done for you here. Don't worry. You will see all your finished files in the folders 'done_app' and 'done_frame' which are located in the installation directory of xUltimate.
4. move folders 'done_app' and 'done_frame' folders to your sdcard, you can find these folders in the directory of xUltimate as described in the previous step.
5. Make sure the sdcard is not mounted to pc anymore
6. Open Windows Command Prompt and type the following commands.

adb shell
su
stop
mount -o remount,rw /dev/block/stl12 /system
rm /system/app/*.odex
rm /system/framework/*.odex
busybox cp /sdcard/done_app/* /system/app/
busybox cp /sdcard/done_frame/* /system/framework/
chmod 644 /system/app/*
chmod 644 /system/framework/*
mount -o remount,ro /dev/block/stl12 /system
sync
reboot recovery
7. Now data and cache reset in the recovery menu...
8. reboot

If one of the commands, for example 'cp' is not found, try putting busybox in front of the command:
eg: busybox cp /sdcard/done_frame/* /system/framework/
--------------------------------------------------------------------------------------------------

[How To] Setup ADB for Windows/ Mac

For Windows

Want to set up ADB or Android Debugging Bridge on your PC, here is a quick guide for you. This tutorial does not need large download or full Android SDK installation. You will just have to download a small compressed file, which is all that you require.

STEP 1: First download this file called ADBUNZIPTOCDRIVE.zip, just click on the link, download will start automatically.

STEP 2: Now download PdaNet for driver installation. It comes with drivers from all major manufacturers, so this is all you need. Install PDAnet after downloading.

STEP 3: Now extract the zip file that we downloaded in the first step to C drive and name the extracted folder ADB.

STEP 4: Now we will go to the desktop and right click to make a new shortcut.

STEP 5: Point the shortcut to ADB folder that we created in step 3, and name the shortcut ADB or whatever you want.

STEP 6: Now right click on that shortcut and go to properties and change START IN field to c:\adb.

STEP 7: Click Apply or OK and you are done. Click on ADB shortcut on the desktop and you are good to go.

Here is list of ADB commands that might be useful for you in the future.

adb devices – list all connected devices
adb push <local> <remote> – copy file/dir to device
adb pull <remote> [<local>] – copy file/dir from device
adb sync [ <directory> ] – copy host->device only if changed
adb shell – run remote shell interactively
adb shell <command> – run remote shell command
adb emu <command> – run emulator console command
adb logcat [ <filter-spec> ] – View device log
adb forward <local> <remote> – forward socket connections forward specs are one of: tcp:<port>
localabstract:<unix domain socket name>
localreserved:<unix domain socket name>
localfilesystem:<unix domain socket name>
dev:<character device name>
jdwp:<process pid> (remote only)
adb jdwp – list PIDs of processes hosting a JDWP transport
adb install [-l] [-r] [-s] <file> – push this package file to the device and install it
adb uninstall [-k] <package> – remove this app package from the device (‘-k’ means keep the data and cache directories)
adb bugreport – return all information from the device
that should be included in a bug report.
adb help – show this help message
adb version – show version num
adb wait-for-device – block until device is online
adb start-server – ensure that there is a server running
adb kill-server – kill the server if it is running
adb get-state – prints: offline | bootloader | device
adb get-serialno – prints: <serial-number>
adb status-window – continuously print device status for a specified device
adb remount – remounts the /system partition on the device read-write
adb reboot [bootloader|recovery] – reboots the device, optionally into the bootloader or recovery program
adb reboot-bootloader – reboots the device into the bootloader
adb root – restarts the adbd daemon with root permissions
adb usb – restarts the adbd daemon listening on USB
adb tcpip <port> – restarts the adbd daemon listening on TCP on the specified port
==============================

:: build.prop tweaks ::


Quote:
Experimental / Not Tested

##Date format
ro.com.android.dateformat=MM-dd-yyyy

ro.com.google.locationfeatures=1
ro.setupwizard.mode=DISABLED
keyguard.no_require_sim=true
ro.com.android.dataroaming=true

# Default network type.
ro.telephony.default_network=8
##8 => CDMA/EVDO/LTE auto mode preferred. (I don't know what should be the value for our Galaxy 3)

#proximit sensor disable touch distance
mot.proximity.distance=60


Working

##Makes phone boot rapidly fast
persist.sys.shutdown.mode=hibernate

##Force launcher into memory
ro.HOME_APP_ADJ=1

## Raise JPG quality to 100%
ro.media.enc.jpeg.quality=100

##VM Heapsize; 178MB RAM = 32 is better
dalvik.vm.heapsize=48m

##Render UI with GPU
debug.sf.hw=1

##Decrease dialing out delay
ro.telephony.call_ring.delay=0

##Helps scrolling responsiveness
windowsmgr.max_events_per_sec=150

##Save battery
wifi.supplicant_scan_interval=180
pm.sleep_mode=1
ro.ril.disable.power.collapse=0

##Disable debugging notify icon on statusbar
persist.adb.notify=0

##Increase overall touch responsiveness
debug.performance.tuning=1
video.accelerate.hw=1

##Raise photo and video recording quality (2.3 ROM only)
ro.media.dec.jpeg.memcap=8000000
ro.media.enc.hprof.vid.bps=8000000

# Photo and video recording quality tweak (2.2 Rom only)
ro.media.dec.jpeg.memcap=10000000
ro.media.enc.hprof.vid.bps=1000000

##Signal (3G) tweaks
ro.ril.hsxpa=2
ro.ril.gprsclass=12
ro.ril.hep=1
ro.ril.enable.dtm=1
ro.ril.hsdpa.category=10
ro.ril.enable.a53=1
ro.ril.enable.3g.prefix=1
ro.ril.htcmaskw1.bitmask=4294967295
ro.ril.htcmaskw1=14449
ro.ril.hsupa.category=6
ro.ril.def.agps.feature=1
ro.ril.enable.sdr=1
ro.ril.enable.gea3=1
ro.ril.enable.fd.plmn.prefix=23402,23410,23411
ro.ril.enable.a52=1
ro.ril.enable.a53=1
ro.ril.enable.dtm=1

##Net speed tweaks
net.tcp.buffersize.default=4096,87380,256960,4096, 16384,256960
net.tcp.buffersize.wifi=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.umts=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.gprs=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.edge=4096,87380,256960,4096,163 84,256960

##Disable blackscreen issue after a call
ro.lge.proximity.delay=25
mot.proximity.delay=25

##Fix some application issues
ro.kernel.android.checkjni=0

##Phone will not wake up from hitting the volume rocker
ro.config.hwfeature_wakeupkey=0

##Force button lights on when screen is on
ro.mot.buttonlight.timeout=0

##Disable boot animation for faster boot
debug.sf.nobootanimation=1

# Enable Stagefright helps stream Video and Music Faster
media.stagefright.enable-player=true
media.stagefright.enable-meta=true
media.stagefright.enable-scan=true
media.stagefright.enable-http=true

# Enable display Dithering
persist.sys.use_dithering=1

# Enable purgeable assets
persist.sys.purgeable_assets=1

# For SD storage insert notification sound
persist.service.mount.playsnd=0

##Miscellaneous flags
ro.config.hw_menu_unlockscreen=false
persist.sys.use_dithering=0
persist.sys.purgeable_assets=1
dalvik.vm.dexopt-flags=m=y
ro.mot.eri.losalert.delay=1000
init.d scripts
(needs ROM with init.d access and busybox, open empty file, insert header #!/system/bin/sh and put these there, save in /system/etc/init.d and name it something like 77tweaks)

Code:
##internet speed tweaks
echo "0" > /proc/sys/net/ipv4/tcp_timestamps;
echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse;
echo "1" > /proc/sys/net/ipv4/tcp_sack;
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle;
echo "1" > /proc/sys/net/ipv4/tcp_window_scaling;
echo "5" > /proc/sys/net/ipv4/tcp_keepalive_probes;
echo "30" > /proc/sys/net/ipv4/tcp_keepalive_intvl;
echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout;
echo "404480" > /proc/sys/net/core/wmem_max;
echo "404480" > /proc/sys/net/core/rmem_max;
echo "256960" > /proc/sys/net/core/rmem_default;
echo "256960" > /proc/sys/net/core/wmem_default;
echo "4096,16384,404480" > /proc/sys/net/ipv4/tcp_wmem;
echo "4096,87380,404480" > /proc/sys/net/ipv4/tcp_rmem;

##vm management tweaks 
echo "4096" > /proc/sys/vm/min_free_kbytes
echo "0" > /proc/sys/vm/oom_kill_allocating_task;
echo "0" > /proc/sys/vm/panic_on_oom;
echo "0" > /proc/sys/vm/laptop_mode;
echo "0" > /proc/sys/vm/swappiness
echo "50" > /proc/sys/vm/vfs_cache_pressure
echo "90" > /proc/sys/vm/dirty_ratio
echo "70" > /proc/sys/vm/dirty_background_ratio

##misc kernel tweaks
echo "8" > /proc/sys/vm/page-cluster;
echo "64000" > /proc/sys/kernel/msgmni;
echo "64000" > /proc/sys/kernel/msgmax;
echo "10" > /proc/sys/fs/lease-break-time;
echo "500,512000,64,2048" > /proc/sys/kernel/sem;

##battery tweaks
echo "500" > /proc/sys/vm/dirty_expire_centisecs
echo "1000" > /proc/sys/vm/dirty_writeback_centisecs

##EXT4 tweaks (greatly increase I/O)
(needs /system, /cache, /data partitions formatted to EXT4)
tune2fs -o journal_data_writeback /block/path/to/system
tune2fs -O ^has_journal /block/path/to/system
tune2fs -o journal_data_writeback /block/path/to/cache
tune2fs -O ^has_journal /block/path/to/cache
tune2fs -o journal_data_writeback /block/path/to/data
tune2fs -O ^has_journal /block/path/to/data

##perfect mount options
busybox mount -o remount,noatime,noauto_da_alloc,nosuid,nodev,nodiratime,barrier=0,nobh /system
busybox mount -o remount,noatime,noauto_da_alloc,nosuid,nodev,nodiratime,barrier=0,nobh /data
busybox mount -o remount,noatime,noauto_da_alloc,nosuid,nodev,nodiratime,barrier=0,nobh /cache

##Flags blocks as non-rotational and increases cache size
LOOP=`ls -d /sys/block/loop*`;
RAM=`ls -d /sys/block/ram*`;
MMC=`ls -d /sys/block/mmc*`;
for j in $LOOP $RAM
do
echo "0" > $j/queue/rotational;
echo "2048" > $j/queue/read_ahead_kb;
done

##microSD card speed tweak 
echo "2048" > /sys/devices/virtual/bdi/179:0/read_ahead_kb;

##Defrags database files
for i in \
`find /data -iname "*.db"`
do \
sqlite3 $i 'VACUUM;'; 
done

##Remove logger
rm /dev/log/main

##Ondemand governor tweaks
SAMPLING_RATE=$(busybox expr `cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency` \* 750 / 1000)
echo 95 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo $SAMPLING_RATE > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate

##Auto change governor and I/O Scheduler
a) I/O Scheduler (Best: MTD devices - VR; EMMC devices - SIO) - needs kernel with these
echo "vr" > /sys/block/mmcblk0/queue/scheduler
or
echo "sio" > /sys/block/mmcblk0/queue/scheduler

b) Governor (Best: Minmax > SavagedZen > Smoothass > Smartass > Interactive) - needs kernel with these
echo "governor-name-here" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

##Block Ads with Hosts regularly updated in Sekhy ROM
Patch your hosts file for blocking Ads 
(please think before doing this; many developers are supported through this way)
You can use AdFree application for this or changing manually your hosts file.

Here are some databases:
http://www.mvps.org/winhelp2002/hosts.txt
http://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts

##Use Google's dns servers
Create an empty file, name it resolv.conf and put there these 2 lines:
nameserver 8.8.8.8
nameserver 8.8.4.4

Save to /system/etc/.

Update Superuser and su binary to latest version
http://goo-inside.me/superuser/

I think many of you were familiar with QTADB. It is easy to manage your phone with it. But geeks who are interested doing the stuff in different ways try some of these:

Go to command command prompt where your ADB installed. (assuming you are familiar installing adb before doing these)
To install ADB download these and extract to any of the desired drive. Say D:\ or E:\ etc.

code to delete unwanted apps:
Quote:
adb shell
su
mount -o remount,rw /dev/block/stl9 /system
rm /system/app/nameofapk.apk
code to add apps and stuff:
Quote:
adb shell
su
mount -o remount,rw /dev/block/stl9 /system
exit
exit

adb push nameofapk.apk /system/app/

=======================================================


[DIY] Do it yourself guides:

Reset Galaxy S II
Warning: All your data including contacts, messages will be lost!

Hard Reset:
Press and Hold Volume Up + Home button.
Keep pressing these two and press Power button for 2-3 seconds.
Release only power button. But keep pressing Volume UP + Home buttons.
Now, with Volume down, select wipe data/facotory reset (3rd)
Press Power

Useful Codes:
*#0*# LCD Screen test
*#06# Show IMEI Number
*#2222# HW Version
*#1234# Phone info
*#34971539# Camera Firmware
*#9900# Sysdump (Logfiles etc.)
*#0228# Battery diagnostics
*#7284# Phone utility
*#7353# Function testing
*#9090# Service Mode
*#*#197328640#*#* Service Mode Menu
*2767*3855# Factory Reset

Complete Codes Collections for SGS II and should work with other Samsung droids many of them.
Warning: Please use with caution
1 #*#8377466# S/W Version & H/W Version.
2 #*0227# GPRS Switch.
3 #*0277# GPRS Switch.
4 #*2027# GPRS Switch.
5 #*2077# GPRS Switch.
6 #*2252# Current CAL.
7 #*2255# Call Failed.
8 #*2256# Calibration info? (For CMD set DEBUGAUTONOMY in cihard.opt)
9 #*22671# AMR REC START.
10 #*22672# Stop AMR REC. (File name: /a/multimedia/ sounds/voice list/ENGMODE.amr)
11 #*22673# Pause REC.
12 #*22674# Resume REC.
13 #*22675# AMR Playback.
14 #*22676# AMR Stop Play.
15 #*22677# Pause Play.
16 #*22678# Resume Play.
17 #*22679# AMR Get Time.
18 #*2286# Databattery.
19 #*2337# Permanent Registration Beep.
20 #*2351# Blinks 1347E201 in RED.
21 #*2474# Charging Duration.
22 #*2527# GPRS switching set to (Class 4, 8, 9, 10)
23 #*2558# Time ON.
24 #*2562# Restarts Phone.
25 #*2565# No Blocking? General Defense.
26 #*2677# Same as 4700.
27 #*2679# Copycat feature Activa/ Deactivate.
28 #*2775# Switch to 2 inner speaker.
29 #*2787# CRTP ON/OFF.
30 #*2834# Audio Path. (Handsfree)
31 #*2836# AVDDSS Management Activate/ Deactivate.
32 #*2886# AutoAnswer ON/OFF.
33 #*3270# DCS Support Activate/ Deactivate.
34 #*3273# EGPRS multislot. (Class 4, 8, 9, 10)
35 #*3282# Data Activate/Deactivate.
36 #*3353# General Defense, Code Erased.
37 #*3370# Same as 4700.
38 #*3476# EGSM Activate/Deactivate .
39 #*3676# FORMAT FLASH VOLUME!!!
40 #*3725# B4 last off.
41 #*3728# Time 2 Decod.
42 #*3737# L1 AFC.
43 #*3757# DSL UART speed set to. (LOW, HIGH)
44 #*3837# Phone Hangs on White screen.
45 #*3838# Blinks 3D030300 in RED.
46 #*3838# Blinks 3D030300 in RED.
47 #*3849# Restarts Phone.
48 #*3851# Restarts Phone.
49 #*3876# Restarts Phone.
50 #*3877# Dump of SPY trace.
51 #*3888# BLUETOOTH Test mode.
52 #*3940# External looptest 9600 bps.
53 #*3941# External looptest 115200 bps
54 #*4263# Handsfree mode Activate/ Deactivate.
55 #*4472# Hysteresis of serving cell: 3 dB
56 #*4700# Please use function 2637.
57 #*4760# GSM Activate/Deactivate.
58 #*4773# Incremental Redundancy.
59 #*4864# White Screen.
60 #*5133# L1 HO Data.
61 #*5171# L1P1.
62 #*5172# L1P2.
63 #*5173# L1P3.
64 #*5176# L1 Sleep.
65 #*5187# L1C2 G trace Activate/ Deactivate.
66 #*5376# DELETE ALL SMS!!!!.
67 #*5737425# JAVA Mode.
68 #*6833# New uplink establishment Activate/Deactivate .
69 #*6837# Official Software Version: (0003000016000702)
70 #*7200# Tone Generator Mute.
71 #*7222# Operation Typ: (Class C GSM)
72 #*7224# !!! ERROR !!!
73 #*7252# Operation Typ: (Class B GPRS)
74 #*7271# CMD: (Not Available)
75 #*7274# CMD: (Not Available)
76 #*7284# L1 HO Data.
77 #*7287# GPRS Attached.
78 #*7288# GPRS Detached/Attached .
79 #*7326# Accessory.
80 #*7337# Restarts Phone. (Resets Wap Settings)
81 #*7352# BVMC Reg value (LOW_SWTOFF, NOMINAL_SWTOFF)
82 #*7372# Resetting the time to DPB variables.
83 #*7462# SIM Phase.
84 #*7524# KCGPRS: (FF FF FF FF FF FF FF FF 07)
85 #*7562# LOCI GPRS: (FF FF FF FF FF FF FF FF FF FF FF FE FF 01)
86 #*7666# White Screen.
87 #*7683# Sleep variable.
88 #*7693# Sleep Deactivate/Activate .
89 #*7722# RLC bitmap compression Activate/Deactivate .
90 #*77261# PCM Rec Req.
91 #*77262# Stop PCM Rec.
92 #*77263# PCM Playback.
93 #*77264# PCM Stop Play.
94 #*7728# RSAV.
95 #*7732# Packet flow context bit Activate/Deactivate .
96 #*7752# 8 PSK uplink capability bit.
97 #*7785# Reset wakeup & RTK timer cariables/variables.
98 #*7828# Task screen.
99 #*7878# FirstStartup. (0 NO, 1 YES)
100 #*7983# Voltage/Freq.
101 #*7986# Voltage.
102 #*8370# Tfs4.0 Test 0.
103 #*8371# Tfs4.0 Test 1.
104 #*8372# Tfs4.0 Test 2.
105 #*8373# Tfs4.0 Test 3.
106 #*8374# Tfs4.0 Test 4.
107 #*8375# Tfs4.0 Test 5.
108 #*8376# Tfs4.0 Test 6.
109 #*8377# Tfs4.0 Test 7.
110 #*8378# Tfs4.0 Test 8.
111 #*8379# Tfs4.0 Test 9.
112 #*8465# Time in L1.
113 #*8466# Old Time.
114 #*8724# Switches USBACM to Generator mode.
115 #*8725# Switches USBACM to Loop-back mode.
116 #*8726# Switches USBACM to Normal.
117 #*8727# Switches USBACM to Slink mode.
118 #*9270# Force WBS.
119 #7263867# RAM Dump. (On or Off)
120 *#*#4636#*#* Access Phone/Battery/Usage Stat/WiFi Info
121 *#0*# Access Sensor/LCD Screen Test/ Vibration/ Camera/ Speaker etc test
122 *#0011# ServiceMode/Debug /Basic
123 *#06# IMEI Number.
124 *#1234# Firmware Version.
125 *#2222# H/W Version.
126 *#2255# Call List.
127 *#232337# Bluetooth MAC Adress.
128 *#4777*8665# GPSR Tool.
129 *#5282837# Java Version.
130 *#8999*327# EEP Menu.
131 *#8999*364# Watchdog ON/OFF.
132 *#8999*377# Error Menu.
133 *#8999*427# WATCHDOG signal route setup.
134 *#8999*523# LCD Brightness.
135 *#8999*667# Debug Mode.
136 *#8999*8376263# All Versions Together.
137 *#8999*8378# Test Menu.
138 *#92782# PhoneModel. (Wap)
139 *2767*226372# E2P Camera Reset. (deletes photos)
140 *2767*2878# E2P Custom Reset.
141 *2767*3855# E2P Full Reset.
142 *2767*688# Reset Mobile TV.
143 *2767*927# E2P Wap Reset.

Useful Links

-Debrand & Rebrand back to O2 for Samsung Galaxy S2
-Permanently Fix SGS2 Echo and Digital Noise Reduction/Cancellation Problems
-Back up your data before moving to a new rom
-Recover your IMEI in 9 steps.
-Battery Saving Tips Collection



Mods:
-add customizable 14 statusbar toggle buttons for samsung ROM
-Long press volume buttons to skip songs.
-Manually Deodex and Odex back
-Learn to make your own 'eye-candy' mods [Easy Steps]

Tools:
-EFS Pro v1.2.6 - Advanced '/efs' Backup and Restore!

Patches:
-Add native android SIP stack for Wifi AND 3G calls
-Extended Power Menu with no header (reboot / download / recovery)

1 komentar:

Anonymous said...

nezero at xda-developers has written an app to permanently turn noise reduction off on the SGS2 - available from the amazon app store or DL the apk direct from the forum post http://forum.xda-developers.com/showthread.php?t=1938424 *** Thanks nezero!!!

Post a Comment

Related Posts Plugin for WordPress, Blogger...