[Q] Creating Custom ROM - General Questions and Answers

Hello, I'm new to all this Android stuff (I don't even have a phone yet, but its on it way)
I have been reading up on custom ROM creation but there are some things I don't quite understand.
Let's say I have a phone in Android 2.3. I want to create an Android 4.0 ROM to put on the phone.
Now... to compile Android 4.0 I need the drivers for my phone (which I doubt I will ever have access too since its only a cheap Android with a MediaTek CPU)
So I have a 2.3 ROM that contains all the compiled drivers and the Android 4.0 source code.
Is it possible to compile 4.0 and replace the zImage (if I'm correct) with the 2.3 zImage. From what I have read, that's where all the drivers are stored.
I guess its not that simple since I also think the zImage contains the OS. If so, is it then possible to extract the zImage and replace the invalid driver files in 4.0 with the correct drivers from 2.3?
Also, I think my phone will arrive with an annoying UI, is it possible to just get any 2.3 ROM (that doesn't have an annoying UI and shares the same CPU as my phone) and replace the zImage in that with my phones 2.3 zImage?
Sorry, if my questions are stupid but this is all new to me. I've tryed to read up on this but nothing is straight to the point.
Thanks

Anyone there?

try out some roms first. see what you like and dont like. it'll probably give you a better idea for how you would make your own rom.

I don't think you could just port an entire zimage to ICs and say it will work (it might not even compile i think). It won't work. You could probably take some drivers' code (screen, speaker, etc), modify them a bit so it compiles, and test to so if it works. You more than likely have to modify the ICS code also so it works. And the zimage is just the kernel no? And the kernel really only has to do with low level system processes, drivers, etc. I think UI's and such are more fitted in frameworks and such.
Personally if it was so easy to port ICS by simply replacing the zimage or file with another, ICS would have been ported to many devices, fully working, by now.

Kailkti said:
I don't think you could just port an entire zimage to ICs and say it will work (it might not even compile i think). It won't work. You could probably take some drivers' code (screen, speaker, etc), modify them a bit so it compiles, and test to so if it works. You more than likely have to modify the ICS code also so it works. And the zimage is just the kernel no? And the kernel really only has to do with low level system processes, drivers, etc. I think UI's and such are more fitted in frameworks and such.
Personally if it was so easy to port ICS by simply replacing the zimage or file with another, ICS would have been ported to many devices, fully working, by now.
Click to expand...
Click to collapse
Yeh, but my problem is I don't have the drivers for the phone. I just have the stock ROM that come with it.

Is not that simple. I am 99% sure that you can't do that.

The phone I'm getting has a horrible theme on it. Its running Android 2.3
I have the ROM for a very similar phone (also using Android 2.3), uses the exact same CPU so it should be compiled using the correct platform.
Is it possible to use that phones ROM but replace it with my phones Kernel and .prop (so it has all my phones drivers and settings etc...)?

the hard work required in making a custom rom
I think you can take from the stock rom and compared with existing custom rom
but some sources are not shared freely as an example Tegra
CMIIW

I will mess about with the ROM when I get my phone. Hopefully I wont brick it...

I too am fairly new to android. I spent a couple weeks reading and watching TONS of youtube videos on how to ROOT and Unlock my bootloader. My best advice from one n00b to another would be to do the same. In particular...research how to do it on YOUR phone. Also, Roms are device specific. I recommend you finding the forum here on XDA for your phone and read up on whatever ROMS are available here. This might not be the ONLY place to find ROMS, but this place simply rocks! Once you get your device rooted and if necessary, your bootloader unlocked...you can easily try out any ROM without much fear. Just make a good backup...make sure you also have a factory recovery image too...just in case. For backups...if you install and use Clockwork Mod (CWM) you can use the nandroid backup it offers. I bought Titanium backup from the market and used it to do a full backup before I started...it backs up to dropbox even, which was a nice feature for me. Extra safety so incase I hosed my external SD card which had my backups...I could easily retrieve a backup ANY place that had internet access. Lastly...get ready to have some FUN! Flashing ROMs is VERY addictive!! :-D

Ok, Thanks. I will see what I can do then.

Related

[HOW TO] Porting ROM from another device?

I want to port some ROM from 32B to my 32A. I am new in this Android ROM Development section, but I have some knowledge. In WM I used to cook ROMs every day (Link), also I have managed to create Hero port for HTC Niki device (Link).
I have some procedure in mind:
1. Extract system.img from ROM which I want to port
2. Extract boot.img from ROM which I want to port (with AmonRA porting tools)
3. Replace boot.img-kernel with the one from my stock boot.img
4. Rebuild boot.img
5. Build update.zip, sign it and flash
- Now, before I create update.zip I have some questions:
* Do I need to replace wlan.ko with the one from my stock ROM?
* Do I need to replace build.prop?
* And what else?
AmonRA in his tutorial, has explained everything, but his porting is just for boot.img, and I am guessing that his nk02ion_r4 (system folder) is already prepared for 32A.
Thanks in advance?
You'll definitely need to replace wlan.ko, otherwise your wifi won't work. As for what other changes you may need to do - there's no universal way to do it, it varies from ROM to ROM (that is if you want to retain all or at least most of the functionality of the original ROM). In some ROMs, for example, I had to modify the ramdisk image slightly. In other, I had to replace a few of the system tools with my own compiled one to get the functionality I wanted back. Or remove a few files that work on 32B/G1 but create unnecessary problems on 32A (like HeroLED.apk). And then of course after such changes you may need to modify the update-script accordingly.
One thing that bothered me to the extent that I even started with compiling kernel and creating "porting packages" myself was that when porting, people often just replaced the kernel image itself (boot.img-kernel) and wlan.ko while other kernel modules were left unreplaced (because the person porting the ROM probably didn't even have them available), therefore many things from the original ROM were not available in the port. Case in point - compcache: whether we need it or not on 32A is another thing, but I believe that if it's supported in the original ROM, we should have the option to use it even on 32A should we want to try it.
I understand it's better to port this way rather than not to port at all (and I've done this myself, yes, guilty as charged), but it's still quite wrong to me to simply create "mashups" where ramdisk belongs to one ROM, kernel to another one and kernel modules to yet another one. It's easier, but it's not the right way to do it if you can prevent it.
Case_ said:
You'll definitely need to replace wlan.ko, otherwise your wifi won't work. As for what other changes you may need to do - there's no universal way to do it, it varies from ROM to ROM (that is if you want to retain all or at least most of the functionality of the original ROM). In some ROMs, for example, I had to modify the ramdisk image slightly. In other, I had to replace a few of the system tools with my own compiled one to get the functionality I wanted back. Or remove a few files that work on 32B/G1 but create unnecessary problems on 32A (like HeroLED.apk). And then of course after such changes you may need to modify the update-script accordingly.
One thing that bothered me to the extent that I even started with compiling kernel and creating "porting packages" myself was that when porting, people often just replaced the kernel image itself (boot.img-kernel) and wlan.ko while other kernel modules were left unreplaced (because the person porting the ROM probably didn't even have them available), therefore many things from the original ROM were not available in the port. Case in point - compcache: whether we need it or not on 32A is another thing, but I believe that if it's supported in the original ROM, we should have the option to use it even on 32A should we want to try it.
I understand it's better to port this way rather than not to port at all (and I've done this myself, yes, guilty as charged), but it's still quite wrong to me to simply create "mashups" where ramdisk belongs to one ROM, kernel to another one and kernel modules to yet another one. It's easier, but it's not the right way to do it if you can prevent it.
Click to expand...
Click to collapse
Thanks Case_. I am new to linux and I love Android, but this seems to be very hard to understand. Is there any way to set up kitchen (or something similar), or I need to compile from source (but I have no idea how to port ROM with this method)?

Load a different OS from the SD card? (MeeGo)

Hi,
I know there was done some work on dualbooting the HTC Dream, enabling you to launch a different OS of the SD card.
What exactly is needed to accomplish this? And was the methods used able to load a different kernel alltogether, or just lanch another useland using the kernel from your current ROM?
I have both a Dream and a Desire, and would like to try and get Meego running on one of them. (Maybe finding my way on the Dream, which is not my primary phone anymore, and then on the Desire when I have figured it a bit more out.)
MeGo uses the 2.6.34 kernel, which I believe several Froyo ROMS use too.
The first thing I will do, is to try to run it with minimal modification to the kernel found in an existing Dream ROM, o avoid adapting the Meego kernel to support the neccessary hardware, as the ARM-release is made especially for the N900, and probably doesn't have that wide a hardware support.
But where would I change the kernel to boot? I guess it is not really possible to modiy the bootloader in the device directly (uboot sure would be nice ), so I guess it has to be done in initramfs or similar? Not really familiar with how phones do this.
thats wt i wanted to try on my cliq too! Do u have the rom for meego?
There is no ROM of MeeGo, which is why i need to load kernel/userland from SD card. I have asked for the ARM-release of MeeGo here, but the reply wanæt very helpfull.

[Q] ROMs vs Kernel Compile and Upgrade

Hello.
I am wondering about the distinct difference between updating Android devices (I have a Samsung Captivate) vs how it is done in linux. It has been a couple of years since my lat linux box, but the process was distinctly different. Specifically, we could get the source to the kernels and all of the modules that we wanted and compile them for added capabilities. Moreover, the file system (data, apps, etc) were all separated from the /boot partition. If a kernel didn't work, it was no problem to boot into the older kernal and try and fix the new one. Never did we have to destroy all of our data to try new kernels, modules, etc.
Why is this so different for Android? Specifically, why do we have to reflash the whole ROM destroying everything else in the process? Is there another way to do this that I am missing or what is the difference that causes this to be necessary?
Thanks so much for the feedback...
would also like to know this one..
Ok, following up on the original inquiry...
Samsung has dropped the 2.2 source for the Galaxy S. Should this source be configurable for any of the Galaxies (i.e. Captivate?) or do we need to wait for specific Captivate source? Also, can the kernel be recompiled and replaced by itself or does the whole ROM need to be flashed? I'm still confised to why this process seems so much more limited than the typical linux cycle...
If i flash a Bad Kernel and my Phone dont boot. ( HTC Desire)
I can flash the old Kernel and it will boot again No need for ROM reflash....

Some general ROM/Kernel questions from a newbie

Hi, I am a relative newbie to ROM flashing and the like. Additionally I dont have a very deep computer knowledge base. I have rooted my Samsung Captivate and have flashed a ROM (which flashed properly, but didn't quite work). I have three questions about ROM usage and such:
1. I know kernels basically add aspects to the ROM you are running, but when should you flash these? How do you flash them (same process as with ROMs? do you just do it over-top of the Rom you currently have loaded? etc...)
2. If a newer version of the ROM you have running comes out, do you have to start over and completely wipe the device over again and do the whole process from start, or can you load a newer version of your current ROM over the one you have?
3. I have been hearing/reading about some problems with the Android Market disappearing on certain ROMs when the market updates, how can i avoid this/fix this?
Thanks. Sorry the basic/stupid questions.
1. Yes
2. There are WIPE versions and NO WIPE version. Usually you can use the NO WIPE version and keep everything. But sometimes if the roms are too different you get problems and errors, then it is recommended to flash a WIPE version.
3. Hm did not experience this yet, but there are fixes somewhere .
Whats up... No question is a stupid one buddy.... (Sometimes )
To answer your first question about kernels. Flashing kernels aren't a must. You don't have to flash them really, unless there is a need. Kernels for the most part can often change the way Android handles stuff like memory management, battery resources and even multitasking. They change (tweak) the way the Android OS itself interacts with the phones hardware. That's all a kernel is really. So read up on them before flashing them because each has their advantages and disadvantages. For example, the kernel I use gives me a good RAM boost and much better battery life but it suffers on the multitasking side and I have to do other stuff to compensate for that. That's how it is. As far as flashing them is concerned. That depends. Usually, you just flash them through recovery (Like a ROM) but I would suggest you follow the instructions they give you (if it exists).
Your second question is simple. Just follow the instructions they give you for installation. Some ROMS require a full wipe and others don't. It just depends on the ROM. When in doubt, follow the instructions (again if it exists).
Your third question is a weird one, I've never heard about that really. BUT.... Some ROMS may or may not include the GAPPS applications (Google Apps).
If the ROM you flash doesn't have Google Apps built in, it would literally be missing. You would have to flash it separately. Usually in those cases though, at the download location for that ROM, they would also provide links for GAPPS zip files to flash separately so you can have the option to go with Android Market, Gmail and such OR you can use an alternative. Short of that..... never heard of that issue before..... If the issue is happening after the Market app updates, in that case it might be some type of ROM issue, you'll probably have to somehow get the updated Vending.apk (Android Market) remove/backup the original and reinstall it manually (the way you would a regular apk). I'm guessing though....
Don't you just love research........
Thanks. And now, inevitably, answers lead to more questions.
With regards to kernels, how do I know which one's do what, are compatible with which ROMs etc. I feel like its the kinda thing that needs a giant database for them, but i know there isn't.
Also, is the process for flashing other .zip files the same (though either Rom manager or a built in Recovery option). For example, a bootanimation.zip?
Ultimately I hate the idea of asking overly simply questions, but I just don't know what I dont know, nor what is supposedly implied. Thanks.
Don't sweat it...... I'm in the same boat so I have no hangups....
I think I know what you mean when it comes to kernels. Ultimately, learning about kernels requires a lot of reading in many forums (Just like this one)... Why?.... Because in many instances the persons posting the kernels might not always give you an exact breakdown on exactly what it does..... so I understand. Your best bet would be scanning XDA. I've found all sorts of really excellent kernels lying around and the devs here love documentation so there is a good chance you'll know what it does...
You could also try DroidBasement: http://droidbasement.com/db-blog/
They actually have just what you wanted, a database....kind of. They have a very large variety of kernels for different devices so its a good place to start as well.
They also tend to do a breakdown of what each kernel is capable of, the device it should be used on and so on.
About flashing zip files. Generally speaking, most zip files are flashed through recovery but its not written in stone. Following the instructions concerning said zip files are always very important. Always look for instructions before you do so at least at first. In the case of bootanimation.zip.... They are not always flashable. But if it is flashable, you can flash it through recovery which would be the best method....
If you want though, you can replace the original bootanimation.zip file with the new one manually, once you have root and some type of root explorer (for example RootExplorer for Android).
Generally, the boot animation directory is usually, /System/Media so you can check to see if its there and if it is, just backup the original and replace it with the new one.... That should work... Always nandroid before doing so though.... before doing anything really....
Thanks. I actually had a question about nandroid but forgot. Basically, what is it. I realize contextually that it's a backup program and apparently works through the recovery menus. I read a ROM flashing step-by-step that mentioned it but couldnt figure out where to get it (not in the market unlike Ti-bu which i use currently).
Nandroid is a backup program that basically creates a flash image of your phone... If you've ever heard of "Ghosting" or "Imaging" a Hard Drive, its exactly the same thing.
Its really as good as it gets as far as data backup is concerned. Its also a low level backup, so even file structures would be recorded.. In other words, you can completely screw up your phone (file partitions everything!!!!) but once you can boot to recovery, your phone can be restored. That's why its so important because its your safety net....
Its not something that you can install like an apk, so its not in the market.
You would have to flash a custom recovery. If you have one already, it should be located in one of the menus (It changes depending on the type (brand) of recovery).
If you don't see the option in your recovery then its probably not custom and you're going to have to do some digging on these forums and maybe a bit of googling for instructions on exactly how to do so. Because it could change from device to device.
Nandroid also allows you to backup your sd-ext partition as well, so if you switch cards, you can restore to another card.... Its really incredibly handy and I wouldn't suggest you do anything until you can create nandroid backups....
Now, I'm having an interesting problem I posted this same thing in general Captivate forums but maybe someone who is looking at this/answering me knows. here's what i posted there:
have a Captivate that I recently flashed Di11i's 7.1.1 to, before that I had flashed my first ROM which was Serendipity 6.2. Both times I have found that I don't get incoming calls. People calling me get 2-3 rings, and then a traditional "busy signal" sound. On my end, either the phone vibrates once but the screen doesnt change from whatever screen I'm on. Or, The screen goes black like its going to the incoming call screen, but the black screens only flashes and goes away, as does a force close message box that goes away quickly without me clicking it.
Everything else on my phone works as far as I can tell, I've been running my current ROM for about 5 days without issues other than this one. This same exact problem also happened when I flashed Serendipity 6.2 (which I only kept for like a day because of this problem)
Ok....I currently use a G1 and most of my experience has been on HTC Devices. I'm not sure of how to reply to this as I have never really modded Samsung devices before. So I'm not really familiar with software and hardware differences (Like Bootloader, Recoveries, Radios and such). But based on what you're describing.... It sounds like a ROM or maybe a radio issue. Maybe its an issue with the phone app itself. If the app is somehow buggy then thats exactly what would happen. When the phone rings the phone app would try to run but then force close....
I'm guessing here, but it could also be a radio issue because you're getting a busy tone as well which is not good. Maybe the ROM requires a specific Radio version BEFORE its flashed.... Check the source of the download and determine if it requires a specific Radio version.
In my experience though, if the correct radio version isn't used for a ROM that requires it, the phone just won't boot..... but then again, I don't know what would happen on a Samsung Captivate.... Not sure if I can help on this one because I don't have any info on that type of hardware. I don't own one you see.....
What about if you found out a new kernel isn't as good as the old kernel, how would you go on to take away the new kernel to replace it with the old kernel? Is it the same process or even harder?
vlen22 said:
What about if you found out a new kernel isn't as good as the old kernel, how would you go on to take away the new kernel to replace it with the old kernel? Is it the same process or even harder?
Click to expand...
Click to collapse
NOW THIS IS ANNOYING..
u have to flash ur rom again..
but fortunately u dont need to do and wiping data or partitioning sd card.. jus flash rom..
Its not something that you can install like an apk, so its not in the market.
zeemar007 said:
NOW THIS IS ANNOYING..
u have to flash ur rom again..
but fortunately u dont need to do and wiping data or partitioning sd card.. jus flash rom..
Click to expand...
Click to collapse
The rom kernel that I downloaded, or flashing clockwork recovery mod? Like adrenylyne's kernel for the thunderbolt.
EDIT: Never mind, I found out. I didn't mean any harm if MY POST was annoying.
If you have two kernels, in a flashable zip, you can just flash them over each other to exchange them (turn off any modification the kernel did befor though, like lagfix).
New question, I had an app (quick office) that came on my captivate. Now that I've flashed di11i's 7.1 I don't have it anymore. This is particularly peculiar because all the other native apps are still here:samsungs media player from example. How do I go about getting this missing app back on my phone. I have all the backup files on my computer so I should have the .apk (although I'm not entirely sure how to install those properly) thanks
Sent from my SAMSUNG-SGH-I897 using XDA App

Meaning of Custom roms, kernels etc.

Can anyone explain me the meaning of 1.Custom Roms
2.Kernels
3.CMW Recovery
Also Does any Custom Rom allows me to change the boot animation?
Any help would be appreciated.
OK Im goin to try
Custom ROM - you could think of it as modified version of android. Stock ROM is ROM that comes with your phone when you but it. Custom ROMs are mostly debloated (without crap apps that just slow you phone etc. and they are tweaked to run more efficiently)
Kernel is a piece of software that is a core of your OS and basically mediates comunication between hardware and applications.
CWM Recovery is a "upgrade" of default recovery. It enables you to do NAND Backups and Restores of your whole phone, and many other great features that you cant do on default recovery. Its very powerfull tool
OK I hope that this will help you
Sent from my HTC Wildfire S using xda app-developers app
pansysk75 said:
Can anyone explain me the meaning of 1.Custom Roms
2.Kernels
3.CMW Recovery
Also Does any Custom Rom allows me to change the boot animation?
Any help would be appreciated.
Click to expand...
Click to collapse
I'm new to the Android/Rooting community so take everything I say with a grain of salt. I'm still learning, but this is what I've learned in the past month of tinkering with this stuff:
1) A custom ROM is like a custom version of the software you interact with. Android by itself is not configured to each specific device it is installed on. So, the manufacturers (like Acer, Asus, Samsung, etc) take that android compilation and configure it for the devices they sell. Each of these configurations is different and some of them prevent you from having full functionality, whereas others might be bloated/slow/need other tweaks. Enter some awesome guys here on the XDA-forums and other places who took these manufacturer-specific installs and stock installs and customized them to enhance performance, battery life, change the look and feel, and offer various tweaks & fixes.
2. A kernel is the underlying code that runs the operating system. I haven't messed with this stuff yet, I don't know much about it, and if you don't know anything just DON'T mess with it. Breaking the kernel will completely prevent you from using your device (I'm applying my computer knowledge to assume the Linux/android kernel operates on the same principles as computers)
3. CWM recovery stands for clockwork mod recovery. Basically, these stock tablets and devices include a "recovery" module built-in that lets you backup your tablet and hopefully restore it in case things go horribly, horribly wrong. CWM is an after-market/3rd-party recovery that has a TON of functionality and is very well-supported and updated. Most tutorials assume you HAVE CWM recovery installed so its a pretty awesome and pretty important program to have. The CWM recovery wiki has more information depending on your model of device.
I hope this answers your questions, and if I am mistaken in any aspect I encourage another member to correct me.
Thanks,
Opethfan89
This link explains all kinds of android terminology. I was incorrect about a few things, glad I found this: link here
Thanks for your time!
pansysk75 said:
Thanks for your time!
Click to expand...
Click to collapse
as for your other question about bootanimations....you only have to be rooted to install a boot animation. and depending on the original location (some manufacturers put it in system/media orthes in a non-root required location)
find an animation you like, download it, use root explorer or another file explorer and copy it to the system/media folder and change permissions to rw/r/r and reboot and it will play the new animation.
there are also apps on the market (Rom toolbox) that has a TON of tablet specific animations, it will download them, and install them for you....and as long as you are rooted you just have to sit back and relax

Categories

Resources