Compiling & replacing framework.jar - Android Software/Hacking General [Developers Only]

A couple of weeks ago, I picked up a used G1 from craigslist, and I really like it. However, I was disappointed to find out that it won't work with my university's WiFi system. I did some searching and came up with issue 1597 on the android google code page (apparently I can't post a link yet). Post 45 on that thread explains the fix, and since it seems fairly easy to apply to the Android source and google won't release it for who knows how long, I decided to do it myself. However, getting it onto the device has been a real problem. These two threads (which I can't link to either):
t=476563 and t=629551
lead me to believe that I can essentially compile the android source, push the new framework.jar to the device, and the fix will be in place.
I eventually got it to compile, but when I try to install it, It just hangs on the G1 screen. I've tried building it on Ubuntu 9.10 and OS X Snow Leopard using the sources from 2.1 and 1.6 and installing it on King Eclair and BlueMagic Donut (the stock firmware lasted maybe 6 seconds after I got it), and I'm getting the same results, even if I just build the source unmodified. I've probably tweaked and recompiled it 20 times now, and am about ready to lose my mind. I think every time I've gotten at least one error from certain jni libraries not compiling properly, but I've assumed that since they appear to be just for the device, not the system I'm building on, and all I need is the jar file, which should be relatively independent, that isn't important. I'm willing to try a stock rom on my device if that's what I need to do, but I'd like to believe that Android isn't so fragile that I can't use an essentially stock framework with a tweaked rom. Maybe that's not the case, though.
The logcat from my most recent attempt (Currently running BlueMagic) is attached. Everything after the second "AndroidRuntime START" will repeat forever until the phone is rebooted. I've also attached my patched SslCertificate.java and the latest framework.jar I've built from the 1.6 source, if it's any help. I realize the changes I've made to SslCertificate.java might not solve the problem (IMHO the patch description wasn't as clear as it could have been), but if I could actually get something that I've compiled to just run on my device, I think debugging it would be relatively trivial.
I'm not an idiot, I understand most of what's going on here and I've spent a lot of time reading, searching and trying to do this myself, and have attempted to demonstrate that in this post. I am relatively new to Android, but I have been trying to learn as much as I can about it. I don't think this should be so difficult, and I'm really stuck at this point. I assume I'm missing something obvious. If anyone with experience compiling and tweaking Android can spare the time, any advice would be appreciated.

Related

Mer linux for kaiser.

EDIT:
Magister2k7 said:
Please update first post of a thread, as Mer should run X with a latest kernel from git.
You just need to disable FB_MSM_DOUBLE_BUFFER ("Enable MSM Framebuffer double buffering") and enable framebuffer refresh thread.
Click to expand...
Click to collapse
Yeah, I kinda doomed myself from the start with how I structured this post. I'll restructure it later to be more able to show you good information.
Old start:
Mer is a more community-led version of the Maemo phone and internet tablet operating system. See http://wiki.maemo.org/Mer/ .
I was in contact with a member of that project (Stskeeps on freenode#mer), who gave me some information about porting this to phones such as the kaiser. He and I thought it would be a great way to benefit both communities (we get a good, not google-owned linux-based os for our phones, they get developers helping them make mer better). We also agreed that it would take a bit of effort.
First of all, Mer is completely designed for landscape-only, 800x480 phones at this point. It has been run well at 640x480, but that's still 4 times our native resolution, and 2 times what we can fake without crashes. The resolution problem is easily fixed by skilled theme-makers. The landscape/portrait problem should be fixed soon, given that the upcoming n900 will be a portrait/landscape phone. He said wait for the maemo conference for more on that.
The other problems we might hit basically are just the standard problems of molding the userspace around the kernel (get a phone app working, get the modem to work, etc.).
If you are serious about helping, please come to #mer and/or #htc-linux on freenode. At this point, the mer folks are probably more help to what we need to do.
INSTRUCTIONS:
At this point, quite literally nothing works, but it all almost works. Here's what I did to get that far:
1. Partition your sd card into two partitions, and make the second one ext2.
2. Unpack (with the -p option of tar) the rootfs (http://wiki.maemo.org/Mer/Releases/0.16testing , pick the q5 rootfs) to the ext2 partition. Make sure that it's not in any subfolders, but as the root of the drive.
3. Grab a zImage (or build your own) using the instructions we had in place from android. Put it on the fat side.
4. Set up HaRET on the fat side - Use a default.txt from android, get rid of the initrd, get rid of your ppp stuff (for now), and add "root=/dev/mmcblk0p2 rootwait" to the kernel cmdline.
5. mknod /dev/fb0 c 29 0 (this was my number, check using the terminal in android, cat /proc/devices for the major, and /proc/fb for the minor). Also make sure that it's within the root, not on your disk .
That should boot, giving you a ton of messages about an "incorrect resolution png" or something - that's the splash screen unable to load. Simply rename /lib/init/splash-* (two files) to something else. Once you get a terminal later, there's an actual package to remove, but this lets it go a bit further.
You also need to keep X from starting at this point - all it does is hang. I have not yet done this myself, but it should be an initscript that you just un-link.
EDIT: It wasn't X that caused the issues. It was the combination of failed splashes and consolefont. Comment out the lines with "splash" in them in /etc/init.d/check{fs,root}.sh, and re-run.
I do not know if X actually fails - doing that test now.
EDIT: hitting framebuffer issues... no X yet.
So, if you're adventurous, and preferably a dev at this point (this is completely useless to users), please try this out and make it better!
Okay, just a note: the password is "rootme".
First reply!
this is relevant to my interests. I'll take a look. I remember seeing that Maemo was made on top of Gnome. Do you know if there's a chance to get Debian apps on here? That's the big thing for me to get me working on it-- some type of desktop compatibility. Having an X-server is perfect. Looks like you're saying the resolution issue is purely theme based? How open are the devs for it for suggestions and feedback?
2nd reply
This does sound cool
already made some read about this in the new nokia n900..
its cool.. it free.. but i dont like the ui :\
lets see where this goes.. but.. for now.. for me... android (L)
Ok, just saw it's Jaunty based which is what I've been looking for in a phone.
Is there a list of features/bugs/issues and what's been developed so far? Seems like if the kernel brought to us in part by dzo will work maybe it won't be so hard to get wifi and other features working. A list is good.
I'll admit I haven't put much effort into it, but at this point X won't work, for one thing - probably have to change the resolution in a config somewhere.
Indeed, most of the hardware should be fine - I imagine, for example, once we are able to load the firmware, wifi should be good. Some code will have to change (a few things are built android-specific in the kernel), and some of the RIL stuff especially (phone, data, etc.) will have to be ported by someone who has that code and some time.
Indeed, Mer is Ubuntu-based, and so, according to their site, 95% of ubuntu apps should work perfectly. This is really nice for getting software on (aren't just limited to any applications in an app store or market.).
At this point, all we need to do is everything .
I'm going to try now to disable X and see if I can't get a few more things working.
EDIT: in response to your question about how open the mer-folk are to suggestions? The idea that I got from talking to them was that they are more than happy to get this extra help, and since they are trying to bring this to more devices, they are willing to put up with our requirements, to make this more readily available in general.
Alright, as I edited, I got some more success.
By removing the splash calls and the X starting, I can get a terminal. I edited the /etc/shadow file to have a password that I knew for root. Now, I can log in as root on the console (/dev/tty1).
I tried to start X, and I'm getting some strange framebuffer errors.
I'll keep you posted.
Wow, if we could get this working, it'd be sick! Thanks for posting, formatting now.
with all the hard work already done for the Android port, seeing devs being interested in Mer is REALLY PROMISING! Waiting for Google to open up Android even more, is frustrating...
Porting Mer and thus having a REAL linux (kernel+software stack) is what we need to leverage the dev capacity of the great XDA community. At least, this is what I feel like .
Owning both a Kaiser and 2 N800s, I'll probably try out the stuff posted here... I was keeping an eye on Mer for my N800s anyway, but using it on the Kaiser is more triggering
so devs, have courage and good luck!
Frame Buffer and X server
Unfortunately I've been quite busy lately and haven't been following the Android development as closely as I would like. (I don't think I've updated my git repo for months)
If I remember correctly, the frame buffer code in the kernel wasn't finished. That would prevent X from running. Can anyone say whether that was completed? I just wanted to mention this in order to avoid people wasting their time if it is in fact the problem.
It would be great to *eventually* see X running with hardware acceleration, can anyone point me to info about how DZO got that working? Was it reverse engineered, or did he figure out how to make some binary blob happy?
It will be nice to have some choice of Linux based distros the Kaiser and Vogue. Keep up the good work everybody, I appreciate it!
-Mysteryvortex
I've been looking at the n900 for quite some time just waiting for its release to the US next month. I know nothing about developing but I am very excited about this one, and I hope that there is a quick start to the apps that are put out for it. I was curious myself as well at how this would port to the kaiser so I could get a good hands on before I went and bought one. I would be more than happy to be a tester. I bought an iphone cause cause the little green guy is really starting to piss me off and my tilt's about to give up the ghost. I quickly gave it to my wife as the signal strength and battery life just sucks so I hope this maemo can give me what I want
mysteryvortex, Android does not use an X server at all. This was my disappointment when issues arose trying to run Ubuntu in a chroot. This is different though. We should be looking at troubleshooting the X server as top priority I think. The rest should flow. Bear in mind the kernel for Android, like I said, has nothing to do with X compatibility since Android uses its own display so the kernel should need some serious work.
poly, is the build you linked to hardware specific? Looks like a generic one. If so, then the only outstanding difference should be the kernel and if that's the case we should be able to use this on any phone we happen to have a kernel for right?
enatefox said:
mysteryvortex, Android does not use an X server at all. This was my disappointment when issues arose trying to run Ubuntu in a chroot. This is different though. We should be looking at troubleshooting the X server as top priority I think. The rest should flow. Bear in mind the kernel for Android, like I said, has nothing to do with X compatibility since Android uses its own display so the kernel should need some serious work.
poly, is the build you linked to hardware specific? Looks like a generic one. If so, then the only outstanding difference should be the kernel and if that's the case we should be able to use this on any phone we happen to have a kernel for right?
Click to expand...
Click to collapse
The build has a kernel and stuff, but don't use it. Use the regular stuff from android (or build yourself from htc-vogue).
mdrobnak from irc got mer up on his raph - thanks to the vga screen, with a quick kernel patch and some xorg.conf modification, he got X working great.
Within the next few days, I'll do some tests of the data connection and such.
enatefox said:
mysteryvortex, Android does not use an X server at all. This was my disappointment when issues arose trying to run Ubuntu in a chroot. This is different though. We should be looking at troubleshooting the X server as top priority I think. The rest should flow. Bear in mind the kernel for Android, like I said, has nothing to do with X compatibility since Android uses its own display so the kernel should need some serious work.
Click to expand...
Click to collapse
Yes, that's correct. Android doesn't use X. Many, many months ago, it was mentioned that the framebuffer in the Vouge/Kaiser kernel (which X will use) was broken. Nobody was planning to fix it since Android doesn't need it. I was just trying to point people who have time to work on supporting our phones in the right direction.
poly_poly-man: Looks like the Raphael kernel is being developed on another branch, but it sounds like the FB patch helps us?
-Mysteryvortex
poly_poly-man,
I have setup my second partition of sdcard to 512MB and extracted there Mer preserving permissions.
What I did also is to modify the x config and change resolution and also resize the Mer-logo.jpg so it fits.
After I tried to boot I went successfully through all steps (at least I think so) and a blank screen appeared to me.
Can you tell me what was the parameter to output the Haret boot sequence to a file, so I can check what passes and what fails?
Another question: The following "mknod /dev/fb0 c 29" have to be performed on root of second permission, right? If so I think the command should be ""mknod ./dev/fb0 c 29", am I correct?
Regards,
Borkata
Borkata81 said:
Another question: The following "mknod /dev/fb0 c 29" have to be performed on root of second permission, right? If so I think the command should be ""mknod ./dev/fb0 c 29", am I correct?
Click to expand...
Click to collapse
'./dev/fb0 c 29' does only work if you are in "/" (root of the filesystem) otherwise (and in all other cases) 'mknod /dev/fb0 c 29' is correct.
bye...
Borkata81 said:
poly_poly-man,
I have setup my second partition of sdcard to 512MB and extracted there Mer preserving permissions.
What I did also is to modify the x config and change resolution and also resize the Mer-logo.jpg so it fits.
After I tried to boot I went successfully through all steps (at least I think so) and a blank screen appeared to me.
Can you tell me what was the parameter to output the Haret boot sequence to a file, so I can check what passes and what fails?
Another question: The following "mknod /dev/fb0 c 29" have to be performed on root of second permission, right? If so I think the command should be ""mknod ./dev/fb0 c 29", am I correct?
Regards,
Borkata
Click to expand...
Click to collapse
It seems that even set to the right resolution, our fb does not work with X. Needs more patching than just the patches I got from the other branch. We may need to move up to the other branch, I'm not sure.
the /dev/fb0 should be replaced with /path/to/sdcard/root/dev/fb0, of course. And it's better to just get rid of all the splash references - that way, you don't get the blank screen issue.
toasty_ said:
'./dev/fb0 c 29' does only work if you are in "/" (root of the filesystem) otherwise (and in all other cases) 'mknod /dev/fb0 c 29' is correct.
bye...
Click to expand...
Click to collapse
Yes, but poly has written that user have to be in root so that was what I have asked
Question: our fb driver is msm_fb?
poly can you share which patches you tried from raph branch?
Borkata81 said:
Yes, but poly has written that user have to be in root so that was what I have asked
Question: our fb driver is msm_fb?
poly can you share which patches you tried from raph branch?
Click to expand...
Click to collapse
Oh yes, you're right. I should first read the full post before answering questions that havn't been asked
Borkata81 said:
Yes, but poly has written that user have to be in root so that was what I have asked
Question: our fb driver is msm_fb?
poly can you share which patches you tried from raph branch?
Click to expand...
Click to collapse
http://people.openezx.org/tmzt/
the msmts and vres patch. Didn't work, because there are more problems in our older kernel.
I'm interested in finding out why we aren't on 2.6.27 already...

[Q] G Tablet Ginger 2.3.4 com.android.future.usb PLEASE

Hi everyone, For the last two weeks I have been trying to develop my own custom Gingerbread + custom view sonic kernel.
Today I finally have them packaged into a update.zip file but it wont install due to status 6. Sadly I really have no clue if thats the last part I need to over come before I can install, or perhaps there is more than just that issue since the only tutorial I could find were dated / incorrect / incomplete / or written by someone who ate pain chips as a child.
So Really all I want is Gingerbread with com.android.future.usb.Accessory / Manager
AND (this is important also)
I also need the Viewsonic kernel to support the Prolific driver 2303 (this is in the menuconfig so it should be easy to add).
In addition, if anyone could please point me to resources when I can accurately learn how to build the OS / Kernel / update.zip file that would be wonderful. My head hurts so badly from reading all these broken english posts where the scrip examples are riddled with typos.
Oh also two weeks ago was the first time I ever saw Ubuntu (thats what im currently working on as well).
Thank you and sorry for the aggravated post but I seriously need help, my job is in the balance. Thanks Again
Anyone know of a rom that has these features already in them? Or perhaps a good couple of tutorials that will allow me to create my own? I dont want anything fancy just plain vanilla.
DKS1282 said:
Hi everyone, For the last two weeks I have been trying to develop my own custom Gingerbread + custom view sonic kernel.
Today I finally have them packaged into a update.zip file but it wont install due to status 6. Sadly I really have no clue if thats the last part I need to over come before I can install, or perhaps there is more than just that issue since the only tutorial I could find were dated / incorrect / incomplete / or written by someone who ate pain chips as a child.
So Really all I want is Gingerbread with com.android.future.usb.Accessory / Manager
AND (this is important also)
I also need the Viewsonic kernel to support the Prolific driver 2303 (this is in the menuconfig so it should be easy to add).
In addition, if anyone could please point me to resources when I can accurately learn how to build the OS / Kernel / update.zip file that would be wonderful. My head hurts so badly from reading all these broken english posts where the scrip examples are riddled with typos.
Oh also two weeks ago was the first time I ever saw Ubuntu (thats what im currently working on as well).
Thank you and sorry for the aggravated post but I seriously need help, my job is in the balance. Thanks Again
Click to expand...
Click to collapse
this is the thread i used to get me started compiling a module for pershoots kernel
http://forum.xda-developers.com/showthread.php?t=916198
obviously run your own menuconfig somewhere in there (i think its in one of the steps) and turn on whatever you want. Also save the modules that you create as the default pershoot ones wont insert into your custom module at that point
[edit] there is a thread in the gtablet devel section for pershoots latest (i think 2.6.32.42) that may have this already: http://forum.xda-developers.com/showthread.php?t=903505 [/edit]
Thanks for the links. I was able to pull the config file from Ginger 2.3.4 and it seems to have the required driver for the prolific usb to serial converter, although when I write a usb detection program and attempt to load it onto the tablet, well I get a missing shared library com.android.future.usb.
So now thats kind of odd because its 2.3.4 and Google specifically says it supports the library I need. So I guess what Im asking is there any Ginger or even honeycomb OS for the Gtablet that supports this?
Once again Thanks for a point in the correct direction.
Is there anyone I can communicate with directly in creating this? Ill be more than willing to donate my work so that it could be built upon. I just can not believe that this has not been added in yet.
Ive pushed android.hardware.usb.accessory.xml to /etc/permissions
and ive pushed the com.android.future.usb.accessory.jar to /system.framework
This seems to do absolutely nothing. Does anyone have a version with the USB accessory working for the G tablet? Or could anyone Communicate with me directly perhaps by IM? Thank you very much again.
So after some tweeking I can now get my program that requires com.android.future.usb.accessory although thats all it does. It wont detect the USB or use any USB features. Im sure im programing it wrong, although It detects USB drives and keyboards and such it will not detect my USB to serial Prolific cable.
Im trying to compile the kernel and install it but really, nothing works... Im typing commands I dont know what they mean, and i get responses like "Permission denied" so I use sudo on the command and get "not a valid command". So I didnt have permission at first, then once I did it wasnt a valid command? No wonder why ****ty old windows stomped ubuntu into the ground... I feel windows phone will destroy google if its this hard to develop a single app that I have on the IPHONE / WINDOWS PHONE / WINDOWS 7 but cant get it on android... WTF
Im just wondering how you successfully compile Gingerbread 2.3.4 and Leave out part of the MAJOR update. Why not just use 2.3.3?
Anyway Ive personally fixed that, although when i pull the kernel it shows the prolific driver is installed but there is no detection when I plug the cable in.. Nothing nadda. just like the replies to this post. Im guessing people dont have any problems at all with all the really bad tutorials out there and the lack of support even on this, a developer site, I cant even ask questions to the developers because I dont even have 10 posts yet. Also it just seems like the only thing people on this site is Over Clocking. It done matter if its a peice of ****, as long as its over clocked, Or some of the roms I installed and they are SO bad, but man they are over clocked... Or the roms that say they are 2.3.4 and happen to be 2.3.3. Or the ones that just wont install. How has android made it this far, its actually pretty bad, but then again im sure Im the only human with these problems, because I really cant find anything on the Internet after a good long while. I tough myself enough law to win a law suit against a company with high priced lawyers in less time than this is taking... And im no good at law at all.

[Q] Automatically Boot Phone when Charging

I have a desire for an Android phone that will automatically boot up whenever it is connected to the charger. I know this cannot not be done using the standard Android API. So, I am now looking at ways I can accomplish this by altering the phone's ROM.
I am currently using a Samsung Droid Charge for this, but I am willing to change phones if it would make it easier. I have downloaded the OS source from Samsung and started poking around, but it's is pretty overwhelming.
The problem is that I am not sure what layer of abstraction these mods would have to take place (The Android OS, the Linux Kernel, or the hardware drivers). Once that is determined, I will have to determine 1. where to make the call to boot and 2. what call/calls I need to make to boot the device. I assume this would be the same place the battery animation (that shows when charging but not booted) is controlled, but I don't know where that is.
I am not looking for anyone to do my work for me. I mainly need a place to start looking. Any insight at all into this matter would be greatly appreciated. If this doesn't belong in this forum, my greatest apologies.
I know nothing about how to do this but my HTC Evo Shift actually used to boot up when plugged into the charger due to a bug in CWM recovery. Koush fixed it a couple updates ago though. So, apparently it (at least on my Shift) has something to do with recovery.
^ Shift Faced
I think this thread may be more appropriate in the "Chef Central - Android" forums since it is directly related to ROM cooking and not app development.
If a mod could move this thread there, it would be greatly appreciated. I'm sorry I didn't post this there originally.
There is an app avaible on google play/ google market
there is an app available that can perform this task. it is developed by chainfire and it is called as "NoMoarPowah!"

Suggestions for wonderful experts helping us noobies

Yes, I definitely mean “wonderful” and “experts.” It is astonishing how much time, effort, and expertise the people who write the ROMs, etc., do for others, just to help us enjoy our cellphones. So, it is with no disrespect that I offer these comments on the instructions the experts give to us noobies to help us try to make our phones work better when they post “complete” instructions about how go to about this.
#1 – Odin.
There’s lots of advice to get Odin, but there are lots of Odin versions out there. Usually (generally in the computer world) what works when there’s a recommendation to get a program is to find the latest version. Even if a forum posting has a link to get a program, we figure that was the latest version available when the post was made and it still makes sense to get the currently latest version. That doesn’t work here. The latest Odin version I found was Odin 4.28. 4.28 totally fails to recognize my Samsung Droid Charge. But, if I use the ones referenced in the postings here (e.g. Odin3 v1.85) it recognizes my phone immediately. I understand the feeling that if we’re noobies we should just follow the directions exactly as written, but a little footnote about how this is different than everything else with computers would help.
I’m sure it isn’t true, but Odin seems to come from a mystical cloud location without any existence in our 3 dimensional universe. So, there seems to be no home website to explain that the latest version shouldn’t necessarily be used by everybody. And, there seems to be nobody on the forum who takes credit for upgrading Odin. Very mysterious.
Also – there’s at least three ways I’ve seen adamantly expressed as the proper way to connect a phone to Odin. #1 – simply attach the phone to the computer in the usual “download” mode, and Odin will find it.
#2 – Take out the phone battery for 5 seconds, replace it, then boot into recovery mode by holding down the up-volume, power, and home keys until “Samsung” flashes twice.
#3 – Take out the battery and don’t return it. Plug the phone into the computer, booting into recovery mode like #2.
As far as I can tell, #2 and #3 were needed for prior versions of Odin. Still, we noobies do Google this process, and it’s scary getting these conflicting directions about how to proceed. So, since you are obviously trying to make things less scary and confusing for us, you could mention this too.
Part of the problem is that there are various “Here’s how to replace your stock ROM with a better one” postings. Maybe each of them works perfectly, and there are many paths to enlightenment. Still, it’s worrisome for a noobie to try to figure out which of these paths to bet our phone on. (Of course, it’s also difficult for people trying to actually achieve spiritual enlightenment to decide on a path, so maybe this confusion is just an inevitable part of human experience.)
(cont. below)
#2 – CWM – Clock Work Mod.
I’m still confused about the need and timing of this one. Some sources say it’s entirely optional, just allowing other cool stuff done later. Others seem to say it’s important to install (flash through Odin) this before installing the new ROM. And, then there seem to be some ROMs that Odin can flash that do it all at the same time. And, then, there’s the issue of what order things are to be done in. If we just use Odin to flash a new Gingerbread ROM, can we, or should we, use Odin to flash in CWM?
As a noobie, I’m inclined to the “the less I mess with, the less chance I have of screwing everything up.” So, I think I’d like to skip the CWM while installing my new ROM, and wait to use CWM until I find some additional cool feature I can’t add without it.
#3 – ROM’s.
Where’s Consumer Reports when we need them? There are apparently various ROM’s we could use to improve our phones (e.g. Samsung Droid Charge). They are listed with somewhat cryptic explanations. Those explanations are probably perfectly explanatory for experts, but as a Noobie I don’t get a clear sense of direction from reading them. For example, Android 2.2 ROM’s (Froyo) are still listed, along with 2.3 (Gingerbread). Why would anybody want 2.2 if 2.3 is available? I assume there’s some reason I should be considering, but have no idea what it is. Among the 2.3’s, there’s also the “bloated” vs. “debloated” versions. Many of the unremovable (until rooted) stock apps seem to be both useless and resource drainers. But, I don’t know if I’m ready to give up all of them. And, the “debloated” versions are written by programmers, not people who want to devote their lives to writing up detailed commentaries about what is, and is not, debloated and why. Is there any reason not to just keep all the stock apps, and freeze or uninstall them with Titanium Backup later, as I identify the ones I do not want?
I feel anxious when I read somebody’s post about their newly released ROM, with lots of compliments, then comments that some feature now isn’t working. It’s hard enough to get answers about how to deal with the stock ROM.
I’m also confused about the difference between the “kernal” and the “ROM”. My impression is that “kernal” is which version of Android we use. “ROM” is broader, including extra’s like CDM and CDW, and Voodoo, etc. Or, not?
Part of the problem, obviously, is that the ROM writers have to do a different version for every [email protected]#$%^&*! phone that is made. Apparently even with the Samsung Galaxy family, there are enough differences that the ROM’s are customized for each one. (My prior phone was a Vibrant.) I am grateful that we have choices, and that these ROM’s are available, at all, but it would help to get a little more commentary (i.e. recommendations) about which ones are best for those of us just wanting a better ROM.
#4 – Voodoo. This is like the other issues. It seems like a great thing, to make the file system more efficient and do things like improve the sound system. But, it’s also confusing about when/if to install it in relation to the general ROM update.
So, maybe one of the wonderful experts will clarify these things here, or tweak their general instructions, for the benefit of noobies. Regardless, I again express my appreciation for all they’ve done for us.
There's a whole lot of "it depends" in this.
#1 - Odin may be up to 4.28, but Odin3 is newer than Odin. That's pretty self explanatory on its own.
#2 - You need CWM. Period. But, if you are flashing a full Odin ROM, it already comes with it, so you won't have to go into it unless you want to flash a theme or a new kernel. If you are installing a CWM ROM image, you need to flash CWM first.
#3 - Froyo (2.2) is still the only offical release for this phone. Gingerbread (2.3) is coming, but it's still in beta, and not officially released. The only GB releases we have are leaked and are not official final builds, therefore, they are not guaranteed to be of the quality or stability of Froyo, and, more importantly for us, there is no source available for the GB releases yet, so we don't have a lot of the cool tweaks available. So, it really does depend on what you are after.
#4 - All the current ROMs pretty much support it out of the box. If you are going with a stock ROM instead, you need a Voodoo enabled kernel to activate it. If you're ever in doubt of whether you have it and if it's enabled, install Voodoo Control and look at the lagfix section of the app.
I built a web page that has compiled all of the software you need to root, kernel update, ROM, and recover your Droid Charge with direct links to all of the software in one place.
http://www.toms-world.org/android
Plus it comes with very detailed instructions on how to do any one the activities mentioned above.
For those experts who do know how to do all of this, I'd like to see some collaboration and opinions on my directions. I'm only one person so I can't think of everything that could be added as far as a tutorial.
My idea is that a lot of us that know how to do this stuff should start a place where people can find the information they need for the Droid Charge all in one place without having to go from thread to thread, page to page, etc. Having it all in one place would benefit the Droid Charge community greatly.
Thanks for the replies.
Also, answering my own questions,
Not only is CWM necessary, but the remove battery 1st instructions, at:
http://forum.xda-developers.com/showpost.php?p=14692818&postcount=1
are correct. The other instructions I found that didn't include this stop didn't work -- Odin just sat there.
Also, at about page 11 of that xda thread, it says (correctly) that after ODIN says it's done, it's OK to unplug your phone, despite the large, brightly colored screen that says "Downloading... Do not turn off Target!!!"
Also, the kernal is different than the OS. So, first we find and install a rooted kernal (I guess this is like the most fundamental part of the phone's operating system), then pick a ROM (i.e. version of Android) to install.
Yes, now that you pointed it out, I agree it should have been obvious that ODIN3 is a later family version of ODIN, so no matter how high the version of ODIN we find, it's not going to be up the ODIN3 level. ...sigh
In the case of loading GummyCharged, you don't need to pick a kernel. The GummyCharged package contains an already rooted kernel (iMoseyOn's Lean Droid Charge Kernel) so basically if you load GummyCharged you have a kernel flashed along side it.
The only time you have to flash a new kernel is if you want to run a different kernel than the one contained in your ROM. Or if you want to update the kernel to a newer version of the kernel.
The kernel is the heart and soul of an operating system. It does all of the work in coordinating memory and process allocation. Think of it as a traffic cop.
trparky said:
In the case of loading GummyCharged, you don't need to pick a kernel...
Click to expand...
Click to collapse
Thanks. Your description of the kernel is much better than mine.
Another bit of noobie confusion:
The GummyCharged thread at
http://forum.xda-developers.com/showthread.php?t=1163123
says to install through CWM, after rooting. So, I already installed a new kernal, so I could have root.
As I understand better, now, I hope -- even with GummyCharged -- I had two choices, as there are two GummyCharged versions available. One is the two-step process (new kernal, then new OS). The other is to do both at the same time, through ODIN, which would have been easier.
I did install a new kernal, through CDW, seeing that path more clearly.
http://forum.xda-developers.com/showthread.php?t=1104634
Just a note that when my phone rebooted, Titanium Backup said I did not have root privileges. On a hunch, I just rebooted again, and that solved the problem. TB is happy, and so am I.
Then install a new OS through CWM.
Another thread that might have some useful information for you can be found here -> http://rootzwiki.com/showthread.php?4643-HOW-TO-quot-Clean-quot-install-GummyCharged-FE-2.0. Theres a lot there (maybe too much?) but if nothing else there are a number of useful links. I hope it helps!
Off topic: trparky I tried to send you a pm yesterday but my computer was acting up - not sure if you got it or not.
Thanks for all the help. Everything seems to be fine. This is just sort of a summary & wind-up post of another noobie's experience and successful quest for cellphone happiness.
First, there seem to be three ways to do scary things to the e-guts of my cellphone.
#1 -- Odin3 (a.k.a. Odin, but Odin3 v.x is the one that works for Samsung/Verizon Droid Charge [SDC]). Odin3 runs on the computer, with the cellphone properly tethered to the computer, and can insert stuff, like CWM. So, mostly the first step is to use Odin3 to insert CWM (superseding the stock recovery program). From some post it seemed it's possible to skip this step and do everything from Odin3, but that post also said that approach wasn't for noobies, even though it seemed easier to me. Odin3 is an elegant program, but you have to find somebody's Betty Crocker instructions for how to use it.
#2 -- Use the ordinary SDC file tethering to put .zip files onto the SDCard, because CWM uses those to install things like kernels and OS's (versions of Android). Sometimes the kernel and OS come bundled. Sometimes not. I ended up flashing a kernel first, then an OS with a bundled kernel, and everything seems fine.
#3 -- there's some other program, starting with an "H" that can also work like Odin, I think, but I ended up anxious enough figuring out #1 and #2, so didn't want to learn a whole other approach that might, or might not, somehow have been better, so I ignored this approach.
After I had my new root kernel, I used Titanium backup to freeze the bloatware. At that point I sort of chickened/burned out because there were too many choices of which version of Android to flash. I decided I didn't really need any of them, since my phone would be efficient enough without the bloatware running to give me everything I needed. What originally got me to start flashing my Android phone was when I would (repeatedly) receive calls on my old Samsung Vibrant, but the phone was so busy doing some [email protected]#$%^&*! thing that it wouldn't let me answer the call. With a more advanced phone (my new SDC), and frozen bloatware, I was confident I wouldn't have that problem, so just stopped there ... ... ... until I was horrified to receive another call which my SDC told me about but was too busy doing some [email protected]#$%^&*! thing that it wouldn't let me answer the call. OMG, it's happening again! At that point the choice of which version of Android to use because less important, because I was sure that nobody's custom Android would let that happen. So, I went with the GummyCharged Froyo [GummyChargedFE_2.0.zip]. At this point, I'd worked with CWM enough that it was all easy. Downloaded the file, copied it to my SDCard, booted to recovery, erased files & Dalvik cache, flashed the GummyCharged, and restarted. Lovely.
One nice aspect I'd not anticipated was that somebody has thoughtfully improved the process, so immediately my phone started re-downloading and installing the apps I had before. It's kind of a hassle to have to re-do all that manually, so special chops/thanks to the GummyCharged team for that feature. My phone works fine. I've tried, and happily failed, to make it too busy to let me answer a call.
What's left? I have to make donations to the Gummycharged people, whose software I now use, and the person who tweaked CWM that I use. It feels like I should make a donation to the Odin3 trolls, but haven't seem a request for that, nor have any who they are or how to do that.
I'll also be keeping my eye on the developing Gingerbread kernels, occasionally, until it looks like those are so mature that there's no reason to not confidently install & flash (through Odin or CWM, both of which I not feel fairly comfortable with) the upgrade.
On the off chance that anybody's still reading this, I do have one last question:
Can I delete the GummyCharged .zip file from my SDCard. I remember, back when I flashed my Vibrant, that I later deleted a seemingly useless .zip file called "update.zip", and that caused a problem. File isn't huge, so except for my mild OCD, no big problem in just leaving it there.
Thanks, again, to the wonderful experts who've helped me and so many others through this.
angelsix said:
...
#3 -- there's some other program, starting with an "H" that can also work like Odin, I think, but I ended up anxious enough figuring out #1 and #2, so didn't want to learn a whole other approach that might, or might not, somehow have been better, so I ignored this approach.
Click to expand...
Click to collapse
I believe the program is called Heimdall - this is more often associated with Mac users, as ODIN is a Windows program.
angelsix said:
...
One nice aspect I'd not anticipated was that somebody has thoughtfully improved the process, so immediately my phone started re-downloading and installing the apps I had before.
Click to expand...
Click to collapse
I'm not positive, but I believe this to be more of a Google thing. Whatever apps you've downloaded from the market are linked to the google account used on the phone, so once you sign back in on your phone post-flash, those apps (whatever ended up being stored as downloaded-by-you by google at least) start getting pushed to your phone.
angelsix said:
...
On the off chance that anybody's still reading this, I do have one last question:
Can I delete the GummyCharged .zip file from my SDCard. I remember, back when I flashed my Vibrant, that I later deleted a seemingly useless .zip file called "update.zip", and that caused a problem. File isn't huge, so except for my mild OCD, no big problem in just leaving it there.
Click to expand...
Click to collapse
You can delete the file, but this is essentially the installer file - if you ever have need to re-install it later on, you will need that (or a more up-to-date one if such a thing exists) file again. I tend to be an electronic pack rat myself, but you can delete the file from your SD card without any immediate adverse effects. If I remember right, the "update.zip" of old was associated with some earlier variants of CWM - without it you would not be able to get to the "custom" recovery (i.e. CWM) to flash things. Seems like such things are no longer necessary anymore, at least not with the recent versions.
dwitherell said:
I'm not positive, but I believe this to be more of a Google thing. Whatever apps you've downloaded from the market are linked to the google account used on the phone, so once you sign back in on your phone post-flash, those apps (whatever ended up being stored as downloaded-by-you by google at least) start getting pushed to your phone.
Click to expand...
Click to collapse
That is correct, and it's something that I strongly dislike, as I have installed plenty of things from the Market that I have since uninstalled and no desire to restore. If you skip account setup when you are first setting up the phone, and then manually go into Settings->Accounts & Sync, it will skip this, which is yet another reason to like aftermarket roms, as the stock roms will not allow you to get to the launcher until you set up a Google Account.

We need a new dev for cm

Anyone willing to make builds on a weekly base ?
robuser007 said:
Anyone willing to make builds on a weekly base ?
Click to expand...
Click to collapse
I think I may be willing. I'm quite a newbie, getting this as my first smartphone - really first cell phone, for Christmas. I got it partly for utility, mostly as a learning vehicle, and one of the first things I did was flash CM10.2 on it, followed shortly by CM11 M1. I've kept up with the Milestones ever since, with the one skip, until August when I heard that the flow had stopped.
If I want new Milestones, I guess I'm going to have to do it myself. Assuming I can get the hang of it, I'll presume I can put out weeklies, as well. This can turn into even more of a learning experience than I first anticipated.
Though I'm new to phones, I've got a lot of years (several decades) as a VLSI designer, including doing some of my own CAD tools and CAD support for my department. My home machines have also been on Gentoo Linux for over a decade, so I'm decently versed.
I can't start now, because my development system is dead. I'm posting from an Asus EEE Box, which while serviceable, is barely keeping up with my typing right now. My birthday is later next month, and I'm planning on getting a new development system then. In the meantime, I plan to do some reading. Beyond the basics they have at the CM11 pages, any other suggestions would be appreciated. Only specific is that there seems to be a generic CM11 release, plus some phone-specific files. Is there a convenient source for those latter files, rather than trying to do them from essentially no experience?
phred14 said:
I think I may be willing. I'm quite a newbie, getting this as my first smartphone - really first cell phone, for Christmas. I got it partly for utility, mostly as a learning vehicle, and one of the first things I did was flash CM10.2 on it, followed shortly by CM11 M1. I've kept up with the Milestones ever since, with the one skip, until August when I heard that the flow had stopped.
If I want new Milestones, I guess I'm going to have to do it myself. Assuming I can get the hang of it, I'll presume I can put out weeklies, as well. This can turn into even more of a learning experience than I first anticipated.
Though I'm new to phones, I've got a lot of years (several decades) as a VLSI designer, including doing some of my own CAD tools and CAD support for my department. My home machines have also been on Gentoo Linux for over a decade, so I'm decently versed.
I can't start now, because my development system is dead. I'm posting from an Asus EEE Box, which while serviceable, is barely keeping up with my typing right now. My birthday is later next month, and I'm planning on getting a new development system then. In the meantime, I plan to do some reading. Beyond the basics they have at the CM11 pages, any other suggestions would be appreciated. Only specific is that there seems to be a generic CM11 release, plus some phone-specific files. Is there a convenient source for those latter files, rather than trying to do them from essentially no experience?
Click to expand...
Click to collapse
wiki.cyanogenmod.org/w/Build_for_apexqtmo
orange808 said:
wiki.cyanogenmod.org/w/Build_for_apexqtmo
Click to expand...
Click to collapse
Reading... First annoyance I see is translating from Ubuntu packages to Gentoo. Some move directly, some won't be needed, like the -dev stuff. Every Gentoo system is a development system. Some trial and error will be called for. Can't wait to get started. (I may try putting this on my wife's computer, if I can't wait a month.)
I've decided I can't wait, and am installing on my wife's computer. I'm running into a few Gentoo-isms trying to get this installed with the icedtea-7 - it wants to use icedtea-6. I'll be back when I get there.
phred14 said:
I've decided I can't wait, and am installing on my wife's computer. I'm running into a few Gentoo-isms trying to get this installed with the icedtea-7 - it wants to use icedtea-6. I'll be back when I get there.
Click to expand...
Click to collapse
It may be easier to use a container or VM, rather than using your system proper. I use Gentoo for my main server, but just used Ubuntu 14.04 in a VM for my build system. At least to verify you have a working build environment, I recommend sticking to Ubuntu (13.x or 14.x).
For APEXQTMO building, the instructions on the CM site are reasonably complete. You probably want to skip the "pull binaries from the phone" part, and just update the local_manifest to get the binaries from TheMuppets GIT.
Let me know if I can help.
I'm headed out of town for a few days, and will think harder about it when I get back. I don't mind installing (and uninstalling) stuff on Gentoo. My wife's machine is only 4G, which is a bit tight to run a VM in. At the moment I don't even have the VM stuff turned on in my kernels, but that can change, of course.
The "pull binaries from the phone" part was interesting. I take it that these are different binaries than the radio and bootloader firmware I had to update on my wife's phone? (Mine came with 4.1.4, and didn't need the update.)
phred14 said:
I'm headed out of town for a few days, and will think harder about it when I get back. I don't mind installing (and uninstalling) stuff on Gentoo. My wife's machine is only 4G, which is a bit tight to run a VM in. At the moment I don't even have the VM stuff turned on in my kernels, but that can change, of course.
The "pull binaries from the phone" part was interesting. I take it that these are different binaries than the radio and bootloader firmware I had to update on my wife's phone? (Mine came with 4.1.4, and didn't need the update.)
Click to expand...
Click to collapse
Proprietary blobs.. Basically the drivers for the phone's hardware. Unfortunately, most manufacturers don't open source them.
phred14 said:
I'm headed out of town for a few days, and will think harder about it when I get back. I don't mind installing (and uninstalling) stuff on Gentoo. My wife's machine is only 4G, which is a bit tight to run a VM in. At the moment I don't even have the VM stuff turned on in my kernels, but that can change, of course.
The "pull binaries from the phone" part was interesting. I take it that these are different binaries than the radio and bootloader firmware I had to update on my wife's phone? (Mine came with 4.1.4, and didn't need the update.)
Click to expand...
Click to collapse
They are very different binaries. The blobs here are drivers for the OS level, not the bootloader and modem level.
Very likely if you follow that step from the CM wiki, it will break. As others have mentioned, pull from TheMuppets instead.
Also, to address another point you brought up -- You can use icedtea-7, I build with it all the time.
I'm of the opinion if you can make the build process work on your 'bare metal' OS, it's a much better option than using a VM (Heck, a chroot with the debian/ubuntuisms would be a MUCH better option than a VM, as the VM adds significant overhead and time to the build process. I don't know how easy it would be to get the 'debootstrap' and schroot programs on gentoo, which would make setting up an appropriate chroot pretty trivial)
Any building questions, feel free to stop by the irc channel listed in my sig.
So far, so good...
So the SDK and Eclipse are both installed on my wife's computer, though I'm not really using the latter at the moment.
I've been following the HowTo instructions from the Cyanogenmod page and this morning ran "breakfast", after an overnight repo fetch. At this point it's time to either fetch files from my device or TheMuppets, and the latter has been strongly urged here. I've found instructions for building local_manifest.xml for CM10, as well as a sample file as a start point. Does revision="cm-10.2" become revision="cm-11" or revision="cm-11.0", or is it something else entirely? This sample file looks like it's for the "Toro", though it has lines with "Tuna" as well, which I presume is a similar-enough device. Is there a better source for this file, can someone post theirs, or is it just time to stumble around?
Next question... According to this post http://forum.xda-developers.com/showpost.php?p=55045664&postcount=63 a simple build just isn't going to work. I've never actually used git, and even with what I've done so far it's so deeply buried that I don't really see it except as a name. But it looks as if I have to remove those two commits in order to have a chance of building a working rom. Can someone give me a start? I can RTFM, but I suspect that things are also buried here in android-conventions so that even with the manual, how to do this won't be obvious.
Thanks...
phred14 said:
So the SDK and Eclipse are both installed on my wife's computer, though I'm not really using the latter at the moment.
I've been following the HowTo instructions from the Cyanogenmod page and this morning ran "breakfast", after an overnight repo fetch. At this point it's time to either fetch files from my device or TheMuppets, and the latter has been strongly urged here. I've found instructions for building local_manifest.xml for CM10, as well as a sample file as a start point. Does revision="cm-10.2" become revision="cm-11" or revision="cm-11.0", or is it something else entirely? This sample file looks like it's for the "Toro", though it has lines with "Tuna" as well, which I presume is a similar-enough device. Is there a better source for this file, can someone post theirs, or is it just time to stumble around?
Next question... According to this post http://forum.xda-developers.com/showpost.php?p=55045664&postcount=63 a simple build just isn't going to work. I've never actually used git, and even with what I've done so far it's so deeply buried that I don't really see it except as a name. But it looks as if I have to remove those two commits in order to have a chance of building a working rom. Can someone give me a start? I can RTFM, but I suspect that things are also buried here in android-conventions so that even with the manual, how to do this won't be obvious.
Thanks...
Click to expand...
Click to collapse
Yes, you want "cm-11.0". For example, you'll have lines in local_manifest.xml like:
<project name="TheMuppets/proprietary_vendor_samsung.git" path="vendor/samsung" remote="github" revision="cm-11.0"/>
For reverting a specific commit (like the two that @Magamo mentioned in the post you referenced), you can use git-revert. Check out http://git-scm.com/blog/2010/03/02/undoing-merges.html as a starting place.
Note that for your first build, you don't need to use git (just repo). A breakfast and brunch should work - you should get the UNOFFICIAL-nightly.zip file built, it just (potentially) won't work if you were to flash it. I recommend making sure brunch creates a .zip file with all the bits you expect it to have, before you start messing with git and reverting the commits that potentially broke the device. IMHO anyway.
scotte9999 said:
Note that for your first build, you don't need to use git (just repo). A breakfast and brunch should work - you should get the UNOFFICIAL-nightly.zip file built, it just (potentially) won't work if you were to flash it. I recommend making sure brunch creates a .zip file with all the bits you expect it to have, before you start messing with git and reverting the commits that potentially broke the device. IMHO anyway.
Click to expand...
Click to collapse
So overnight last night "brunch" built a .zip for me. I presume that it built at all is a good sign, but "with all the bits you expect it to have" is another test. I struggled a bit with local_manifst.xml, and ended up unzipping my cm11-M8 zip, which actually didn't help, because nothing in that list came from TheMuppets. More about that later. In the meantime, I presume I should unzip the rom file I just created and compare it to my unzipped cm11-M8 files?
As mentioned, I have relatively low confidence in my local_manifest.xml file. I found one on the web which was clearly for a different Samsung phone, changed the obvious things to apexqtmo and the "msm8960" that it appeared to be derived from. Then I started removing lines flagged when I started running the "breakfast apexqtmo" command. What I wound up with is this:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote fetch="http://github.com/" name="gh" revision="master" />
<remote fetch="https://github.com/TheMuppets/" name="TheMuppets" revision="cm-11.0" />
<project name="TheMuppets/proprietary_vendor_samsung" path="vendor/samsung" remote="gh" revision="cm-11.0" />
<project name="TheMuppets/proprietary_vendor_imgtec" path="vendor/imgtec" remote="gh" revision="cm-11.0" />
<project name="TheMuppets/proprietary_vendor_broadcom" path="vendor/broadcom" remote="gh" revision="cm-11.0" />
<project name="TheMuppets/proprietary_vendor_invensense" path="vendor/invensense" remote="gh" revision="cm-11.0" />
<project name="TheMuppets/proprietary_vendor_widevine" path="vendor/widevine" remote="gh" revision="cm-11.0" />
<project name="TheMuppets/proprietary_vendor_nxp" path="vendor/nxp" remote="gh" revision="cm-11.0" />
<project name="CyanogenMod/android_kernel_samsung_t1" path="kernel/samsung/t1" remote="github" revision="cm-11.0" />
</manifest>
Most of it makes sense, but it really depends on vendors imgtec, broadcom, invensense, widevine, and nxp covering the apexqtmo as well, since they originally covered the "tuna", which appeared to be a later phone. It also depends on kernel_samsung_t1 covering the apexqtmo. I did a bit of browsing around on github to get to this point, as well as the manifest unzipped from the cm11-M8 file I'm currently running.
Sorry for being a complete noob about this, but I guess I am. Thanks for your help. I'm also looking at your pointers on reverting commits, but I'm guessing that eventually we'll need a location to fork the affected files.
phred14 said:
As mentioned, I have relatively low confidence in my local_manifest.xml file.
Click to expand...
Click to collapse
Attached is what I use. It's not apexqtmo specific, since I have multiple devices that I like to build for, but if you can afford the disk and bandwidth it should "just work" for apexqtmo.
scotte9999 said:
Attached is what I use. It's not apexqtmo specific, since I have multiple devices that I like to build for, but if you can afford the disk and bandwidth it should "just work" for apexqtmo.
Click to expand...
Click to collapse
The format looked slightly different, but I have a copy, and I grabbed a few of the lines, tweaked to the format I have. Some of those entries looked like phones, and some looked like hardware vendors with components on phones. I was most interested in the latter.
One question... The other night my build went to completion and produced a zip file. Obviously those two commits will prevent it from booting on my phone, but other than that was it probably a good zip. What I'm really asking is, if the process completes, has it run correctly? Or will it continue running in spite of errors, producing a bogus zip file?
It's late tonight, but I think tomorrow morning before I leave for work I'll do another repo sync. This time before I build I'm going to set up ccache.
Once the zip is produced it is good, yes there can be issues like the commits you mentioned but in theory it should be ready to flash
phred14 said:
The format looked slightly different, but I have a copy, and I grabbed a few of the lines, tweaked to the format I have. Some of those entries looked like phones, and some looked like hardware vendors with components on phones. I was most interested in the latter.
One question... The other night my build went to completion and produced a zip file. Obviously those two commits will prevent it from booting on my phone, but other than that was it probably a good zip. What I'm really asking is, if the process completes, has it run correctly? Or will it continue running in spite of errors, producing a bogus zip file?
It's late tonight, but I think tomorrow morning before I leave for work I'll do another repo sync. This time before I build I'm going to set up ccache.
Click to expand...
Click to collapse
In general, 'breakfast' will produce a very workable local manifest for you, you just need to add the project for the proprietary blobs.
scotte9999 said:
For reverting a specific commit (like the two that @Magamo mentioned in the post you referenced), you can use git-revert. Check out http://git-scm.com/blog/2010/03/02/undoing-merges.html as a starting place.
Note that for your first build, you don't need to use git (just repo). A breakfast and brunch should work - you should get the UNOFFICIAL-nightly.zip file built, it just (potentially) won't work if you were to flash it. I recommend making sure brunch creates a .zip file with all the bits you expect it to have, before you start messing with git and reverting the commits that potentially broke the device. IMHO anyway.
Click to expand...
Click to collapse
Today I scripted the build process and let it whirl away. Other than making the computer more than a bit sluggish for my wife, it completed just find and created a .zip for me. At this point I think it best to let this run at night - what I really need to do is find what suspend command xfce is using, and have it auto-suspend when the job is done.
It's time to revert so I can build a zip that is worth flashing, and after reading your link I have another question... It looks to me as if once I've reverted those 2 commits, they will stay reverted even through repo sync commands, until I decide to revert my revert. (It also looks like it would be a good idea to save away the commit numbers git gives me for the reverts..)
Plus one more question... There is a clockworkmod recovery image file in the directory along with the cm11. Is there any reason to use this instead of the clockwordmod recovery I flashed back around the beginning of this year, when I first started by flashing CM10.2?
Finally, it appears that these are nightly builds I'm getting, basically like the trunk in subversion. At some point I would like to build Milestones, if only for my wife. How does one choose that?
phred14 said:
It's time to revert so I can build a zip that is worth flashing, and after reading your link I have another question... It looks to me as if once I've reverted those 2 commits, they will stay reverted even through repo sync commands, until I decide to revert my revert. (It also looks like it would be a good idea to save away the commit numbers git gives me for the reverts..)
Click to expand...
Click to collapse
Yes. You really want to make your own fork, etc., but for a GIT newbie that might be too much to tackle at once.
phred14 said:
Plus one more question... There is a clockworkmod recovery image file in the directory along with the cm11. Is there any reason to use this instead of the clockwordmod recovery I flashed back around the beginning of this year, when I first started by flashing CM10.2?
Click to expand...
Click to collapse
I *think* you need an updated recovery (I use the latest TWRP, found over in the Development forum) and it works fine. If you like CWM, then I'd update to a CM11 CWM.
phred14 said:
Finally, it appears that these are nightly builds I'm getting, basically like the trunk in subversion. At some point I would like to build Milestones, if only for my wife. How does one choose that?
Click to expand...
Click to collapse
If you followed the instructions on how to retrieve the source via repo, then you've actually downloaded the Milestone source as well. To build a milestone, you'd need to check out a specific tag (e.g., "M8") then build. Not that hard, but I recommend baby steps.
scotte9999 said:
Yes. You really want to make your own fork, etc., but for a GIT newbie that might be too much to tackle at once.
I *think* you need an updated recovery (I use the latest TWRP, found over in the Development forum) and it works fine. If you like CWM, then I'd update to a CM11 CWM.
If you followed the instructions on how to retrieve the source via repo, then you've actually downloaded the Milestone source as well. To build a milestone, you'd need to check out a specific tag (e.g., "M8") then build. Not that hard, but I recommend baby steps.
Click to expand...
Click to collapse
There's really little reason to use the updated recovery, if you're only focusing on Android 4.4 builds, unless there's some whizbang new feature included in an updated build. The older one is tested, stable, and very fine. If you're looking to flash anything OTHER than an Android 4.3.X or 4.4.X build, you'll want to update -- I know that the newer TWRPs have made it so that you can flash ancient images with it (I've tested it all the way back with one of the first CM9 alphas TeamApexQ released.) If CWM hasn't included that feature, then you may have some problems flashing the latest baseband and bootloader firmwares, as those are using the old format installer scripts, that google broke with Android 4.4 recoveries until the community fixed them.
OK, I'm now responding to both scotte9999 and magamo, so I guess quote time is over.
First, I've been delaying this trying to get further on a specific train of thought. But here it is Sunday night and I haven't been able to yet, so I'm just going to keep in touch and ask more newbie questions. I guess I'll say first that right now I'm backing up android/system/vendor/samsung, and in a moment I'm going to try to revert those two commits. Now that I think of it, I'm going to back up that rom image I built earlier. I am intentionally not re-syncing, so that I'll have two copies of 20130904, one stock and one with the commits reverted. From there I can compare. I was hoping to get more of this done before tonight, but no time. Yesterday we had an "emergency pool closing". The 13 yo pump died, and rather than try to fix then close, we just closed. I'm distributing the chemicals with a utility pump and hose for a few days. I think I can rebuild the pump over the winter, but didn't want it in series with pool closing. We're a week late, as is. Pools close early in Vermont.
Second, I'm just a tad worried that at some point the codebase will be cleaned / rebased / whatever, and the content I'm attempting to revert to will be just plain gone. No doubt a git-master could get it back, but not me. That's also why I'm not doing another repo sync.
So much for that attempt:
~/android/system $ git revert -m 1 187689ea76effd42b680a147d080512ac62a0fed
fatal: Not a git repository (or any parent up to mount point /local)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
I'm sure it's something so basic it wasn't covered in the document scotte9999 pointed me to. I'd already done everything to get my environment ready - my own exec to get started and "source build/envsetup.sh", so I presume everything would have been in place to run the revert.
As for the revert itself, I found the 2 commits on github and have looked at them. It appears that someone was trying to move a bunch of common code together under msm8960-common, generally a good idea, except when it doesn't work. I presume had one of the old Team apexqtmo developers still been around the current situation would have been corrected, presumable in a minimal fashion rather than reverting the whole commits.
Looking at the commits...
Minor oddity with the "aec" commit - libinvensense_hal.so disappeared from the "after", but when I look in the phone build I'd just done, it was still there. Maybe it was a duplicate? A little more looking, and this appears to control the sensor to get the "position" of the phone, which I'd hope wouldn't keep it from booting, just from making things upright when you rotate 90.
Even though it isn't listed in the "after" side of that commit, I find that lib in the relevant msm8960-common directory, and when I diff it against the one in the apexqtmo directory they don't match. (specifically, diff apexqtmo/proprietary/lib/libinvensense_hal.so msm8960-common/proprietary/lib/libinvensense_hal.so) Maybe there's a build date buried in the lib, so that they will never match, but I would have hoped that if it was a simple move, code unchanged, they would have.
Most important question - what's the correct syntax for the git revert? Obviously my attempt to RTFWP didn't work.
Second question - M10 is coming up next week, and if I can get the revert done, I'd really like to build this and make it work, if only to get the camera video, which is known-broken in M8, working on my wife's phone. Reading build/envseup.sh I get the impression that the magic invocation will be "breakfast apexqtmo-M10" and "brunch apexqtmo-M10", and someone must have been really hungry the morning he wrote this code. Is that presumption correct?
Thanks...

Categories

Resources