[Q] Extracting proprietary blobs from existing ROMS - Android Q&A, Help & Troubleshooting

Hi
Short and sweet, I am busy getting into ROM development, and as exercise to get a better grasp on what is going on, I mostly dabbled with AOSP until yesterday. I am in the process of porting Cyanogenmod 10.2 to Galaxy S2 (i9100).
While going through the CM instructions, there was a segment on how to extract "proprietary blobs" from CM running on the device in question. This is required as part of the build for hardware specific reasons they did not give too much details about.
I just have one query. Has anyone tried to, or know if it is possible to do this blob extraction from ROMs other than CyanogenMod?
That's all folks.

Related

[Q] AOSP or true custom ROM

I've been following the development of so-called ROMs for the Vibrant (and other SGS devices), but I have yet to see a single AOSP ROM. Even when Samsung released the original kernel sources for 2.1, there were no AOSP 2.1 ROMs. Why not? Is it because they don't know which BLOBs to pull for insertion or the proper vendor overlays?
Some developers have done great work with SGS kernels (especially supercurio and his Voodoo kernels ... eugene373's tend to always wipe the internal SD card unnecessarily ...). But, a kernel does not a ROM make ... therefore I ask, what is truly missing to build an AOSP ROM. I've gone through the sources, but I don't follow makefiles too well.
I know we have another month or so before Samsung is obligated to release their 2.2 kernel sources, but that should have no impact on 2.1 AOSP ROMs. Therefore, I ask "what is the hold up?" What is missing, and what might I contribute ...
Need 2.2 source code...
2.1 is a dead horse--why bother when 2.2/2.3 are out?
The reason to bother is to at least get AOSP running. Once its on 2.1, it'll be easier to get 2.2 AOSP running on it. But claiming 2.1 is a "dead horse" is the wrong path ... the real question still stands: after 9 months on the market their still are no AOSP ROMs.
MIUI
Now that vibrant 2.2 source is released ... we finally have a REAL AOSP port and my all time favorite from my old HD2 the MIUI.... so keep your heads up and wait for it to get finished.
Get a custom rom. There are so many good devs doing them don't waste your time on AOSP....... until they release the actual source code...... on April 22
sarim.ali said:
Now that vibrant 2.2 source is released ... we finally have a REAL AOSP port and my all time favorite from my old HD2 the MIUI.... so keep your heads up and wait for it to get finished.
Click to expand...
Click to collapse
Except, the 2.2 source for the Vibrant has not been released. The SGH-T959D that shows Froyo sources on Samsung's site is for the Canadian Fascinate, not the US T-Mobile Vibrant. Samsung has yet to release the 2.2 sources.
oka1 said:
Get a custom rom. There are so many good devs doing them don't waste your time on AOSP....... until they release the actual source code...... on April 22
Click to expand...
Click to collapse
Except the so-called "custom ROMs" are just modifications on the stock theme, a replacement kernel and a change of some of the supplied applications.
There is nothing close to a full "custom ROM" such as CyanogenMod or MIUI because we don't have Samsung's sources. What is passing for a "custom ROM" for the Vibrant are just repackaged files. It is akin to the "ROM cooking" that took place for the WinMo phones, not a truly ground-up build from source that is possible with Android.
EDT/Devs4Android has the MIUI build. From Source.
TW has a 2.2.1 in testing.
EDT has a 2.2.1 Beta released.
TW has a 2.3 AOSP in testing. From Source.
EDT has 2.2 AOSP in testing. From Source.
What you want is out there for you.
Watch the forums and reply when a call for Alpha testers is posted.
Hopefully it won't be long before you see a full TW/EDT/Devs4Android collaboration!
I think what the original poster is trying to ask (and I have the same question) is why were there never any real 2.1 AOSP, cyanogen5 for the vibrant. The source for 2.1 has been around for many months. Were some other proprietary bits missing, was the released source code such a mess that it was unbuildable, something else? With those questions in mind, why will things be any different when the 2.2 source comes out?
mattb3 said:
I think what the original poster is trying to ask (and I have the same question) is why were there never any real 2.1 AOSP, cyanogen5 for the vibrant. The source for 2.1 has been around for many months. Were some other proprietary bits missing, was the released source code such a mess that it was unbuildable, something else? With those questions in mind, why will things be any different when the 2.2 source comes out?
Click to expand...
Click to collapse
Yes, this is more towards what I was getting at. We do not have Samsung's kernel sources for 2.2. And, we do not have a Samsung provided vendor overlay.
When we receive these two pieces, then a true AOSP build will be possible. However, we do have the 2.1 kernel sources, so why wasn't a true AOSP build possible then? What was missing, and can we actually expect Samsung to release the overlay that's needed?
Actually, that's true. I know it was old but why didn't anyone build a 2.1 cyanogen or aosp rom? (Not to say its easy.)
Sent from my SGH-T959 using XDA App
A noob question, kindly can someone explain what is the vendor overlay stuff?
Many thanks!
Where have you been?
rpcameron said:
I've been following the development of so-called ROMs for the Vibrant (and other SGS devices), but I have yet to see a single AOSP ROM. Even when Samsung released the original kernel sources for 2.1, there were no AOSP 2.1 ROMs. Why not? Is it because they don't know which BLOBs to pull for insertion or the proper vendor overlays?
Some developers have done great work with SGS kernels (especially supercurio and his Voodoo kernels ... eugene373's tend to always wipe the internal SD card unnecessarily ...). But, a kernel does not a ROM make ... therefore I ask, what is truly missing to build an AOSP ROM. I've gone through the sources, but I don't follow makefiles too well.
I know we have another month or so before Samsung is obligated to release their 2.2 kernel sources, but that should have no impact on 2.1 AOSP ROMs. Therefore, I ask "what is the hold up?" What is missing, and what might I contribute ...
Click to expand...
Click to collapse
Dude theres been a true AOSP ROM for the Vibrant since like december and thats CM 6.1
Im running it now
rpcameron said:
I've been following the development of so-called ROMs for the Vibrant (and other SGS devices), but I have yet to see a single AOSP ROM. Even when Samsung released the original kernel sources for 2.1, there were no AOSP 2.1 ROMs. Why not? Is it because they don't know which BLOBs to pull for insertion or the proper vendor overlays?
Some developers have done great work with SGS kernels (especially supercurio and his Voodoo kernels ... eugene373's tend to always wipe the internal SD card unnecessarily ...). But, a kernel does not a ROM make ... therefore I ask, what is truly missing to build an AOSP ROM. I've gone through the sources, but I don't follow makefiles too well.
I know we have another month or so before Samsung is obligated to release their 2.2 kernel sources, but that should have no impact on 2.1 AOSP ROMs. Therefore, I ask "what is the hold up?" What is missing, and what might I contribute ...
Click to expand...
Click to collapse
For probably the same reason that many phones with non AOSP firmware running 1.5/1.6 did not bother with AOSP 1.5/1.6 when they were released around the time 2.1 source hit. Why bother developing at all for what is essentially an "out of date" OS.
The only people it seems who actively continue to develop for existing (as opposed to new) firmware are manufacturers and carriers. This stupidity should be left to the manufacturers who still do this.
One of the larger snags way back then (sits in his rocking chair on the porch) was a lack of understanding of the phones proprietary aspects and how to work around them. But we have a fairly clear understanding of Samsung's boot process now, and RFS can now easily be turned into a distant memory.
I would wager a guess that the apathy towards 2.1 will not repeat itself once we have 2.2 source widely available and the low level similarities between 2.2 and 2.3 should have Gingerbread being more than the experiment it currently is. It's been barely more than a week since Eugene's little present manifested and there are already proper and stable kernels available.
Keep in mind that the devs we do have, have done a phenomenal job of cleaning up, speeding up, and drastically enhancing our existing 2.2 release. And perhaps to the point where many will not really care, though I know many would still like to see CyanogenMod6/7 properly on this phone.
Master&Slave™ said:
Dude theres been a true AOSP ROM for the Vibrant since like december and thats CM 6.1
Im running it now
Click to expand...
Click to collapse
Um, that's not quite true. The CyanogenMod.com website lists 0 files available for download for either experimental or stable files. The CM6.1 you must be running is not a true CM build.
Also, CM is not AOSP, but rather AOSP with modifications.
phrozenflame said:
A noob question, kindly can someone explain what is the vendor overlay stuff?
Many thanks!
Click to expand...
Click to collapse
The vendor overlay tells the AOSP build system which proprietary files are needed from the device that are not available in source form. This includes things like GPS and video drivers, baseband firmware for wireless radios, &c.
hi everybody !
a month age i decided to compile a new rom for my Galaxy S absolutely from AOSP source ( branch 2.2.1_r1 ) after some compile-time problem and many painful steps to resolve ,eventually the rom successfully built and can boot it up flawlessly on emulator.
i create a nandroid backup of current rom and installed the compiled one. but i am facing new problem :
1- the phone successfully boots but after short while screen began
flicking several time and the phone go in deep sleep and never wakeup
( power button or menu button does not do any thing )
2- touch screen works only for some second that I can unlock the
phone
3- there is no network available
4- I have downloaded samsung opesource package for GT-I9000. it
contains a folder named 'platform' but when i merge these files to
AOSP , the compile process stops and fails again. if there any one can
help me which files from samsung source should i merge and how ? if
you now the answer and dont have spare time then some internet link or
online document is really useful .i have no problem studding and
reading and searching . reaching to target is my only hope .
I am really disappointed why there is not a good and complete step2step tutorial to compile an AOSP rom for galaxy s (GT-I9000) !!
such docs is available for phones like dell streak , desire , dream , magic , .... . i really want to to active these aspect on XDA forum and with help of all you ( mods and masters ) try to create such tutorial that any one in world can use to refer . i think XDA is the only reference on net to collect and create such help and document. please help me and leave PM or comment to agree ot disagree and from where can i start ?!! thank in advanced .
edit :
there is a google groups post that i send my question in Android-platform . if you prefer please join this group and active that post to ask any question related to 'galaxy s compile from source ' .
post located at http://groups.google.com/group/android-platform/browse_thread/thread/da5d6f18f3bd3c9b

Forking and porting CM7 to an unsupported device? (Gio GT-S5660M)

Hello,
So far, I have:
A working Android build environment (Ubuntu 11.10 x64).
Managed to build, install and boot AOSP on my Nexus S. (I have downloaded but not attempted to build CM7 yet.)
Created a Github account.
Samsung's open source files for my target device, the Galaxy Gio GT-S5660M.
I've read some documentation and forum posts about Github, but I remain unsure as to what I should do to fork in a way that:
I'll be able to keep on syncing the remainder of the code.
My new device directories and modifications could be brought back (pulled?) to the main CM7 code base.
Will avoid needless frustrating re-downloads of the source code.
Thanks in advance,
Darkshado
After some further reading, I'm beginning to grasp some git basics...
I've forked two CM7 repos so far, added them as remotes in the appropriate installations. (Instead of forking and cloning, since I already had repo sync'ed the whole CM7 source. My commits show up on Github like they should, and I should be able to merge in commits to the origin remotes.)
I'm not going to do any pull requests until I've managed to build and boot.
By the way, yesterday I attempted to build AOSP with a bunch of files overwritten by the Samsung sources (that's how they tell you to do it!!) and this failed, as I expected.
Goodbye,
Darkshado
Update: I'm currently trying to port CM7 to the Gio 5660M. Still attempting a first successful build as I'm writing these lines.
My main issue so far has to do with the camera. I get the following error message:
make: *** No rule to make target « out/target/product/gio5660M/obj/lib/libcamera.so », needed by « out/target/product/gio5660M/obj/SHARED_LIBRARIES/libcameraservice_intermediates/LINKED/libcameraservice.so ». Stop.
After toggling off the camera by using the stub, I hit the same error further into the build with this:
make: *** No rule to make target « vendor/samsung/gio5660M/proprietary/wifi/ath6k/AR6003/hw2.0/athtcmd_ram.bin », needed by « out/target/product/gio5660M/system/wifi/ath6k/AR6003/hw2.0/athtcmd_ram.bin ». Stop.
I know this has to do with makefiles, but that's about it...
Thanks in advance for any help,
Darkshado
hi i'm interested too.
hi I found your github because I also interested poriting cyanogemod to galaxy gio korea(SHW-M290K). the device hardware is different from s5660. so I need some modification.
and your libcamera problem is that there is some reason that the make system can't find libcamera.so, so they cannot compile libcamera service. it should be in ./vendor/samsung/gio/proprietary according to your extract-files.sh .
have one cuorisity. I searched gio android device make file. and none of them are relreased source code. how did you make them?
I found this information. it may help you.
http://processors.wiki.ti.com/index.php/TI-Android-GingerBread-2.3.4-DevKit-2.1_PortingGuides
I'll have to update my Github, hadn't been in a rush due to lack of progress, but now my problem lies with libaudio instead.
I got the Samsung sources for the 5660M on their open source website, although I mostly worked with the CM7 ports for similar devices like Tass and Cooper as well as a Gio source provided by Phiexz but it didn't build either.
Thanks for the link, I'll check it out.
proprietary does not help
do you have any progress since last time?
well, I admit that proprietary files does not help.
does your s5660m hardware identical to s5660v?
becasuse galaxy gio in Korea(shw-m290k,shw-m290s) does different hardware.
well in this case, like me, you need to hack into not only android pdk, but also android kenel.
I have seen that phiexz has released kernel with latest cyanogenmod kenel in his github and I am modifing it to shw-m290k. there are some hardware differences i have to apply to.
I suggest you to compare phiexz's kernel and samsung original kernel from samsung opensource homepage.
My problem right now is that I don't have that much spare time to put into this, and that I'm very much learning as I go, so progress is not always that quick. Also, I'd like to get my Touchwiz based ROM updated and working properly before trying to build AOSP or CM again.
Another thing I want to try is building the kernel (probably based on Phiexz's) that will support ext4, and compare performance of the Touchwiz ROM on ext4 versus RFS.
As far as we can tell, GT-S5660 (Europe/Asia) GT-S5660M, L and V are identical except for the radio firmware. People with the 5660M initially encountered issues after flashing 5660 ROMs because they also contained the AMSS image.
my cyanogen kernel is based on samsung open source kernel
because cm-kernel on cyanogenmod github dont support our device, if we wnt use that kernel we must add some hardware pofile & board for galaxy gio
so alternative is make samsung's open source kernel compatible with cyanogenmod
Wouldn't it be much better from a code maintainability standpoint to make the CM kernel work on the Gio? (Also if you ever hope to get official CM team support, that's a given.)
The way I understand repo and git, you could create a github repo for your device and board configs and add those to your repo manifest so the whole CM7 source and your modifications all sync properly.
I've forked the CM7 manifest files off github, added my gio files and removed all those extra devices I didn't need, so my repo syncs are much faster too. (The idea comes from http://slightlymorethanworthless.blogspot.com/2011/05/remove-unwanted-devices-from.html)
hey a quick question...
just starting out here..
i'm on win7 32 bit, going to run ubuntu on virtualbox.
shud i choose ubuntu 32 bit or 64?
sorry for OT.
doesn't really matter
roofrider said:
hey a quick question...
just starting out here..
i'm on win7 32 bit, going to run ubuntu on virtualbox.
shud u choose ubuntu 32 bit or 64?
sorry for OT.
Click to expand...
Click to collapse
doesn't really matter. but compiling process needs much cpu power. so 64x would be better.
Well, im not a dev or a user of gt5660m, but good luck to you, hope u can finally port it
Sent from the GUN in my pants
darkshado, if you have same problem untill now.
http://strazzere.com/blog/?p=220
look this page. and check out koush's proprietary page. especially for samsung cooper(galaxy ace). because many of kernel procedure are same for gio.
https://github.com/coolya/android_device_samsung_cooper.git
https://github.com/koush/proprietary_vendor_samsung
i've upload galaxy gio source + proprietary files for galaxy gio
please see & help to fix some problem
github.com/phiexz
Darkshado said:
Hello,
So far, I have:
A working Android build environment (Ubuntu 11.10 x64).
Managed to build, install and boot AOSP on my Nexus S. (I have downloaded but not attempted to build CM7 yet.)
Created a Github account.
Samsung's open source files for my target device, the Galaxy Gio GT-S5660M.
I've read some documentation and forum posts about Github, but I remain unsure as to what I should do to fork in a way that:
I'll be able to keep on syncing the remainder of the code.
My new device directories and modifications could be brought back (pulled?) to the main CM7 code base.
Will avoid needless frustrating re-downloads of the source code.
Thanks in advance,
Darkshado
Click to expand...
Click to collapse
Really the best kernel for your phone is here:
http://forum.xda-developers.com/showthread.php?t=1991020
BLN enabled, optimized&stable kernel, jelly bean look
Whoa! Zombie thread!
Dude: the ROM you linked was published over a year after my original post in this thread. I'm pretty sure there was NO CM7 build available for the Gio back then. That's what I was trying to work on, but got beat to the punch by Maclaw and a couple others. (Hard-bricking my Gio and having a sluggish laptop to build on didn't help.)
Besides, I got rid of my Gio a long time ago. I enjoy my Note 2 and keep my Nexus S as backup.

[Q] Kernels and Android Versions

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

[Q]Building ICS from AOSP Source on P7510

Hi all devs for P7510:
I'm following guides all over the place in my attempt to learn a thing or two by building AOSP ICS (specifically the 4.0.4_r1 branch) from source. I know that Google states building anything other than master on a version of Ubuntu higher than 11.10 is experimental and not really supported - seen many Google Groups threads indicating this. I've been able to patch and fix some of the errors that I'm seeing, but others that I'm searching for are answered with links back to the AOSP website where it's simply saying building anything other than the master branch on Ubuntu 12.xx is not officially supported.
I am getting ready to re-do my dev environment with Ubuntu 10.04 to see if that really does make a difference somehow, but had a couple of questions that I'm hoping someone can answer as I get ready to try again.
1) Has anyone out there built AOSP 4.0.4, from a branch other than master, successfully for the P7510 device?
2) If so, with what version of Ubuntu/Linux and were there many errors encountered when compiling that required fixes via manual code revision rather than simply applying a missing dependency or toolchain fix?
I've searched high and low and it's proving particularly difficult to find info on whether or not someone has been able to build a non-master branch of AOSP ICS 4.0.4 for this particular device. I know I could just abandon it and try to build JB or something instead but really want to see if I can pull this off. Hoping someone out there can help me out!
Update: I was able to complete a build today!! Please disregard the questions, self answered.
Sent from my GT-P7510 bleeding CM10 inverted awesome

Mixing AOSP sources with Galaxy S4 Team-Gummy code

Hi all,
I've been experiencing with Team-Gummy Rom source code for quite some time now. I usually compile from source to get the latest, along with some of my own addition. Lately I've been obsessed with having Android L code running on my Galaxy S4 (qcom) and so I downloaded AOSP source and after some failed attempts I was able to build it with the S4 device package from Team gummy.
So way cool! I may have in my hands the first (maybe not but as far as I know anyway) Android L build on the S4. But before going further, I have a question. In theory if I flash the system.img file produced by the build process and keep the kernel and boot.img from my current install, it should all come together right? Anyone here has an Idea what it would do?

Categories

Resources