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.
I'm trying to get Ubuntu installed on my phone using the chroot/vnc method. Please don't refer me to the official Ubuntu for Android page.
The issue I'm running into it seems is that the kernel on my ROM (Glorious Overdose with Platypus Egg Kernel) does not support loop device, so I've hit a wall.
If there is a kernel available for our phone which does support loop devices a link would be highly appreciated, since it seems that virtually all of the existing links to ROMS, kernels and mods are 404ing.
This kind of sucks because my last phone, an LG Optimus was able to run Ubuntu, but it was too slow to really be useful. I'd really like to be able to get more out of my new Sidekick.
bump. Seriously, not a single response? Stock kernel doesn't have it. Bali kernel doesn't have it. Platypus Egg Kernel doesn't have it. Any way to incorporate it into the kernel?
This may be the wrong place to ask, but how does one go about building/modding an Android kernel? I've compiled Gingerbread to run on a netbook successfully before and I've modded the regular Linux kernel (added drivers for odd hardware, etc) many times before so it shouldn't be that different. Maybe it's time to get into ROM cooking.
Download the source from opensource.samsung.com, extract the ramdisk from a working kernel, rebuild with whatever changes you want.
As of now, no kernels that are released for the Sidekick include loop support.
Noob-un-2: I took a look again at this, and found that loopback is already enabled, but the mount is an actual binary, rather than being linked from busybox. you should be able to mount an image to a dir through loopback with the following command:
busybox mount -o loop /sdcard/myimage.img /mnt/mount_dir
(assuming that /mnt/mount_dir already exists, if it doesn't, create it).
[Kernel][Ref] Samsung Gravity Smart SGH-T589 Technical info & custom kernel project
The Samsung Gravity SMART is a low-midrange Froyo-based Android phone. It hasn't gotten a lot of attention because it's on an unpopular carrier (T-Mobile) and LOL QWERTY KEYBOARD. I intend to change that.
Technical Specifications
Below is information I've gleaned from spec sheets, Internet research, and judicious use of a loupe on my wife's broken phone.
Platform: Qualcomm S1 Snapdragon 7227 @ 800Mhz
CPU: ARM1136EJ-S
Touchscreen: ATMEL mXT224E
WiFi: Broadcom 4329
GPU: Adreno 200
RAM: 320MB, 275MB accessible
Bluetooth: ???
[more later--I'm at work and don't have all my notes]
Kernel development
I don't have anything to release yet. As a proof-of-concept, I've successfully compiled the sources provided by Samsung. It boots, but two big issues prevent me from releasing anything:
The coordinates on the digitizer are inverted--i.e. tapping the top left corner activates the bottom right, and vice versa.
The menu, back, and search capacitive buttons don't work at all.
Upcoming Features
Here's what I'm planning to add to the kernel once driver issues are resolved:
More CPU frequency scaling options
More scheduler/governor options
What's not planned
Gingerbread/ICS (phone needs updated boot loader to support 2.6.35 or later Linux kernels so we are stuck w/ Froyo for now)
I managed to hack the touchscreen driver to kinda-sorta work (at least the axes are correct now), but it's still not quite right. It's very inaccurate, which makes drawing anything (i.e. trying to play Draw Something) not work at all.
ATMEL has released drivers for the mXT series (including the 224E) but I'm having trouble getting it to work properly. Going to compare it against the kinda-working driver and see if I can fix it.
I found part of the problem, but I'm still having trouble with getting the driver to even load. Still, I discovered that the stock touchscreen driver only supports 2 simultaneous touches--the chip actually supports up to 10 simultaneous. I'm hoping to get the driver working so it's actually usable.
I have a friend with this phone i'm curious to see what you can do with it!
Man, this touchscreen driver is kicking my butt.
The official Atmel drivers don't work at all--the i2c call(s) fail during initialization and you get no touchscreen input.
The driver in the kernel released by Samsung is broken, too. In the default configuration, both axis are inverted so you have to tap the top-right of the screen to tap on something that's actually in the bottom-left. And the navigation buttons at the bottom don't work at all (menu/back/search).
So far all I've managed to do is at least get the orientation fixed, but the driver's still broken--you can't tap on anything on the edges (left/right), and the scaling is wrong so taps are mis-aligned in different parts of the screen. It's hard to describe, but comparing the output of YAMTT on stock kernel vs. compiled kernel shows glaring problems.
At this point I am trying to fix the Samsung driver, since it at least partially works. In the process, I'm doing a pretty massive code cleanup, mainly code organization and complete debug info that will make it easier to dissect exactly how the driver works and hopefully find the cause of the freaky behavior.
I've overhauled the debug output of the Samsung driver so that it's easier to parse via grep. The next trick will be actually fixing the driver.. but I'm going to be gone for annual training for the next two weeks, so things will be on hold until I get back.
I'm very excited to see what can be done with this for the phone.
This is my girlfriend's first android phone and while she's enjoying it, I want the experience to be better for her.
Good luck with your training!
SefEXE said:
I'm very excited to see what can be done with this for the phone.
This is my girlfriend's first android phone and while she's enjoying it, I want the experience to be better for her.
Good luck with your training!
Click to expand...
Click to collapse
Nice choice
This is a powerful device but unfourtuneally is an unpopular one, so there is not many developers with the Gravity
I strongly recommend you to install to follow and install this ROM on your girlfriend's phone: http://forum.xda-developers.com/showthread.php?t=1320187
Well, I've managed to get a 3.6.35.7 kernel to boot on the phone.
Samsung released the kernel source for the SGH-T589W which seems to be a Gingerbread edition of the Gravity Smart. The kernel builds successfully and manages to boot, but it gets stuck on a black screen. However, it does show up in the 'adb devices' list, so it's a start.
I believe the problem is the lack of both the OneNAND driver (AKA LinuStoreIII) and the RFS filesystem support. The modules from the stock kernel are compiled against 3.6.32.x so they don't work with the newer kernel.
My Google-Fu has turned up partial source for the same version of LinuStoreIII for the 3.6.35.7 kernel, and it successfully compiled. However, I haven't had any luck finding an RFS module.
EDIT: I think I found what I need, but I won't know until I get home!
gblues said:
Well, I've managed to get a 3.6.35.7 kernel to boot on the phone.
Samsung released the kernel source for the SGH-T589W which seems to be a Gingerbread edition of the Gravity Smart. The kernel builds successfully and manages to boot, but it gets stuck on a black screen. However, it does show up in the 'adb devices' list, so it's a start.
I believe the problem is the lack of both the OneNAND driver (AKA LinuStoreIII) and the RFS filesystem support. The modules from the stock kernel are compiled against 3.6.32.x so they don't work with the newer kernel.
My Google-Fu has turned up partial source for the same version of LinuStoreIII for the 3.6.35.7 kernel, and it successfully compiled. However, I haven't had any luck finding an RFS module.
EDIT: I think I found what I need, but I won't know until I get home!
Click to expand...
Click to collapse
NICE, keep us with update with the news :highfive:
Well, I thought I had something, but it's still not working quite right. I've got the parts for my debug cable on order. Should get here within the next week.
Well, I haven't yet gotten the serial output yet, but I do have a much more detailed output from dmesg now. I'm attaching it below.
Ugh. Samsung's OSRC is being a pain in the butt.
I contacted them requesting the correct driver. Their response: "That is the correct driver."
I responded, "Did you actually test it? Because when I compile the code you provided, the x/y axes are inverted." Their response: "Herp derp Samsung Proprietary."
My most recent response: "Don't give me that proprietary BS. The driver is GPL. If you used any of the code that's in that driver, you need to publish your modifications to it."
We'll see what happens next...
Your dedication to this project continues to provide me with a glimmer of hope for the 589. I thank you sir. Down with herp derp.
Sent from my SGH-T589 using xda app-developers app
Well, now they're claiming that the driver is the one they used in the shipping kernel. Oy!
In other news... I successfully booted Gingerbread on the phone using a stock kernel. I cheated a bit, though. I'll describe how I did it, in case anyone doubts me. The post is intentionally vague because it's not fully usable, wifi doesn't work at all, and I'm not currently at home and able to fully document the process. If anyone is actually interested in trying this out, I'll consider writing a script to automate it.
Known issues with this method:
- network time doesn't seem to work right
- wifi definitely doesn't work right
- usb mode doesn't appear at all
- The phone reports itself as a Galaxy Ace in the Settings screen.
OK, the steps:
First, the things you will need:
1) Stock SGH-T589 firmware (samfirmware.com has it)
2) Stock Galaxy Ace firmware (again on samfirmware.com)
3) unpack-bootimg.pl (google it). This is used to extract the kernel and ramdisk from boot.img
4) mkbootimg (google, or build from source). This is used to re-create the boot.img file
Steps:
- Start by unpacking each firmware package into its own folder.
- From the SGH-T589 folder, delete everything except boot.img
- From the Ace folder, delete everything except boot.img and system.rfs (MAKE SURE YOU DELETE arm11boot.img)
- Now, make an empty folder and copy the stock boot.img into it. Unpack it with unpack-boot.img.pl
- Make another empty folder and put the Ace's boot.img into it. Unpack it also.
- delete the boot.img-kernel.gz from the Ace's folder
- delete boot.img-ramdisk/lib/modules/*.ko
- copy boot.img-kernel.gz from the stock folder to the ace one.
- copy boot.img-ramdisk/lib/modules/*.ko from stock folder to corresponding dir of the ace one.
- copy boot.img-ramdisk/COOPER.rle from stock folder to ace one (optional, preserves the Gravity Smart boot splash screen)
- now, repack the boot.img-ramdisk folder into the CPIO archive
- next rebuild the boot.img file
- lastly, create ODIN archive with the rebuilt boot.img and the Ace's system.rfs
Flash the resulting tar.md5 file using Odin 4.40 USA.
Hi gblues. Very good work so far! Are you planning on porting CWM recovery? It's been ported to very similar phones, like the Ace, Gio, and Mini.
ShaunOfTheLive said:
Hi gblues. Very good work so far! Are you planning on porting CWM recovery? It's been ported to very similar phones, like the Ace, Gio, and Mini.
Click to expand...
Click to collapse
I used a similar technique (unpack, replace kernel/kernel drivers, repack) on the Galaxy Ace CWM recovery and it seems to work. Unfortunately, when I tried to use it to flash the Ace's ICS port, I get a black screen with "A N D R O I D" in the middle (note: this is after extracting the boot.img and doing the unpack/swap/repack process and flashing with ODIN). I suspect that ICS requires kernel features that simply aren't in the stock 2.6.32 kernel.
After doing some more long-term tests, my accomplishment above is a good proof-of-concept but it's not ready for prime time. Landscape mode is completely broken. Games like "Cut the Rope" only give you a black screen. The QWERTY keyboard is borked (mainly alt-keys). The SD card disappeared completely until a reboot. USB mode doesn't work. The accelerometer doesn't seem to work. The stock web browser crashes. Wifi doesn't work. The list goes on.
So that gets back to getting a custom kernel working...
Since I can't post in dev, I'm asking here.
Where the problem is?
Is it kernel and missing modules (i don't have them in my kernel, like usb-storage etc. )
or there is more than that such as hardware limitations?
Is someone trying to resolve this problem or someone tried and failed (what did they learn?)
I'm not just curious and waiting for job to be done by someone else, I want to contribute myself.
Motorola A956 has OMAP3630.
OMAP kernel has usb support (git.omapzoom.org/?p=kernel/omap.git;a=summary)
Also A956 has a TI 51001582002 Power management IC wich has usb transciver supporting usb otg (becouse droid 1 has the same ic)
So as far as i know its probably only the software problem to get it running...
We can't load a modified kernel in D2G unless we have kexec. Motorola has posted the source for the kernel and I guess you could try to insmod kexec module + script to load your custom kernel with usb host support. Check out the IRC logs of detule and others for Droid 3 because are pioneers for custom kernels on a locked Moto device.
Motorola Droid 2 Global Source: http://sourceforge.net/projects/droid2we.motorola/files/
Doid 3 Kexec project: https://gitorious.org/droid3-kexec
here is also something interesting to consider: http://blog.hash-of-codes.com/
Good luck! I would love to see this happen but I haven't had a chance to try out myself because my hands are full with other unfinished projects.
Hi All.
I have been scouring the internet and experimenting, but now I need some help.
My g/f has a Sumvision Cyclone Astro+ 9.7. (as seen here)
The support from Sumvision is rubbish and due to various speed/performance issues that I know can be addressed with a better ROM, I have been trying in vain to get it updated. The specs are in the link above, and it seems to be a clone of a momo 11 bird, Eken A90 or Yarvik Xenta. I know there is the basis of a great tablet here, just crippled by a poor ROM.
I am reasonably experienced with Android flashing/rooting etc as some of my previous posts will show, but this Astro 9.7 has be stumped.
It used Livesuit to upgrade, but none of the roms for the obvious clones work - Livesuit throws an error thats related to incompatible roms or partition layout. I extracted the livesuit images and merged different parts together and I get a working installation of a new rom but the hardware doesnt work right, (no touchscreen, no wifi etc). I freely admit that I am probably not merging the right parts - this level is new to me.
I also cannot find a working method for installing CWM. I have tried various versions for Allwinner units and installed by ADB and Sausagemod. CWM will install and work, but the system, cache and SD do not mount and the tablet will not boot to anything but CWM - even with a hard reset - which then means I have to reflash the Sumvision Livesuit image. This leads me to believe the partition layouts on this tablet are quite different to its clones but I dont know what I can do about it.
So, I need help. I have read various tutorials on porting roms but none I follow seem to give a fully working ROM. Ideally, I want CM9 or CM10 but will be happy with any good custom rom that will work. Any ideas how to proceed?