Android Rom Nasıl Yapılır ?

26 Nisan 2012 Perşembe Gerekli Olan Araçlar
Winrar
Not Defteri ( txt editor )
Sing Tool ( İmzalama Aracı )

Gelişmiş Araçlar
Adb ve Tar ( Odin Romu yapmak için)
De-odexer

*romdosyası*.zip İçinde bulunan klasörler (basit açıklama)
META-INF - .zip dosyasının nasıl yüklenmesi gerektiğini hangi dosyanın nereye atılması gerektiğini telefona gösteren "updater-script" dosyasının içinde bulunduğu klasör.
data/app - Telefona kullanıcı tarafından yüklenmiş programların içinde bulunduğu klasör. (rom yüklendikten sonra bu klasör içindeki uygulamalarda telefona yüklenir isteğe göre telefon açıldıktan sonra root erişimi olmadan silinebilir.
updates - Kernel ve modem dosyalarını içinde bulunduran klasör.
system/app - Sistem uygulamalarını barındıran klasör. Telefon açıldıktan sonra root erişimi olmadan bu klasör içindeki uygulamalar silinemez.
system/framework - Tema kilit ekranı batarya simgesi animasyonlar hangi butonun nerede bulunacağı gibi bilgileri barındıran klasör.
system/media - Bootanimation ve telefon seslerini barındıran klasör.


updater-script
zip dosyasının nasıl ne şekilde nereye yüklenmesini gösteren dosyadır.


Belli başlı komutlar

  • [li]ui_print - Rom yüklenirken ekrana yazı yazar.[/li]
    [li]mount - belirlediğimiz klasörü yazılabilir hale getirir.[/li]
    [li]set_perm - izinleri ayarlar.[/li]
    [li]show_progress - yükleme barı.[/li]
    [li]delete_recursive - belirlediğimiz klasörü temizler/içindekileri siler.[/li]
    [li]package_extract_dir - zip içindeki belirlediğimiz klasörden telefonda belirlediğimiz bir klasöre dosyaları aktarır[/li]


Sarper S Romunun updater-scripti (örnek):

Kod:

ui_print(" ");
ui_print(" ");
ui_print(" ");
ui_print(" ");ui_print(" ");
ui_print(" *************************");ui_print(" **** Sarper Kaya ****");
ui_print(" *************************");ui_print(" ");
ui_print(" ");
ui_print(" ");
ui_print(" ");
ui_print("Sarper S");
ui_print(" ");

ui_print(" ");
ui_print(" ");
ui_print(" ");
mount("vfat", "/dev/block/mmcblk0p1", "/mnt/sdcard");
assert(is_mounted("/mnt/sdcard"));
mount("rfs", "/dev/block/stl3", "/efs");
assert(is_mounted("/efs"));
package_extract_file("script/efsbackup.sh", "/tmp/efsbackup.sh");
set_perm(0, 0, 0777, "/tmp/efsbackup.sh");
run_program("/tmp/efsbackup.sh", "backup");

run_program("/sbin/mount", "/dev/block/stl9", "/system");
run_program("/sbin/mount", "/dev/block/stl10", "/dbdata");
run_program("/sbin/mount", "/cache");
run_program("/sbin/mount", "/dev/block/mmcblk0p2", "/data");

show_progress(0.100000, 60);

ui_print(" ");
ui_print("Sistem Temizleniyor");
ui_print("Bellek Temizleniyor");
ui_print("Gecici Ogeler Temizleniyor");
ui_print(" ");
delete_recursive("/system");
delete_recursive("/cache");
delete_recursive("/data/dalvik-cache");

ui_print(" ");
ui_print("Dosyalar Kopyalaniyor");
ui_print(" ");
package_extract_dir("system", "/system");
package_extract_dir("data", "/data");
package_extract_dir("sdcard", "/sdcard");
package_extract_dir("updates", "/tmp");

show_progress(0.100000, 10);

ui_print(" ");
ui_print("Yapilandiriliyor");
ui_print(" ");
symlink("toolbox", "/system/bin/cat", "/system/bin/chmod", "/system/bin/chown", "/system/bin/cmp", "/system/bin/date", "/system/bin/dd",
"/system/bin/df", "/system/bin/dmesg", "/system/bin/getevent", "/system/bin/getprop", "/system/bin/hd", "/system/bin/id",
"/system/bin/ifconfig", "/system/bin/iftop", "/system/bin/insmod", "/system/bin/ioctl", "/system/bin/ionice", "/system/bin/kill",
"/system/bin/ln", "/system/bin/log", "/system/bin/ls", "/system/bin/lsmod", "/system/bin/mkdir", "/system/bin/mount",
"/system/bin/mv", "/system/bin/nandread", "/system/bin/netstat", "/system/bin/newfs_msdos", "/system/bin/notify",
"/system/bin/printenv", "/system/bin/ps", "/system/bin/reboot", "/system/bin/renice", "/system/bin/rm", "/system/bin/rmdir",
"/system/bin/rmmod", "/system/bin/route", "/system/bin/schedtop", "/system/bin/sendevent", "/system/bin/setconsole",
"/system/bin/setprop", "/system/bin/sleep", "/system/bin/smd", "/system/bin/start", "/system/bin/stop", "/system/bin/sync",
"/system/bin/top", "/system/bin/umount", "/system/bin/vmstat", "/system/bin/watchprops", "/system/bin/wipe");
symlink("/system/xbin/su", "/system/bin/su");

ui_print(" ");
ui_print("Izinler Aliniyor");
ui_print(" ");
set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm_recursive(0, 0, 0755, 0755, "/system/etc");
set_perm(0, 3003, 02755, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
set_perm(0, 2000, 06750, "/system/bin/run-as");
set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");
set_perm(0, 0, 0755, "/system/etc/bluetooth");
set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf");
set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");
set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
set_perm_recursive(0, 0, 0777, 0777, "/system/etc/init.d");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm_recursive(0, 2000, 0755, 0755, "/system/vendor/bin");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 04755, "/system/xbin/su");
set_perm(0, 0, 04755, "/system/xbin/busybox");

set_perm(0, 0, 0777, "/system/etc/init.d/S98jupaengine");
set_perm(0, 0, 0777, "/system/jupa/JP_darkyramhack");
set_perm(0, 0, 0777, "/system/jupa/JP_deadline");
set_perm(0, 0, 0777, "/system/jupa/JP_juwes_ramscript");
set_perm(0, 0, 0777, "/system/jupa/JP_kernelscheduler");
set_perm(0, 0, 0777, "/system/jupa/JP_sdreadtweak");
set_perm(0, 0, 0755, "/tmp/bmlwrite");

ui_print(" ");
ui_print("Busybox Yukleniyor");
ui_print(" ");
run_program("/system/xbin/busybox", "--install", "-s", "/system/xbin");
run_program("script/wipe");

show_progress(1.000000, 0);
show_progress(0.100000, 60);
show_progress(0.100000, 10);

ui_print(" ");
ui_print("Modem Yukleniyor");
ui_print(" ");
run_program("/tmp/bmlwrite", "/tmp/modem.bin", "/dev/block/bml12");
ui_print(" ");
ui_print("Kernel Yukleniyor");
ui_print(" ");
run_program("/tmp/bmlwrite", "/tmp/zImage", "/dev/block/bml7");

show_progress(1.000000, 0);

run_program("/sbin/umount", "/system");
run_program("/sbin/umount", "/dbdata");
run_program("/sbin/umount", "/cache");
run_program("/sbin/umount", "/data");ui_print(" ");
ui_print(" *************************");ui_print(" **** Sarper Kaya ****");
ui_print(" *************************");ui_print(" ");
ui_print(" ");ui_print(" ");ui_print(" ");ui_print(" ");ui_print(" ");ui_print(" ");ui_print(" ");ui_print(" ");ui_print(" ");
ui_print("Yukleme Tamamlandi");
ui_print(" ");
run_program("/sbin/reboot");


System/app
Bu klasör içinde system dosyaları bulunuz istediğiniz değişiklikleri yapın silin uygulama ekleyin fakat bilmediğiniz uygulamalara dokunmayın yoksa telefon açılmaz. Kullanıcının silmesini istemediğiniz uygulamalarıda bu klasöre atabilirsiniz.


data/app
Bu klasöre telefona yüklenecek uygulamaları atabilirsiniz. Kullanıcı dilerse bu uygulamaları romu yükledikten sonra silebilir.


System/media
Bootanimation bu klasöre atabilirsiniz.(Kernelin ve romun bootanimation desteklemesi lazım). Audio klasöründende seslere ulaşabilirsiniz dilediğiniz gibi değişiklik yapabilirsiniz.


Framework-res.apk Düzenleme
system/Framework klasörü içinde bulunur. Winrar ile açın. res/drawable-hdpi klasörünü dışarı çıkartın tema resimlerinin içinde olduğunu göreceksiniz. Sadece uzantısı .png olanları değiştirin diğerlerine dokunmayın.
res/anim içindede animasyon verileri bulunur. güzel bir animasyon gördüğünüzde sizin telefonunuza uyumluysa bu klasöre atabilirsiniz.


SystemUI.apk
System/app içinde bulunur. Bildirim barındaki resimleri içerir. Winrar ile açın res/drawable-hdpi klasörü içindekileri değiştirebilirsiniz.

Updates

zImage yani kernel dosyası içinde bulunur romunuzun sürümüne uygun bir kernel bulun ve bu klasör içine atın. İndirdiğiniz kernel dosyası .tar uzantılıysa winrar ile açıp içindeki zImage dosyasını kopyalayabilirsiniz.

build.prop
system içinde bulunur. Firmware versiyonu Rom ismi gibi bilgileri barındırır. Not defteriyle açın. "ro.build.display.id" bölümüne romunuzun ismini girebilirsiniz.


Sarper v5.3 build.prop (örnek):

Kod:

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=GINGERBREAD
ro.build.display.id=Sarper v5.3
ro.build.version.incremental=XXJVK
ro.build.version.sdk=10
ro.build.version.codename=REL
ro.build.version.release=2.3.3
ro.build.date=Sun Mar 20 14:46:30 KST 2011
ro.build.date.utc=1300599990
ro.build.type=user
ro.build.user=se.infra
ro.build.host=SEI-28
ro.build.tags=release-keys
ro.product.model=GT-I9000
ro.product.brand=samsung
ro.product.name=GT-I9000
ro.product.device=GT-I9000
ro.product.board=GT-I9000
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=samsung
ro.product.locale.language=en
ro.product.locale.region=GB
ro.wifi.channels=
ro.board.platform=s5pc110
# ro.build.product is obsolete; use ro.product.device
ro.build.product=GT-I9000
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=GT-I9000-user 2.3.3 GINGERBREAD XXJVK release-keys
ro.build.fingerprint=samsung/GT-I9000/GT-I9000:2.3.3/GINGERBREAD/XXJVK:user/release-keys
# Samsung Specific Properties
ro.build.PDA=I9000XXJVK
ro.build.hidden_ver=I9000XXJVK
ro.build.changelist=75655
ro.flash.resolution=720
# end build properties
#
# system.prop for smdkc110
#

rild.libpath=/system/lib/libsec-ril.so
rild.libargs=-d /dev/ttyS0
ro.sf.lcd_density=240
dalvik.vm.heapsize=64m
ro.opengles.version=131072

# Samsung USB default mode
persist.service.usb.setting=0

#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.opengles.version=131072
ro.config.ringtone=01_Minimal_tone.ogg
ro.config.notification_sound=01_Sherbet.ogg
ro.config.alarm_alert=Good_Morning.ogg
ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html
ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html
ro.com.google.locationfeatures=1
ro.setupwizard.mode=DISABLED
ro.com.google.gmsversion=2.3_r1
wifi.interface=eth0
wifi.supplicant_scan_interval=15
ro.secdevenc=true
keyguard.no_require_sim=true
ro.com.android.dateformat=MM-dd-yyyy
ro.com.android.dataroaming=false
ro.ril.hsxpa=1
ro.ril.gprsclass=10
ro.config.notification_sound=OnTheHunt.ogg
ro.config.alarm_alert=Alarm_Classic.ogg
media.stagefright.enable-player=false
media.stagefright.enable-meta=false
media.stagefright.enable-scan=false
media.stagefright.enable-http=true
media.stagefright.enable-rtsp=false
dalvik.vm.dexopt-flags=m=y
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt


Bundan sonrası sizin yaratıcılığınıza ve merakınıza kalmış nekadar çok karıştırır araştırırsanız okadar iyi romlar yapacağınızı düşünüyorum.



Gerekli Dosyalar - Sarperkaya@minus
Şifre sorarsa: androidgelistiricileri.com

0 yorum:

Yorum Gönder

 
 
 

İletişim

Skype: berkahmetkirca