Jump to content

How can I create a custom rom for samsung galaxy?


Guest HiTBuLL

Recommended Posts

Guest HiTBuLL

hi guys,

i am just 15 yo but i want to create a custom rom for my samsung galaxy.how can i do this?is there any document about that?

many thanks

Link to comment
Share on other sites

Guest L00N3YB!N

I would like to know the same.

Are there any tutorials that show how you can mod the firmwares and what skills are required, ie; do you need to know alot about C/C++.

Also will there be much problems using a Linux OS to do these as most stuff I have seen is for Windows

Link to comment
Share on other sites

  • 1 month later...
Guest BigBearMDC

I don't know if you are talking of the Samsung Galaxy Spica or the Samsung Galaxy S. It doesn't really matter though because both are Android handsets.

Basically, there are those 4 things you need for a custom ROM:

  1. a custom Recovery image
  2. a rooted kernel
  3. a dump of the system memory/ any other original (or custom) ROM
  4. a MAC or PC, it doesn't matter if you use Windows or Linux

The first thing you'll need is a ROM. If you only have the original shipped ROM you'll have to unpack it first. If you don't have a original ROM you'll have to dump your system and data partitions.

Therefore you need adb. You can make a dump of the partitions using a command like this:

adb shell cp /dev/block/mtdblock1 /sdcard/system.img
This will dump the system partition to your SD card, placed in the file system.img. mtblock1 is the partition you want to dump. So it is possible that mtblock1 is not your system partition. You'll have to find this out on your own. If that's done do the same for your data partition. When you have the images ready you'll have to extract them. Usually you do this with a binary called unyaffs. This application is only available for Linux (as far as I know) as its part of the Android source. You will find information about it on google. Once you got all the files, move them to your working directory, saving the ontent of the data partition in ~/working-dir/data and the content of the system partition in ~/working-dir/system. Furthermore you'll have to create this folder structure: ~/working-dir/META-INF/com/android/google. You can leave the META-INF directory empty, that's where AndroidSign will put the MANIFEST file etc. in. But you'll have to create the file "update-script" and store it in ~/working-dir/META-INF/com/google/android. More on that later. Next, you'll have to add all those applications that you want to be in your custom ROM. Also, you'll have to add the su binary to ~/working-dir/system/bin, the busybox binary to ~/working-dir/system/xbin and the Superuser application to ~/working-dir/system/app. You might also add stuff like A2SD or a different music player etc. If you have done all the changes to your ROM you have to add the boot image. It has to be stored in your working directory: ~/working-dir/boot.img (the boot image should at least be rooted). Now head over to the android (~/working-dir/META-INF/com/google/android). The name of the update-script explains already what it does: it just tells the recovery image what to do with the files that are in the ROM. It tells the recovery image to first format the partitions, copy over the files, set the right permissions and copy over the boot image. The most difficult part of creating an own custom ROM is without a doubt the update script. But there are tools on the net that can do this for you. A proper update script should look like this:
assert compatible_with("0.2") == "true"
show_progress 0.500000 0
format SYSTEM:
copy_dir PACKAGE:system SYSTEM:
delete DATA:app
copy_dir PACKAGE:data DATA:
symlink busybox SYSTEM:xbin/[
symlink busybox SYSTEM:xbin/[[
symlink busybox SYSTEM:xbin/arp
symlink busybox SYSTEM:xbin/ash
symlink busybox SYSTEM:xbin/awk
[...]
symlink toolbox SYSTEM:bin/stop
symlink toolbox SYSTEM:bin/sync
symlink toolbox SYSTEM:bin/top
symlink toolbox SYSTEM:bin/vmstat
symlink toolbox SYSTEM:bin/watchprops
symlink toolbox SYSTEM:bin/wipe
set_perm_recursive 0 0 0755 0644 SYSTEM:
set_perm_recursive 0 2000 0755 0755 SYSTEM:bin
set_perm 0 3003 02755 SYSTEM:bin/netcfg
set_perm 0 3004 02755 SYSTEM:bin/ping
set_perm 1001 1005 0444 SYSTEM:etc/AudioPara4.csv
set_perm_recursive 1002 1002 0755 0440 SYSTEM:etc/bluez
set_perm 0 0 0755 SYSTEM:etc/bluez
set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf
set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks
set_perm_recursive 0 2000 0755 0750 SYSTEM:etc/init.d
set_perm 0 0 0755 SYSTEM:etc/init.d
set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh
set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp
set_perm_recursive 0 2000 0755 0755 SYSTEM:xbin
set_perm 0 0 06755 SYSTEM:xbin/librank
set_perm 0 0 06755 SYSTEM:xbin/procmem
set_perm 0 0 06755 SYSTEM:xbin/procrank
set_perm_recursive 1000 1000 0771 0644 DATA:
set_perm 1000 1000 0771 DATA:app
set_perm 0 0 04755 SYSTEM:bin/su
show_progress 0.200000 0
show_progress 0.200000 10
write_raw_image PACKAGE:boot.img BOOT:
show_progress 0.100000 0[/code]

No that we have all the files that we need, we'll have to pack this into an update.zip. Save the whole ~/working-dir in an uncompressed zip image. After that you'll have to sign the ROM. I recommend you to use AndroidSign (google will help). Once the ROM is signed copy it to your SD card, boot into recovery and flash it. That's all :P

Best regards,

BB

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.