[Galaxy 3 Android Development] g3mod:
Steps for Multi boot:

1) Flash Kernel v1.7+

2) Go to CWM Recovery -> Multiboot -> Backup ROM.

3) Backup your Current ROM to ROM1 (It will backup the system.img at /sdcard/Android/data/g3mod/roms/romname_ROM )

4) Add the system.img of your 2nd ROM to /sdcard/Android/data/g3mod/roms/romname_ROM and similarly for different ROM's.

5) Use the CWM Recovery -> Multiboot -> Switch ROM option to switch between different ROM's.

6) If switching between Froyo ROM and CM6.2 RoM, you will need to wipe data and also change kernel's via update.zip method.

7) Use the data backup and restore option to prevent loss of data when switching between Froyo and CM6.2 ROM's.

Note: Ask the developer of the ROM's to provide you with the system.img for their ROM

How to use Hybrid Data2SD

1) Connect your phone via ADB

2) Go into adb shell

3) Type 'echo hybrid > /sdcard/Android/data/g3mod/fs.data2sd'

4) Create a text document in Notepad with a list of all the directories you wish to move. Example:

app
log
dalvik-cache
---LEAVE A BLANK LINE AT THE END---

5) Save the file and call it 'data2sd.dirs'

6) Do 'adb push data2sd.dirs /sdcard/Android/data/g3mod/'

7) Reboot your phone

8) Once your phone has booted, run 'adb shell cat /data2sd.log' to ensure it is running correctly.

How to enable Multi Data

1) Connect your phone via ADB

2) Go into adb shell

3) Type 'echo 0 > /sdcard/Android/data/g3mod/multiosdata'

4) Multi Data will automatically backup your data upon booting into a different OS.

Make sure to not wipe your SD-EXT partition. Doing so will erase the backups from other firmware. Only wipe it if you wish to erase data for everything.

You can also use Multi Data to quickly restore data if your phone has become corrupted. It will restore it back to the last multi-boot switching

1) Connect your phone via ADB

2) Go into adb shell

3) Type 'echo 0 > /sdext/lastos'

4) Reboot the phone

Directories for Multi boot:

//ROM Dir

__system("mkdir /sdcard/Android/data/g3mod/roms/CyanogenMod6_ROM");

__system("mkdir /sdcard/Android/data/g3mod/roms/CyanogenMod7_ROM"); //Add CM7 Support

__system("mkdir /sdcard/Android/data/g3mod/roms/G3MOD_ROM");

__system("mkdir /sdcard/Android/data/g3mod/roms/Kyrillos_ROM");

__system("mkdir /sdcard/Android/data/g3mod/roms/Grigora_ROM");

__system("mkdir /sdcard/Android/data/g3mod/roms/AOSP_ROM");

__system("mkdir /sdcard/Android/data/g3mod/roms/DutchMods_ROM");

__system("mkdir /sdcard/Android/data/g3mod/roms/Kyorarom_ROM");

__system("mkdir /sdcard/Android/data/g3mod/roms/Indroid_ROM");

__system("mkdir /sdcard/Android/data/g3mod/roms/rom1_ROM");

__system("mkdir /sdcard/Android/data/g3mod/roms/rom2_ROM");

__system("mkdir /sdcard/Android/data/g3mod/roms/rom3_ROM");

__system("mkdir /sdcard/Android/data/g3mod/roms/rom4_ROM");

//Data + sd-ext Backup Dir

__system("mkdir /sdcard/Android/data/g3mod/data/Froyo_DATA");

__system("mkdir /sdcard/Android/data/g3mod/data/CM6_DATA");

__system("mkdir /sdcard/Android/data/g3mod/data/CM7_DATA");

//Kernel dir

__system("mkdir /sdcard/Android/data/g3mod/kernel/Froyo");

__system("mkdir /sdcard/Android/data/g3mod/kernel/CM6");

__system("mkdir /sdcard/Android/data/g3mod/kernel/CM7");

How to configure compcache:

If you want to use default configuration (as up to now.. 62 MB aprox.), you don't have to do anything different as what you have been doing. But if you want to use a more/less memory, here are the steps:

Inside that /sdcard/Android/data/g3mod/compcache file, write ONLY the number of MegaBytes you want to use for compcache.

Reboot.

If compcache file is empty or contains a "0" inside, it will use default configuration.

How to: BLN

This is only "needed" if you have a i5801 | i5800L or any other Galaxy 3 model with back button lights and want BLN in it.

How to install:

First, download the lights.GT-I5800.so file from google code. Then execute this commands:

adb remount (or if this doesn't work: mount -o remount,rw /dev/stl6 /system)

adb rm /system/lib/hw/lights*

adb push [Location of this file] /system/lib/hw

After that, reboot and now you have BLN working :)

Steps for Changing the Max Freq(Dynamic OC):

There is an entry in /sys/devices/system/cpu/cpu0/cpufreq/plls_table where you can put your own value for APLL.

Before doing this, set "PERFORMANCE" governor on and min and max frequencies to the maximum.

// Do this in adb
echo "0 a[SIZE="5"][B][U]258[/U][/B][/SIZE]0[SIZE="5"][B][U]3[/U][/B][/SIZE]01 a14d0303 c07e13fc cf850240" > /sys/devices/system/cpu/cpu0/cpufreq/plls_table

You need to replace the 258(Hex Value) with your desired value.

Here 258 means

(2*16*16) + (5*16) + 8 = 600

and 3 means it is 600*2 = 1200

Therefore, a2580301 means 1200MHz.

This is a temporary method. For a permanent Method, add this line to a init.d script. Name the script to something like S10_Dyanmic_OC.

Help Others: If you calculate a Hex Value for a particular frequencies add it here:

https://docs.google.com/spreadsheet/viewform?formkey=dG5hdnpsWFdTNExiY2t3dy16VzBvaWc6MQ

You can view all the frequency Hex value's calculated by others over here:

https://docs.google.com/spreadsheet...G5hdnpsWFdTNExiY2t3dy16VzBvaWc&hl=en_US#gid=0