26 Nisan 2012 Perşembe

Android Rom Nasıl Yapılır ?

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

Unknown

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.

0 yorum:

Yorum Gönder

 

Copyright @ 2013 Android Uygulama Türkiye.YASAL UYARI: Sitemiz, hukuka, yasalara, telif haklarına ve kişilik haklarına saygılı olmayı amaç edinmiştir. Sitemiz, 5651 sayılı yasada tanımlanan yer sağlayıcı olarak hizmet vermektedir. İlgili yasaya göre, site yönetiminin hukuka aykırı içerikleri kontrol etme yükümlülüğü yoktur. Bu nedenle, sitemiz uyar ve kaldır prensibini benimsemiştir.Telif hakkına konu olan eserlerin yasal olmayan bir biçimde paylaşıldığını ve yasal haklarının çiğnendiğini düşünen hak sahipleri veya meslek birlikleri, altuntech@gmail.com adresinden bize ulaşabilirler. Şikayet üzerine ihlal olduğu düşünülen içerikler incelenip sitemizden kaldırılacaktır.Altuntech

Tema için teşekkürler Templateism | MyBloggerLab