Just trying to understand the game here... previously I had a Sprint Galaxy Nexus and as I understood it the entire source for the image was available and thus the devs could do a full build roughly equivalent to what an OEM would do. On the other hand with a device like my Galaxy Tab 10.1 there were certain things that were always flaky (running non-OEM roms) and the devs claimed they just didn't have the real drivers to properly support the hardware.
So what is the actual deal with the DNA? To run something like 4.1.2 what would be the procedure to generate the image? Nevermind the unlock/s-off details of actually getting it on the phone, how would you go about getting the DNA-specific drivers from the stock image and combining that with the aosp mainline? Would this involve disassembly of the stock image? Or is there a way to somehow use binary modules directly from the stock image?
Bump
Sent from my ViperVivow
from what I understand the hardest thing to get aosp (i believe thats what you were referring to in the OP?) will be cracking the RIL
[email protected] said:
from what I understand the hardest thing to get aosp (i believe thats what you were referring to in the OP?) will be cracking the RIL
Click to expand...
Click to collapse
That's what I'm trying to figure out though, what is the actual process of doing this? I'm a Windows kernel dev, so in my world if I had one Windows machine up and running I could grab the binary .sys files and copy them into another similar OS (from Vista to Win7 perhaps) and things would just work. If I were moving between two imcompatible platforms (say from Windows to OpenBSD) then I'd have to disassemble the .sys to figure out what it actually does and then rewrite something functionally equivalent for BSD. I know nothing about Android development so I'm trying to understand how all this works here. We obviously have full stock image that includes all necessary drivers for the screen, radio, etc. And we also have generic, hardware independent aosp. So how do we combine the peanut butter and the chocolate to get the Reese's?
The issue is the RIL like has been stated. The problem is that HTC Sense uses a different telephony package than AOSP ROMs so the closed source ril.so and rild.so (radio interface layer and radio interface layer daemon object files) won't work with an AOSP ROM's telephony package (telephony.jar). There also may be some other hardware issues besides the radio like the camera that are different, but the radio is the biggest one.
Mazer
Sent from my rooted and debloated Droid DNA.
So in the past with other devices, how is this bridge crossed? Would a new telephony.jar be developed to interop with the existing ril/rild binaries? Or would the ril/rild binaries be reverse engineered and rewritten to be compatible with the existing telephony.jar?
HiBoost said:
So in the past with other devices, how is this bridge crossed? Would a new telephony.jar be developed to interop with the existing ril/rild binaries? Or would the ril/rild binaries be reverse engineered and rewritten to be compatible with the existing telephony.jar?
Click to expand...
Click to collapse
The telephony binaries would be decompiled and somewhat interpreted/understood and modified (usually involves a lot of guesswork and error log reading) recompiled then tested. If the build works then it is released. Usually there'll be two preliminary builds one that just has voice/text service, one with 3g, then one with 4g (all three working.) All three are completely separate and are huge milestones.
Mazer
Sent from my rooted and debloated Droid DNA.
Thanks for your responses!
HiBoost said:
Thanks for your responses!
Click to expand...
Click to collapse
Sure thing.
Sent from my rooted and debloated Droid DNA.
Related
Hello all!!
I'm new to Android and i'm interested in learning a bit and maybe get involved with it but there are some things that i don't get about android and can't find the answers.
My main question is why Android which is based on Linux is so hard to get updates for all devices at once?
For example we got ICS lately why it's only available for Nexus S and not for all devices that support android?
In pcs if there is a new Ubuntu version every pc can get it no matter the hardware it uses as there are drivers for it.
Is it so hard to have drivers for all the android devices?
Why do we need to wait forever for the X company that makes the phone to build a new kernel?
Is it about the libaries?The drivers?
Say i got a device that is not supported by ICS what would i need to make it supported? I got my libs from 2.3.5 can i toss them to overlay compile and works? If not y not?
Thanks in advance for your answers and sorry if my questions are too noobish, everyone has to start from somewhere
Serafym said:
Hello all!!
I'm new to Android and i'm interested in learning a bit and maybe get involved with it but there are some things that i don't get about android and can't find the answers.
1. My main question is why Android which is based on Linux is so hard to get updates for all devices at once?
2. For example we got ICS lately why it's only available for Nexus S and not for all devices that support android?
- In pcs if there is a new Ubuntu version every pc can get it no matter the hardware it uses as there are drivers for it.
3. Is it so hard to have drivers for all the android devices?
4. Why do we need to wait forever for the X company that makes the phone to build a new kernel?
5. Is it about the libaries?The drivers?
6. Say i got a device that is not supported by ICS what would i need to make it supported? I got my libs from 2.3.5 can i toss them to overlay compile and works? If not y not?
Thanks in advance for your answers and sorry if my questions are too noobish, everyone has to start from somewhere
Click to expand...
Click to collapse
1. Manufacturers don't release updates for all their devices all at once (some not at all).
2. It's ready (most stable so far) for that device (SDK ports; (almost) official update)
- Not true. If you tried to place Ubuntu 12.04 LTS on a PC with a 368 MHz and 32mb ram, it would not run .
3. Yes. Android is on devices from many different manufacturers with many different designs and hardware.
4. See here: http://en.wikipedia.org/wiki/Linux_kernel (to know what it is). Different hardware will require different commands, etc. If the manufacturer doesn't release the kernel source, development cannot be done on that device (properly).
5. Yes and yes (much more too).
6. Create a working port from some other device (with similar hardware) which is supported. Sometimes. Some versions of android have backward compatibility of those files but ICS isn't really backward compatible which is why many ports of ICS (for various devices) don't have a working camera, etc. See the 2nd paragraph here: http://www.cyanogenmod.com/blog/cm9-progress-update.
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
The first thing I want to say is that my English is not really good. I hope you understand my questions.
I have an idea for a new Android rom, but I'm faced with a dilemma. I want to have as much as possible supported devices, so I also can just build a launcher apk which can be installed through Google Play. In this way all mobile devices with the minimal platform version can use it. The biggest problem is that I don't only want a replacement for the application launcher but also the notification drawer and everything else. Is it possible to replace them also? I don't think so, so I think I'll work on a custom rom.
The next problem is which base rom I would use if I really build a custom rom. It's most likely to use AOSP as base because it's clean. The question is which version of AOSP: Gingerbread, Ice Cream Sandwich, or the newest version Jelly Bean. You would probably say Jelly Bean because this is the newest version. The problem is the phone support. Gingerbread is supported on most phones. If I build ICS or JB the phones which are supported by Cyanogenmod are easy to support, because I can use their device files. The only problem is that my phone, the Samsung Galaxy Gio is not officially supported and the unofficial port is not really stable. I don't think it's a big problem to use this device files and just wait till the developer makes it more stable, but I don't know for sure.
The last thing I want to know is if it's really that simple to support multiple devices. If I read tutorials about porting existing roms to your device they all say you just have to add your device files to the source and compile it. But they never say something about the kernel. Most devices need another kernel because their hardware is different isn't it? Please explain me how this works.
I'm sorry about this hazy story, but please help me before I make wrong choices. Thanks on purpose.
Wietse
WietsedeVries said:
The biggest problem is that I don't only want a replacement for the application launcher but also the notification drawer and everything else. Is it possible to replace them also? I don't think so, so I think I'll work on a custom rom.
Click to expand...
Click to collapse
These changes you are talking about can be done. They are system changes so not supported by the android app installer.
Eg: Your notification drawer, status bar are part of SystemUI.apk. The source for this is can be found in the AOSP source code under android/frameworks/base/...
You can make your modifications, compile it into an apk and then make a flashable zip to replace the current one (or push it via a rooted adb console).
or you can compile the entire source code into a flashable zip (eg CM7,9 etc..) and use it a replacement ROM with your modifications.
This is the line between an application under the android runtime and the android runtime itself.
these files, under framework are part of the OS. so to provide a customized version of the operating itself is what people like to call ROMs.
Now ROMs (like any OS) are device dependant. Windows has the code to run in a lot of different hardware configs, but android aims to be small. It should have only the minimum required code to efficiently run itself on a device.
Thats the kernel. The kernel communicates with the hardware and so the rest of the hardware can happily talk to a working kernel and expect the hardware to function as advertised. Kernel is a simple program which goes into the RAM on system start and sits there directing the operation of the phone.
Kernel devs work on making sure the hardware and the android runtime work perfectly together. Now, in this imperfect world, not all sources are open, even though they should be. and therein the issue lies.
If you want to compile android from source and make sure it works on your phone, first you need to make sure you have the kernel with all the changes(patches) to it made by the vendor (chap who made the phone and bullied you into buying it) to get it working on your hardware.
If you dont have that, you have to do it yourself. Or wait for someone else to do it.
once you can compile android and get it working on your phone with all the itty bitty hardware working A-OK.. then you can browse through the source, make changes as per your individual requirements and compile it into a ROM.
see the changes to the OS are separate from the changes to the kernel. The kernel changes are for hardware-software interaction so they are phone SPECIFIC.
but changes to your custom android OS (ROM) can be "cherry-picked" from other ROM/gerrit/AOSP/CM/AOKP sources and put inside your own source tree to get included in your build.
so if you have all the device / kernel stuff from a working android distribution, you can take the source of another android distribution and swap the device stuff into it and see if it works.
hope this helps.
wingie6200 said:
These changes you are talking about can be done. They are system changes so not supported by the android app installer.
Eg: Your notification drawer, status bar are part of SystemUI.apk. The source for this is can be found in the AOSP source code under android/frameworks/base/...
You can make your modifications, compile it into an apk and then make a flashable zip to replace the current one (or push it via a rooted adb console).
or you can compile the entire source code into a flashable zip (eg CM7,9 etc..) and use it a replacement ROM with your modifications.
This is the line between an application under the android runtime and the android runtime itself.
these files, under framework are part of the OS. so to provide a customized version of the operating itself is what people like to call ROMs.
Now ROMs (like any OS) are device dependant. Windows has the code to run in a lot of different hardware configs, but android aims to be small. It should have only the minimum required code to efficiently run itself on a device.
Thats the kernel. The kernel communicates with the hardware and so the rest of the hardware can happily talk to a working kernel and expect the hardware to function as advertised. Kernel is a simple program which goes into the RAM on system start and sits there directing the operation of the phone.
Kernel devs work on making sure the hardware and the android runtime work perfectly together. Now, in this imperfect world, not all sources are open, even though they should be. and therein the issue lies.
If you want to compile android from source and make sure it works on your phone, first you need to make sure you have the kernel with all the changes(patches) to it made by the vendor (chap who made the phone and bullied you into buying it) to get it working on your hardware.
If you dont have that, you have to do it yourself. Or wait for someone else to do it.
once you can compile android and get it working on your phone with all the itty bitty hardware working A-OK.. then you can browse through the source, make changes as per your individual requirements and compile it into a ROM.
see the changes to the OS are separate from the changes to the kernel. The kernel changes are for hardware-software interaction so they are phone SPECIFIC.
but changes to your custom android OS (ROM) can be "cherry-picked" from other ROM/gerrit/AOSP/CM/AOKP sources and put inside your own source tree to get included in your build.
so if you have all the device / kernel stuff from a working android distribution, you can take the source of another android distribution and swap the device stuff into it and see if it works.
hope this helps.
Click to expand...
Click to collapse
Thank you very very much for your explanation! It's a pity it's impossible to hit multiple times "Thanks".
I think I'm going to make a modified SystemUI.apk but you didn't tell the application launcher is also in this file. Did you just forget this or is this stored in another file/folder? And the lock screen? And I want also to replace the boot animation if it's possible.
If I take the source files of the SystemUI.apk of AOSP ICS, does this work on every phone running ICS? Included CM, AOKP and other (smaller) custom roms? And my last question: Since SystemUI.apk a apk file is, is it possible to edit these files through Eclipse and build it in Eclipse? Or do I get errors?
//Edit:
Still another question: How much work is it to, as example, port a modified Gingerbread SystemUI.apk to ICS? (Or vice versa)
WietsedeVries said:
Thank you very very much for your explanation! It's a pity it's impossible to hit multiple times "Thanks".
I think I'm going to make a modified SystemUI.apk but you didn't tell the application launcher is also in this file. Did you just forget this or is this stored in another file/folder? And the lock screen? And I want also to replace the boot animation if it's possible.
If I take the source files of the SystemUI.apk of AOSP ICS, does this work on every phone running ICS? Included CM, AOKP and other (smaller) custom roms? And my last question: Since SystemUI.apk a apk file is, is it possible to edit these files through Eclipse and build it in Eclipse? Or do I get errors?
//Edit:
Still another question: How much work is it to, as example, port a modified Gingerbread SystemUI.apk to ICS? (Or vice versa)
Click to expand...
Click to collapse
Only way is through exchanging the png files since porting the whole .apk is impossible.
Sent from my Jelly Beaned Ace
Thanks for the answer. And do you also know the answers of the other questions?
Sent from my GT-S5660 using xda app-developers app
WietsedeVries said:
If I take the source files of the SystemUI.apk of AOSP ICS, does this work on every phone running ICS? Included CM, AOKP and other (smaller) custom roms? And my last question: Since SystemUI.apk a apk file is, is it possible to edit these files through Eclipse and build it in Eclipse? Or do I get errors?
//Edit:
Still another question: How much work is it to, as example, port a modified Gingerbread SystemUI.apk to ICS? (Or vice versa)
Click to expand...
Click to collapse
There are two roads you can go now - one is use apktool to *decompile* apk the apk file that you've taken from your phone, it doesnt convert the app to java source code but java bytecode in .smali files (like an assembly version of the source) but you will have access to the resource files (xml, images etc..) so you can replace them and create some new themes.
http://forum.xda-developers.com/showthread.php?t=1814441
http://forum.xda-developers.com/showthread.php?t=1760133
And no - a GB systemUI.apk will *NOT* work on ICS. It is very probable that any changes you make through any of these methods can brick you phone. So make sure you have CWM and a nandroid backup.
If you want to add/edit functionality within the source code of systemUI.apk, you need to learn how to compile Android from Source. i would suggest getting hold of the CyanogenMod source tree for your device and playing around with it.
Ginger bread is CM7 and ICS is CM9.
http://forum.xda-developers.com/showthread.php?t=1552090
once you have the full source tree, you'll find a folder called android/frameworks/base/core/...something../systemui/..
this will contain the javasource code for your application. Here you can edit stuff to your hearts content!
Note that this cannot be compiled standalone by eclipse. The Android build system must be used to compile this (cuz its a system app).
a nice resource i used when i was doing the same thing :laugh:
http://iserveandroid.blogspot.in/2011/01/how-to-implement-your-own-status-bar.html
cheers and have fun.
I'm not understanding how kernels and ROMs connect. Can someone give me some extra insight?
[Hardware] <-- Unique to every phone
--
[Kernel] <--- Tells the OS how to talk to the hardware
--
[ROM] <--- Slightly confused. Is the OS in the Read only Memory, or has this term changed its "street" meaning?
I understand that most ROMs (e.g. CM7 and CM9) include both the kernel and the ROM, but can you flash these separately too?
I have a 1.5 year old thunderbolt that's rooted, and has CM7 which is based on gingerbread. I believe HTC has also released the kernel as open source, which is probably the reason I have CM7
Anyway, I guess what I'm looking for is an answer/guide/forum that explains why I can't install newer versions of android onto the already working/open source kernel I'm already running. Is it accurate to view the kernel as all the phone's drivers, or just the CPU driver? If that statement is true, why can't I load ICS or Jelly Bean onto my already existing set of drivers?
I'm thinking about starting a Wiki on this if 1) it doesn't already exist, and 2) I can wrap my brain around it enough to share with others!
Thanks to anyone with a response!
shadowrelic said:
I'm not understanding how kernels and ROMs connect. Can someone give me some extra insight?
[Hardware] <-- Unique to every phone
--
[Kernel] <--- Tells the OS how to talk to the hardware
--
[ROM] <--- Slightly confused. Is the OS in the Read only Memory, or has this term changed its "street" meaning?
I understand that most ROMs (e.g. CM7 and CM9) include both the kernel and the ROM, but can you flash these separately too?
I have a 1.5 year old thunderbolt that's rooted, and has CM7 which is based on gingerbread. I believe HTC has also released the kernel as open source, which is probably the reason I have CM7
Anyway, I guess what I'm looking for is an answer/guide/forum that explains why I can't install newer versions of android onto the already working/open source kernel I'm already running. Is it accurate to view the kernel as all the phone's drivers, or just the CPU driver? If that statement is true, why can't I load ICS or Jelly Bean onto my already existing set of drivers?
I'm thinking about starting a Wiki on this if 1) it doesn't already exist, and 2) I can wrap my brain around it enough to share with others!
Thanks to anyone with a response!
Click to expand...
Click to collapse
You are correct about the ROM, but ROMs also include the kernel (if it didn't, or no kernel was flashed separately, the device would not boot). Yes, other kernels can be flashed on your existing ROM, but it's not necessarily going to be compatible.
Sort of, but there's a lot more than that. See here and here. Later versions of Android will require newer drivers,etc. which the existing kernel won't provide (they'll be outdated). Back porting and additional coding is theoretically possible, but insanely difficult (many times). Even after this some things may still not work.
Thanks for the insight, I was able to get a lot deeper into this with those links. For anyone else wandering down a similar path, you might as well stop now! Here are a few links:
http://forum.xda-developers.com/showthread.php?t=1039217&page=2#17
http://www.cs.uwc.ac.za/~mmotlhabi/avmk.pdf
http://www.iteachandroid.com/2012/01/what-is-firmware-rom-and-firmware.html
So, if anyone else is still listening, I do have two more questions:
Do any phones have truly open source drivers? (a.k.a. higher probability of allowing old hardware to work with new android OS)
Is there any way to determine which phones will be supported by the custom-ROM community early on? I know the Nexus line doesn't have vendor modified code, is that the direction which would have the highest probability to stay at top of the Custom ROM curve without upgrading devices every year?
Thanks again for any insight! I hope I'm posting this in a Newb-Friendly forum!
shadowrelic said:
Thanks for the insight, I was able to get a lot deeper into this with those links. For anyone else wandering down a similar path, you might as well stop now! Here are a few links:
http://forum.xda-developers.com/showthread.php?t=1039217&page=2#17
http://www.cs.uwc.ac.za/~mmotlhabi/avmk.pdf
http://www.iteachandroid.com/2012/01/what-is-firmware-rom-and-firmware.html
So, if anyone else is still listening, I do have two more questions:
Do any phones have truly open source drivers? (a.k.a. higher probability of allowing old hardware to work with new android OS)
Is there any way to determine which phones will be supported by the custom-ROM community early on? I know the Nexus line doesn't have vendor modified code, is that the direction which would have the highest probability to stay at top of the Custom ROM curve without upgrading devices every year?
Thanks again for any insight! I hope I'm posting this in a Newb-Friendly forum!
Click to expand...
Click to collapse
For both your questions, the Nexus-line devices would be the way to go. They usually have everything working on new Android versions the soonest, and Google always releases their code, etc.
Hi
i can use linux kernel (zimage) to update android kernel if yes ,how ?
thnx
hey guys, just wondering how difficult it would be to do this and keep the finger print scanner. i (with no android developing experience) tried following a few tuts to try and port a 4.3 rom with little success, i managed to get it to start installing in cwm then to give a permission failure or something similar so yeah just a quick question
+1
Sent from my SM-N900V using Tapatalk
hectorz321 said:
hey guys, just wondering how difficult it would be to do this and keep the finger print scanner. i (with no android developing experience) tried following a few tuts to try and port a 4.3 rom with little success, i managed to get it to start installing in cwm then to give a permission failure or something similar so yeah just a quick question
Click to expand...
Click to collapse
Permission failure? Noob here too
I am guessing the ROM you tried to port checks for the Model number of the phone before flashing. What ROM did you try to port to and if you could post the instructions here we will make this the porting thread
Given that HTC One has all the custom ROM's and kernels we need devs or someone like us who can follow instructions to start doing it. I am sure we will get help from one another and end up with custom ROM's for the MAX.
I was also thinking of doing this but just to start with i don't want to look at the fingerprint scanner and may be later we could get it working.
I am certain most people would be willing to not have a working fingerprint scanner, as a trade off for a few custom roms/kernels...
Well to start you need to make sure your Meta-Inf directory is one from the Max, you should be porting from something with the same board as well which would give you less headaches in the long run. The One would be a good starting port since they use the same boards (msm8960 Snapdragon 600) The updater script in Meta-Inf needs to be pointing to the correct device. For example and this is just an example in the beginning of the updater script which is really the instructions for flashing the rom in recovery shouldn't say something like "get prop blah blah m7vzw" the m7 being the model # should be t6vzw if you were using a Verizon device etc etc.. All mount points need to be exactly what the Max's mount points are otherwise it will never flash.. The original One mount points aren't the same as the One Max. Also the kernel from the Max is a must, plus in system/lib you need the modules as well as hardware. In system/bin you need vold, vold is device specific. In system/etc you need vold.fstab again device specific stuff. The you need the hardware directory, which is touch capacitive buttons and LED's and what not. Those may be the same as the One since they are laid out the same.. The audio should most likely be the same but you would need to remove all the Beats Audio crap from system/etc since the One Max isn't a beats device.. GSM to GSM may be an easy port, CDMA to CDMA may be a little more difficult. Although they use libril-qc-qmi-1.so I think it is, that may be a typo but that's something like what the lib path will point to, the code may be slightly different in telephony for CDMA LTE devices. That would be found in framework.jar if applicable framework2.jar..
I could most likely easily get a port done, I'm just very limited to time.. Some of the tutorials out there are very generic and would kind of work well if you have 2 very identical devices with minor changes and manufactured around the same time small example would be like the HTC Desire and the HTC Thunderbolt.. That's a pretty straight forward port with some minor audio tweaks since sound image in system/etc is different and that as well are devices that would require a RIL hack as stated above with framework.jar... That right there would be strictly smali/baksmali hacking which I have some knowledge with but by no means a master of it lol... That is unless we had source for certain things but that isn't likely by no means... If anyone is interested in getting to work I'm more then willing I just sometimes have a hectic schedule... There is more to porting then just a few quick changes if you want a clean solid daily driver port... I started to port MIUI V5 just haven't really had much of a chance to test it. I have 3 MIUI ports built all slightly altered to eventually test different hacks..
The reason I chose MIUI V5 to port is because a good deal of HTC MIUI ROMs are based heavily on Sense.. Not many of them are AOSP based anymore which to me is kind of a shame.... The Chinese must have gotten tired of so many ports popping up with a lot of broken stuff because they all use to be AOSP based and to get them ported required a ton smali hacks and now when you decompile an actual source built official chinese MIUI rom and you diff out lets say services.jar from CM and services.jar from MIUI for every line of code like cdmareceiver.smali in CM in MIUI it's i.smali then cdmareceiver$1.smali in CM in MIUI it's 23.smali.... Those aren't actual lines those are just examples but they made it damn near impossible to properly diff stuff out.. You'd literally have to go through thousands and thousands upon thousands of lines to figure out which matches what and then make the changes you feel like need to be made and then hope you didn't break something in the process.... It sucks lol...
So yeah most of the HTC devices are now MIUI converted Sense based builds and I'm hoping are a little easier to port with less changes!! But I guess we'll see?!?!
Like I said, anyone wanting to work with me I will be more then glad to lend my knowledge of Android! I need someone to get me motivated again. I really miss working on Android and building stuff porting stuff whatever.. It's just fun! Plus we desperately need some form of a custom Android really really bad.... All of us do... I mean I'm Verizon, but Sprint, the International crew, all of us....
Lets pool all of our knowledge together and do some work!!! To all reading this if you are down contact me in this thread or PM me and lets get busy!
Murrda said:
Well to start you need to make sure your Meta-Inf directory is one from the Max, you should be porting from something with the same board as well which would give you less headaches in the long run. The One would be a good starting port since they use the same boards (msm8960 Snapdragon 600) The updater script in Meta-Inf needs to be pointing to the correct device. For example and this is just an example in the beginning of the updater script which is really the instructions for flashing the rom in recovery shouldn't say something like "get prop blah blah m7vzw" the m7 being the model # should be t6vzw if you were using a Verizon device etc etc.. All mount points need to be exactly what the Max's mount points are otherwise it will never flash.. The original One mount points aren't the same as the One Max. Also the kernel from the Max is a must, plus in system/lib you need the modules as well as hardware. In system/bin you need vold, vold is device specific. In system/etc you need vold.fstab again device specific stuff. The you need the hardware directory, which is touch capacitive buttons and LED's and what not. Those may be the same as the One since they are laid out the same.. The audio should most likely be the same but you would need to remove all the Beats Audio crap from system/etc since the One Max isn't a beats device.. GSM to GSM may be an easy port, CDMA to CDMA may be a little more difficult. Although they use libril-qc-qmi-1.so I think it is, that may be a typo but that's something like what the lib path will point to, the code may be slightly different in telephony for CDMA LTE devices. That would be found in framework.jar if applicable framework2.jar..
I could most likely easily get a port done, I'm just very limited to time.. Some of the tutorials out there are very generic and would kind of work well if you have 2 very identical devices with minor changes and manufactured around the same time small example would be like the HTC Desire and the HTC Thunderbolt.. That's a pretty straight forward port with some minor audio tweaks since sound image in system/etc is different and that as well are devices that would require a RIL hack as stated above with framework.jar... That right there would be strictly smali/baksmali hacking which I have some knowledge with but by no means a master of it lol... That is unless we had source for certain things but that isn't likely by no means... If anyone is interested in getting to work I'm more then willing I just sometimes have a hectic schedule... There is more to porting then just a few quick changes if you want a clean solid daily driver port... I started to port MIUI V5 just haven't really had much of a chance to test it. I have 3 MIUI ports built all slightly altered to eventually test different hacks..
The reason I chose MIUI V5 to port is because a good deal of HTC MIUI ROMs are based heavily on Sense.. Not many of them are AOSP based anymore which to me is kind of a shame.... The Chinese must have gotten tired of so many ports popping up with a lot of broken stuff because they all use to be AOSP based and to get them ported required a ton smali hacks and now when you decompile an actual source built official chinese MIUI rom and you diff out lets say services.jar from CM and services.jar from MIUI for every line of code like cdmareceiver.smali in CM in MIUI it's i.smali then cdmareceiver$1.smali in CM in MIUI it's 23.smali.... Those aren't actual lines those are just examples but they made it damn near impossible to properly diff stuff out.. You'd literally have to go through thousands and thousands upon thousands of lines to figure out which matches what and then make the changes you feel like need to be made and then hope you didn't break something in the process.... It sucks lol...
So yeah most of the HTC devices are now MIUI converted Sense based builds and I'm hoping are a little easier to port with less changes!! But I guess we'll see?!?!
Like I said, anyone wanting to work with me I will be more then glad to lend my knowledge of Android! I need someone to get me motivated again. I really miss working on Android and building stuff porting stuff whatever.. It's just fun! Plus we desperately need some form of a custom Android really really bad.... All of us do... I mean I'm Verizon, but Sprint, the International crew, all of us....
Lets pool all of our knowledge together and do some work!!! To all reading this if you are down contact me in this thread or PM me and lets get busy!
Click to expand...
Click to collapse
this was exciting to read, best of luck
I am going to get Ubuntu installed today and then Android Kitchen here i come!
pradeepvizz said:
I am going to get Ubuntu installed today and then Android Kitchen here i come!
Click to expand...
Click to collapse
You can always use Cygwin on windows. there is a how to cook a rom tutorial in the General Android Dev forum.
DeadPhoenix said:
You can always use Cygwin on windows. there is a how to cook a rom tutorial in the General Android Dev forum.
Click to expand...
Click to collapse
Thanks, i just installed it via virtual box without disturbing my system.
Just got android kitchen up and running, on prting sides of things got further this time, into aroma installes but error 7 which suggested earlyer is to do with mount points, if anyone could happen to help with theese it would be fab ))
Ok this is good start, i am proud of us here
I have got Android Kitchen running on my Ubuntu via virtual box.
I tried to set my working folder and tried tried to import my TWRP stock ROM backup. It seems like Android kitchen will require a CWM backup and TWRP does not seems to work.
With the TWRP backup i got this error
NON-YAFFS/NON-TAR FILE FORMAT DETECTED IN ROM
Click to expand...
Click to collapse
So i have just restored stock ROM on my phone, flashed CWM and now backing up my Stock ROM to COOK ANDROID
@[email protected] did you miss this thread just kidding, I know you have got a hectic schedule.
Again i am extremely happy to see ppl starting to develop ROM's!
Thanks for your encouragement @Murrda
No problem.. I'm home from work already and I'm off for the next 3 days so I'm actually going to get back to working on some ports. Anyone need a hand with anything as far as questions or setting up Linux or a dev environment please feel free to hit me up!
pradeepvizz said:
Ok this is good start, i am proud of us here
I have got Android Kitchen running on my Ubuntu via virtual box.
I tried to set my working folder and tried tried to import my TWRP stock ROM backup. It seems like Android kitchen will require a CWM backup and TWRP does not seems to work.
With the TWRP backup i got this error
So i have just restored stock ROM on my phone, flashed CWM and now backing up my Stock ROM to COOK ANDROID
@[email protected] did you miss this thread just kidding, I know you have got a hectic schedule.
Again i am extremely happy to see ppl starting to develop ROM's!
Thanks for your encouragement @Murrda
Click to expand...
Click to collapse
Murrda said:
No problem.. I'm home from work already and I'm off for the next 3 days so I'm actually going to get back to working on some ports. Anyone need a hand with anything as far as questions or setting up Linux or a dev environment please feel free to hit me up!
Click to expand...
Click to collapse
heyy i could use some help doing this part in android kitchen. straight from android kitchens page but i can't seem to get the recovery.fstab out anyway! im on t6ul verson of the max by the way thanks
/HIDE (sorry dont know how to get this to work (forum noob here too)
Create a file under the kitchen's /tools/edify_defs folder, with the name being the same as the value of ro.product.device (found in your device's /system/build.prop file).
If the stock ROM images for your device contain the recovery.img file, extract its files from the kitchen menu: Advanced --> Tools for boot image --> Extract from boot.img/recovery.img in any folder. Then, open up its ramdisk folder, and look for /system/etc/recovery.fstab or /etc/recovery.fstab or similar FSTAB file location. Open this file to find the mount points.
See the template file in the edify_defs folder to see how to set the mount points inside the file you created. Look at the other files in that folder for examples on how to do it.
managed to flash something and get mounting things sorted ))), getting an interesting navy green screen when booting now, will let you know on further developments. its a vanilla android rom i tried insertcoin-m7-google-edition_5.0-1 to be exact
hectorz321 said:
managed to flash something and get mounting things sorted ))), getting an interesting navy green screen when booting now, will let you know on further developments. its a vanilla android rom i tried insertcoin-m7-google-edition_5.0-1 to be exact
Click to expand...
Click to collapse
Good start mate! awesome!
update, getting a boot logo now which is great but im in a bootloop and have no idea where to start, iv been looking on trying to get logcat and such running but no success yet. Any advise anyone?
hectorz321 said:
update, getting a boot logo now which is great but im in a bootloop and have no idea where to start, iv been looking on trying to get logcat and such running but no success yet. Any advise anyone?
Click to expand...
Click to collapse
Which guide are you following? i just cooked a ROM today first time. I made the stock ROM for the T6UL.
---------- Post added at 08:34 PM ---------- Previous post was at 08:34 PM ----------
ooo, Merry Christmas everyone
Yeah I've been trying to port gpe over to the max but I think I need the gpe kernel ported too.. I used the Max Sense kernel for it and I get a bootloop or frozen boot logo after install with no hope of getting a logcat. I didn't move the Max sense update-binary but don't think that would be an issue, both since Its gpe and I'm using aroma..
Sent from my HTC One using XDA Premium 4 mobile app
HolyAngel said:
Yeah I've been trying to port gpe over to the max but I think I need the gpe kernel ported too.. I used the Max Sense kernel for it and I get a bootloop or frozen boot logo after install with no hope of getting a logcat. I didn't move the Max sense update-binary but don't think that would be an issue, both since Its gpe and I'm using aroma..
Sent from my HTC One using XDA Premium 4 mobile app
Click to expand...
Click to collapse
Got to exactly the same point as you, reading several tutorials online i came across this interesting line "To port Sense you have to unpack the boot.img of your base rom and edit the init.rc to change the bootclasspath and match it with the port one" which is what iv done but also got stuck in a bootloop, looking at the two kernels are are a few differences in them. I think that might be they key.
hectorz321 said:
Got to exactly the same point as you, reading several tutorials online i came across this interesting line "To port Sense you have to unpack the boot.img of your base rom and edit the init.rc to change the bootclasspath and match it with the port one" which is what iv done but also got stuck in a bootloop, looking at the two kernels are are a few differences in them. I think that might be they key.
Click to expand...
Click to collapse
Yeah, i know for the kernel, without being able to mess with the zimage, the sense max kernel lacks the init.environ.rc from gpe, the fstab file is different(at least file extension), and there's a few things that point to sense files or folders that don't exist on gpe. Currently there is no released source for the max yet :'( so unless someone knows how to do it manually and hasn't shared HOW to do so, I just have to wait.. Hopefully it won't be too long.
Sent from my HTC One using XDA Premium 4 mobile app