Hello, I am New Here. How Should I Start?
So This is my First post on this forum.
I am Interested In Making Custom ROM for Android Devices. How Should I start? I already Have Linux (Ubuntu 13.10 x64) Set up for this and ready. And also How to Flash a phone. And does android have Dead USB Flashing method.
Device I have in mind is Sony Xperia Acro S. I don't own it yet.
I am a Symbian Developer. I am even have a Developer Status on DailyMobile Forum. I even have my own CFW (Custom Firmware). But since that Platform is Dying, I decided to Move to Android.
MrKenkadze27 said:
Hello, I am New Here. How Should I Start?
So This is my First post on this forum.
I am Interested In Making Custom ROM for Android Devices. How Should I start? I already Have Linux (Ubuntu 13.10 x64) Set up for this and ready. And also How to Flash a phone. And does android have Dead USB Flashing method.
Device I have in mind is Sony Xperia Acro S. I don't own it yet.
I am a Symbian Developer. I am even have a Developer Status on DailyMobile Forum. I even have my own CFW (Custom Firmware). But since that Platform is Dying, I decided to Move to Android.
Click to expand...
Click to collapse
well you need to learn all the android basics, which can take a year to catch onto. And sense you've just started, you need to learn what root is and that sort of stuff. And to fix errors in source, you need experience with source, git, java programming and C++ coding. Also need experience with working with kernels and simple issues like fixing bootloops, and also know how to make device trees and kernel tree/repo and how to use github. And most of all you'll need a phone of your own to test builds, because the first time you build is never stable and it takes a while to fix things such as wifi, nfc, etc.
But you'll catch on Best of luck!
Related
Lemme get some things out of the way.. I am a noob. I have searched. I have read some of the results from the search. I am overwhelmed by the 20+ pages of results (lol). I am not 100% sure this is the correct forum for this (not sure where else would be ).. I believe this is one of those things where I need help based on my situation.. Ok, so here I go.
I wish to start porting ICS to my phone. That's my goal. I have general understanding of how linux works, but I do not know much about the android specifics of how they work, or what needs to be modified for this to work. I do not plan to use the kitchen tool as I wish to learn this the hard way. I believe this will help me become more understanding in what I am doing. However, at this point I don't and that's why I'm here. My phone model is irrelevant almost because its prepaid and usually the communities don't even recognize their existence.. at least that's how I feel about it. But I digress. My phone is the zte warp by boost mobile and I am here to learn hopefully the things that will get me started on porting ICS to this phone. I right now believe that the best thing for me to learn is how the android related files work because as it is, I only looked at guides on how linux works and I understand most of it. I'm not sure that's the best thing that will help me port ics, but I'm certain it is important.
Please help me figure out where I should start in learning how to port ICS to my phone basically.
Thanks XDA
anyone? I am quite serious about wanting to do and go into this but I have yet one thread that anyone's ever replied to.. (or post iirc) which puts a damper on me
Snake X said:
Lemme get some things out of the way.. I am a noob. I have searched. I have read some of the results from the search. I am overwhelmed by the 20+ pages of results (lol). I am not 100% sure this is the correct forum for this (not sure where else would be ).. I believe this is one of those things where I need help based on my situation.. Ok, so here I go.
I wish to start porting ICS to my phone. That's my goal. I have general understanding of how linux works, but I do not know much about the android specifics of how they work, or what needs to be modified for this to work. I do not plan to use the kitchen tool as I wish to learn this the hard way. I believe this will help me become more understanding in what I am doing. However, at this point I don't and that's why I'm here. My phone model is irrelevant almost because its prepaid and usually the communities don't even recognize their existence.. at least that's how I feel about it. But I digress. My phone is the zte warp by boost mobile and I am here to learn hopefully the things that will get me started on porting ICS to this phone. I right now believe that the best thing for me to learn is how the android related files work because as it is, I only looked at guides on how linux works and I understand most of it. I'm not sure that's the best thing that will help me port ics, but I'm certain it is important.
Please help me figure out where I should start in learning how to port ICS to my phone basically.
Thanks XDA
Click to expand...
Click to collapse
From my limited knowledge, I think it is a huge task undertaking, you can download Android source code from Google, the hard part will be the device driver development and porting for Linux kernel (and maybe portion of Android). If you are lucky, you can use the existing phone bootloader (or you have to port one). Understanding the inner of the phone (different chip set may need different device driver) will be another challenging task.
by the device driver development, you mean all the libs that go into the phone? Couldn't I just copy/paste the pre-existing libs that are already made for the phone? Also the phone im working with is a bit strange really.. noone has been able to compile the kernel from its source and get it to boot yet.. when it was compiled the zImage was different than that of the stock one.
And yeah, I have downloaded the aosp source.. I just need to know where to start at and the processes involved really
Snake X said:
by the device driver development, you mean all the libs that go into the phone? Couldn't I just copy/paste the pre-existing libs that are already made for the phone? Also the phone im working with is a bit strange really.. noone has been able to compile the kernel from its source and get it to boot yet.. when it was compiled the zImage was different than that of the stock one.
And yeah, I have downloaded the aosp source.. I just need to know where to start at and the processes involved really
Click to expand...
Click to collapse
To answer you question no the drivers and lib files are different for aosp based rooms then they are for the stock OEM from. The first step will be to get a working kernel. Without anything you do will be pointless
I'm somewhat interested in the same thing, and from what I've gathered, you'll need to do these things to begin ROM development:
1. Read every page on the AOSP site and grab a copy of the AOSP source. It probably wouldn't hurt to read the regular Android developer wiki as well.
2. Learn about Linux driver development:
http://lwn.net/Kernel/LDD3/ (this is apparently considered THE BOOK on Linux driver development)
http://www.freesoftwaremagazine.com/articles/drivers_linux
3. Learn pretty much every detail about your phone and its hardware, especially when it comes to how ROMs are installed on it. For example, my phone (the Droid X2) has a locked bootloader, so 2nd init has to be used to boot new ROMs, and this makes it so that we cannot update the kernel.
You can usually find this sort of information on your phone manufacturer's website. Sometimes they even post the source code to their phone's drivers, which is helpful.
4. Look at other ROMs (preferably for your phone) and see how they work. The source code is freely available for most popular ROMs.
For example: CyanogenMod keeps their source code in a public git repository: https://github.com/cyanogenmod
5. Get to work on porting!
I would highly recommend starting with something smaller, however, just as a start. One good jumping-off point is probably this guide: http://forum.xda-developers.com/showthread.php?t=1272270
If any part of this was wrong, or if I left something out, somebody feel free to correct me, I'm still a noob.
Thank you so much for your direction, however,, android kitchen.. im not sure about that because isnt that only ment for htc devices? My phone is made by zte
what device do you even have?
if it's stuck officialy on 2.1 or 2.2 there's no hope that if you even port it that it'll work
its the zte warp from boost mobile (prepaid). Btw if I compile an aosp ics launcher and put that on my phone whats the chances of that working?
edit: it uses 2.3.5
Well Sebastian responded on android forums, apparently zte is very bad at version control with their kernel sources. So when they complete one project, they use the same source for the next project, and what they release could be for anything. Apparently the blade source had the same issues, it took him a while to get them to correct the source
Sent from my N860 using Tapatalk
Yeah I noticed that there were ppl saying there were things similar but I'm not sure what will work or what won't.. guess its time to start a petition on zte to release the source code lol
edit: seems like zte's bein a bad company and violated the GNU GPL license for not providing a complete source code.. I compiled an email and sent it to someone who can proof read it and send it to the right person for this kinda thing.. danggit zte
Hello Everyone I Am New In This World And I Have Some Questions About Developing
-Which Programming language Should I Learn To Create Apps.?
-How To Create ROM?
-What About Porting Something From A Device To Another One?
-Is The SDK Of The Mobile Is Enough To Port Something From It?
-Should I Own An Old Phone For Testing?
P.S. I Have GS3
You develop for Android primary in the Java language. You may write native (i.e. compiled) code as well, but Java is recommended in most cases.
Creating custom roms is much like creating a Frankenstein Monster. Decompose your original rom, pick the pieces you like, replace the other with stuff you dig up from other places, or create yourself. Then re-pack everything in your new custom image, flashing you phone. The details about what to use to split images, flash devices etc you have to search this forum for - it'll differ from device to device.
When developing for Android you chose a minimal API level, e.g. Android 1.5. This way your app will run on all devices with at least Android version 1.5, no porting needed. Java is "write once, run many" so to say.
You can test your new apps either on you phone or in the emulator (Android Virtual Device) supplied with the SDK. If you intend to develop lots of code, a dedicated phone may be quite useful for testing, yes, but absolutely not necessary. You'll not crash your phone just because your application crashes, all apps are running in separate processes protected from each others.
You find the official tutorial at developer.android.com/training/basics/firstapp/index.html
Thanks For Your Help. Your Words Are Very Useful
THE.W!ZARD said:
Hello Everyone I Am New In This World And I Have Some Questions About Developing
-Which Programming language Should I Learn To Create Apps.?
-How To Create ROM?
-What About Porting Something From A Device To Another One?
-Is The SDK Of The Mobile Is Enough To Port Something From It?
-Should I Own An Old Phone For Testing?
P.S. I Have GS3
Click to expand...
Click to collapse
you need java to learn programming................
for basic rom making a bit of general knowledge is enought not much of programming is required........
for basic porting you can use cygwin for complex ports u need t change the framwork files which you will learn as the time passes..
sdk is required for building app and adb fastboot not for porting and other kind of stuff(related to api's)............
what do you mean by old phone.. you build mods for your phone so test it on the phone you built the mod for not old phone or something like that.........
The first thing you need to do is learn Java.
http://forum.xda-developers.com/forumdisplay.php?f=613
Hello.
I am very keen in getting the Ubuntu Touch ported to my Xperia Z2 phone. Obviously, I'll need all the help and guidance possible.
What I currently have? developer.ubuntu.com/en/start/ubuntu-for-devices/porting-new-device/
I'm using the official porting guide as checklist. Below are what I have accomplished so far with the guide
Setup my Development Environment
Have built for Nexus with success to see if my environment is up and running (the building threw no errors, so I assume it "works", since I have no means of testing because I don't have a nexus handset)
I have added repos regarding under how to enable a new device.
I have done the first part of the Device specific changes using the check-config script, the _defconfig file in the kernel (this is Sony Xperia Z2 kernel: CyanogenMod/android_kernel_sony_msm8974 , right?)
When I did the build ( just to test so far what I've done ) I got the error that, its using the pre-compiled kernel, or something like that.
Now my questions:
How do I tell it which kernel to use, and where?
Where is the pre-compiled kernel and which is the precompiled: the one from the vendor/ (which I got from extracted binary from sony official) OR the /kernel/sony/msm8974 ?
I've gone looking around to see if I could perhaps follow the pattern used in the porting to the Xperia Z, since they're in the same series. Yet, I hardly could follow what exactly the 'porter' did. I was interested in finding answers to the 'What?', and 'Where?' of the porting done, but couldn't get solid answers.
I ask this here with the hope that, a developer who's been through the porting process will be able to offer assistance. I've been in touch with Mamenyaka, and along the lines, he'll be assisting too. But since he isn't available all the time, I ask this here.
Concerning the above list of questions, please, any assistance will be appreciated.
Its understandable, yet unfortunate, that the official ubuntu porting guide has been made to be so broad and so generic its hard to streamline what it says with a specific device. With this thread, I hope to get very specific instructions precisely tailored to the Xperia Z2 and to accommodate being extensive, instructions for the Z line series.
thanks
EDIT: my error log so far pastebin.com/Wax18UFK
seanmavley said:
Hello.
I am very keen in getting the Ubuntu Touch ported to my Xperia Z2 phone. Obviously, I'll need all the help and guidance possible.
What I currently have? developer.ubuntu.com/en/start/ubuntu-for-devices/porting-new-device/
I'm using the official porting guide as checklist. Below are what I have accomplished so far with the guide
Setup my Development Environment
Have built for Nexus with success to see if my environment is up and running (the building threw no errors, so I assume it "works", since I have no means of testing because I don't have a nexus handset)
I have added repos regarding under how to enable a new device.
I have done the first part of the Device specific changes using the check-config script, the _defconfig file in the kernel (this is Sony Xperia Z2 kernel: CyanogenMod/android_kernel_sony_msm8974 , right?)
When I did the build ( just to test so far what I've done ) I got the error that, its using the pre-compiled kernel, or something like that.
Now my questions:
How do I tell it which kernel to use, and where?
Where is the pre-compiled kernel and which is the precompiled: the one from the vendor/ (which I got from extracted binary from sony official) OR the /kernel/sony/msm8974 ?
I've gone looking around to see if I could perhaps follow the pattern used in the porting to the Xperia Z, since they're in the same series. Yet, I hardly could follow what exactly the 'porter' did. I was interested in finding answers to the 'What?', and 'Where?' of the porting done, but couldn't get solid answers.
I ask this here with the hope that, a developer who's been through the porting process will be able to offer assistance. I've been in touch with Mamenyaka, and along the lines, he'll be assisting too. But since he isn't available all the time, I ask this here.
Concerning the above list of questions, please, any assistance will be appreciated.
Its understandable, yet unfortunate, that the official ubuntu porting guide has been made to be so broad and so generic its hard to streamline what it says with a specific device. With this thread, I hope to get very specific instructions precisely tailored to the Xperia Z2 and to accommodate being extensive, instructions for the Z line series.
thanks
EDIT: my error log so far pastebin.com/Wax18UFK
Click to expand...
Click to collapse
Hello,
if you are still working on this project:
Your Problem was not that you used the prebuilt kernel, your problem was that the script doesnt use mkabootimg correctly. For sony device you have to use another command.
Friend i would love to see ubuntu on my z2
share a link which may be helpful
https://wiki.ubuntu.com/Touch/Devices/minato
I am really confused! I went through a lot of threads and forums. Unfortunately i can't get some of the concepts....
Can someone give me a roadmap on how to get started with compiling android roms(not custom roms)
How do OEMs like Samsung, HTC compile their ROMs??? I mean where do they learn that the particular process should be done this way regarding Android firmware???
In Repo Sync, is it possible to pause and resume that huge download? If i want to reinstall linux, is it possible to backup that 30-40GB download???
I have Asus Fonepad 7 and has kernel sources here: http://www.asus.com/support/Download/28/7/0/7/K0zj5cW6VJEzTjQR/32/ My question is am i able to create stock Android ROMs like those in Nexus devices and fastboot images for flashing on to this device??? Also do x86 devices have a different way of compiling ROM???
I want to do things the original official way... Please help me, I am very eager to learn!!!
I would be more than happy if someone could help!!!
INTRODUCTION
Have you ever dreamed to get not any device but YOURS on the wide screen of your computer? Create a custom ROM and emulate it, or just check another custom ROM compatibility virtually without having to flash and risk your everyday tool? Well I did and I still do!
In the old times this was possible but, unfortunately, it's no longer the case. Since our beloved mobile devices got more features, system has become also more complex. This is why we can't run a custom ROM only with system and data images as before anymore. Unless you still want to develop on Gingerbread and below — seriously? — we need to move to another solution.
And this is what this project is for!
According to the fact that we're not all pro developers and / or we're not all rich enough to buy multiple devices in case of brick, I think such project is necessary to avoid taking stupid risks like we do now.
ORGANIZATION
Currently the project is committed under the name of "AndROMega".
It is planned to work under the Windows and Linux environments. An eventual port for Mac OS isn't envisaged for now but still welcome if someone wish to work on once a version is released.
By the way, this project being free and open-source, everybody can join, improve it but thieving (including copying then claiming project as-is / unmodified is your and, worse, selling this common work) is absolutely UNALLOWED. This must still free, open-source and mention the original authors (me and other devs eventually joining) in case of copying to make custom release. All of this juridical stuff will be put in a license file as usual anyway.
The QEMU emulating software will be used to facilitate the cross-platforming of the project software. It is fast, powerful, reliable, and, moreover: FREE.
Edit: Great new! Editing a custom Android emulator from scratch won't be in the question anymore!
A Github repo has been created allowing to run a stock AOSP Android ROM, so one step is made
Link to this repo: https://github.com/aosp-mirror/platform_external_qemu
Other notes coming soon in this thread...
Reserved.
Atronid said:
INTRODUCTION
Have you ever dreamed to get not any device but YOUR on the wide screen of your computer? Create custom ROM and emulate it or just check another custom ROM compatibility virtually without having to flash and risk your everyday tool? Well I did and I still do!
In the old times this was possible but, unfortunately, it's no longer the case. Since our beloved mobile devices got more features, system became also more complex. This is why we can't run a custom ROM only with system and data images as before anymore. Unless you still want to develop on Gingerbread and below — seriously? — we need to move to another solution.
And this is what this project is for!
According to the fact that we're not all pro developers and / or we're not all rich enough to buy multiple devices in case of brick, I think such project is necessary to avoid taking stupid risks as we do for now.
ORGANIZATION
Currently the project is committed under the name of "AndROMega".
It is planned to work under the Windows and Linux environment. An eventual port for Mac OS isn't envisaged for now but still welcome if somebody wish to work on once a version is released.
By the way, this project being free and open-source, everybody can join, improve it but thieving (including copying then claiming project as-is / unmodified is your and, worse, selling this common work) is absolutely UNALLOWED. This must still free, open-source and mention the original authors (me and other devs eventually joining) in case of copying to make custom release. All of this juridical stuff will be put in a license file as usual anyway.
The QEMU emulating software will be used to facilitate the cross-platforming of the project software. It is fast, powerful, reliable, and, moreover: FREE.
Edit: Great new! Editing a custom Android emulator from scratch won't be in the question anymore!
A Github repo has been created allowing to run a stock AOSP Android ROM, so one step is made
Link to this repo: https://github.com/aosp-mirror/platform_external_qemu
Other notes coming soon in this thread...
Click to expand...
Click to collapse
So what do you mean by custom rom environment builder? Do you mean when you port a rom and it has glitches and the environment fixes it or what? I'd be happy to help with this.
NonStickAtom785 said:
So what do you mean by custom rom environment builder? Do you mean when you port a rom and it has glitches and the environment fixes it or what? I'd be happy to help with this.
Click to expand...
Click to collapse
I don't really understand your question, but I'll sum up what the project is, hoping it will help you understand.
It's nothing more or less than a tool that mimic hardware and specific components and architecture of a phone model. It is supposed to be more than an AVD, allowing you to literally flash a custom ROM and debug it virtually instead of having to buy the phone, flash it, screw everything if something goes wrong, restore backup, etc.
Back when I got this idea (before it got forgotten among the million projects I have) I thought the hardest part was to get the core component of every phone (ramdisk, ROM, bootloader — assuming it's possible, otherwise "create" a replicant) and get the hardware spec mimicked with QEMU. Now I grew a bit and got a new-featured phone (seamless partition system that was pretty new to me), I know it will be even more complicated.
Since I'm not really available this year because of my exams, this project will still idle for a while. But I won't abandon it, so if the principle interest you and you're ready to give a hand you are welcome !
I'm In!
Atronid said:
I don't really understand your question, but I'll sum up what the project is, hoping it will help you understand.
It's nothing more or less than a tool that mimic hardware and specific components and architecture of a phone model. It is supposed to be more than an AVD, allowing you to literally flash a custom ROM and debug it virtually instead of having to buy the phone, flash it, screw everything if something goes wrong, restore backup, etc.
Back when I got this idea (before it got forgotten among the million projects I have) I thought the hardest part was to get the core component of every phone (ramdisk, ROM, bootloader — assuming it's possible, otherwise "create" a replicant) and get the hardware spec mimicked with QEMU. Now I grew a bit and got a new-featured phone (seamless partition system that was pretty new to me), I know it will be even more complicated.
Since I'm not really available this year because of my exams, this project will still idle for a while. But I won't abandon it, so if the principle interest you and you're ready to give a hand you are welcome !
Click to expand...
Click to collapse
Well this is a very interesting idea. It would be very useful for the rooted phones that don't have any custom roms already built.
Maybe you wouldn't have to get the core components of every phone all at once. Maybe it you could make the program to extract a twrp or cwm backup, and have a database of all the ramdisks and chipsets that the program will have access to.
I think this project is very useful and I would like to start in the development of it or aid you in it. PM me with more details :good:.
NonStickAtom785 said:
Well this is a very interesting idea. It would be very useful for the rooted phones that don't have any custom roms already built.
Maybe you wouldn't have to get the core components of every phone all at once. Maybe it you could make the program to extract a twrp or cwm backup, and have a database of all the ramdisks and chipsets that the program will have access to.
I think this project is very useful and I would like to start in the development of it or aid you in it. PM me with more details :good:.
Click to expand...
Click to collapse
Yes, backup extraction and component database was the original idea
Thank you for your help! I'll PM you as soon as the project starts :fingers-crossed:
Atronid said:
Yes, backup extraction and component database was the original idea
Thank you for your help! I'll PM you as soon as the project starts :fingers-crossed:
Click to expand...
Click to collapse
Thanks:laugh:
Best thing ever, life saver etc, I am ready to do whatever you want just this thing to succeed!
ender1324 said:
Best thing ever, life saver etc, I am ready to do whatever you want just this thing to succeed!
Click to expand...
Click to collapse
That's very nice, thanks!
As mentionned earlier, the project won't start right now due to my work, but in theory I should be available and ready to start it in the next months! I'll DM you as soon as it gets its first kick !