LWN.net Logo

CyanogenMod 5 for the G1/ADP1

The CyanogenMod hackers have announced the availability of CyanogenMod 5.0.7 for "Dream" and "Magic"-series phones. This release makes Android 2.1 available for these handsets, along with a long list of additional features. "There is some new ground being broken here, and a few bugs to still shake out but I believe that it should be pretty stable as a daily driver."
(Log in to post comments)

CyanogenMod 5 for the G1/ADP1

Posted May 25, 2010 15:04 UTC (Tue) by Quazatron (guest, #4368) [Link]

That's one cryptic title...

CyanogenMod 5 for the G1/ADP1

Posted May 25, 2010 15:54 UTC (Tue) by proski (subscriber, #104) [Link]

I think G1 is a phone, and thanks to some cool hacker it's now possible to run Android version 2.1 on some revisions of the G1 phone. Android uses Linux kernel, that's why we are seeing it on LWN.

CyanogenMod 5 for the G1/ADP1

Posted May 25, 2010 16:33 UTC (Tue) by hitmark (guest, #34609) [Link]

yep, its the t-mobile G1, the first android phone to be commercially available (and iirc, now discontinued). ADP1 was the google name for their unlocked developer variant that was sold for a while.

CyanogenMod 5 for the G1/ADP1

Posted May 25, 2010 17:02 UTC (Tue) by drag (subscriber, #31333) [Link]

I've got a G1. Bought it used from a local phone/laptop repair place.

Paid somebody in Germany or something like that 20 bucks to get the unlock code, downgraded the firmware, rooted it, and upgraded to Cyanogenmod firmware.

Fantastic stuff. Most of the features listed in Froyo 2.2 as good things (wireless tether, install apps to sd card, etc) have been used in Cyanogen for a while now. Also Cyanogenmod is the first firmware for Android to use the BFS kernel patches to improve responsiveness, which (from what I understand) Google has since adopted.

The phone is very limited in capabilities (low ram, mundain processor, and tiny onboard flash) and I am looking forward to getting a more powerful phone, but for right now this firmware has helped me extend and lengthen the useful lifespan of this phone massively while improving performance and gaining 2.x features.

If your curious about Android (which I was) it's not a bad idea to go and see if you can find a used, but in good condition, T-Mobile G1 somewhere. It's a decent tiny computer and if you end up not liking it you can still boot it using Debian proper if you'd like.

Cyanogenmod supports other phones, of course. Nexus One is probably the best one to get, I suppose. But the Dream is notable due to the low capabilities of the phone hardware and there were doubts that anybody using one would be able to benefit from the 2.x Android series.

CyanogenMod 5 for the G1/ADP1

Posted May 25, 2010 17:32 UTC (Tue) by patrick_g (subscriber, #44470) [Link]

>>> the BFS kernel patches to improve responsiveness, which (from what I understand) Google has since adopted.

Are you sure about that? Is there a link somewhere?

CyanogenMod 5 for the G1/ADP1

Posted May 25, 2010 17:56 UTC (Tue) by drag (subscriber, #31333) [Link]

Got some help from Wikipedia for the reference
http://en.wikipedia.org/wiki/Brain_Fuck_Scheduler

http://android.git.kernel.org/?p=kernel/experimental.git;...

Beyond that I don't know.

CyanogenMod 5 for the G1/ADP1

Posted May 25, 2010 18:23 UTC (Tue) by patrick_g (subscriber, #44470) [Link]

Strange. I thought the android devs wanted to close the gap between their code and the mainline...and now they use a scheduler not in mainline ?

CyanogenMod 5 for the G1/ADP1

Posted May 25, 2010 18:33 UTC (Tue) by thoffman (subscriber, #3063) [Link]

The Android devs will above all, do whatever is best for the majority of their users.

If using an out of mainline scheduler improves responsiveness and performance without degrading stability, I don't think they would hesitate.

Of course, they would probably _also_ try to get that scheduler adopted into the mainline kernel as a config option.

This is exactly the situation with wakelocks, to refer to another example. I don't know anything about the BFS scheduler, if it's used or not, but I do know a little about Google's priorities, they haven't exactly made them a secret.

CyanogenMod 5 for the G1/ADP1

Posted May 25, 2010 18:34 UTC (Tue) by drag (subscriber, #31333) [Link]

It could just be in that android-bfs branch as a experiment for somebody to play around with.

I tried looking around to see if anybody mentioned Froyo using it, but I did not see anybody talking about it. I can't really grep through the Froyo sources right now as I am at work, but it'll be interesting to see what exactly Google is still doing seperately from mainline.

CyanogenMod 5 for the G1/ADP1

Posted May 26, 2010 7:57 UTC (Wed) by swetland (subscriber, #63414) [Link]

It was an experimental branch. Some folks reported better experiences on some hardware, but blind testing on Droid and NexusOne did not show a user visible performance difference and we opted to stick with the stock scheduler for the our 2.6.32/Froyo efforts.

CyanogenMod 5 for the G1/ADP1

Posted Jun 17, 2011 15:46 UTC (Fri) by blitzkrieg3 (subscriber, #57873) [Link]

In yet another Wikipedia citation loop, the citation asked for higher in the thread now points to the comment above me.

CyanogenMod 5 for the G1/ADP1

Posted May 25, 2010 18:25 UTC (Tue) by AdHoc (subscriber, #1115) [Link]

This page indicates that BFS is used by cyanogen mod: http://www.cyanogenmod.com/home/4-1-6-is-here-with-100-mo...

This page indicates that it's being adopted by core android: http://gdgt.com/discuss/android-16-sdk-now-available-donu...

CyanogenMod 5 for the G1/ADP1

Posted May 25, 2010 18:47 UTC (Tue) by xxiao (subscriber, #9631) [Link]

Glad to hear that BFS is used. The default CFS is not fit for embedded devices based on my 3-month experiments.CFS is a failure for me on low end embedded product(UP, 400Mhz), and there are too many tuning parameters which have no useful document, and never seemed to work for me either. With BFS you only have one tuning params (rr_interval), and it worked much better comparing to CFS.Hopefully someday we have more than one scheduler to choose in menuconfig for various workload/hardware scenarios.

CyanogenMod 5 for the G1/ADP1

Posted May 25, 2010 18:19 UTC (Tue) by malex (subscriber, #15692) [Link]

It appears that the current CM5 is still not stable enough to move beyond the "experimental" stage at least by Cyanogen's own standards (http://forum.xda-developers.com/showthread.php?t=681717). However, even the most recent "stable" CM release - 4.15.1 already has enough of the Android 2.x series functionality to extend G1's usefulness as a phone far beyond the time-line T-Mobile and Google set for it. Buying a used G1 gives interested people pretty much the only way to afford an entry into the smartphone area and CyanogenMod makes it just as functional as the phones beyond financial reach of many people. It is a thrill to be able to enjoy 2.x Google Navigation, apps2sd with hundreds of apps instead of paltry dozen or so the original flash could hold, and full root access with tethering and other goodies that apps like TitaniumBackup, Cachemate and others can provide. Many kudos to Cyanogen for it. I just hope there will be a 2.2 CyanogenMod to incorporate the announced 2.2 Dalvik performance improvements, which might make G1 even more responsive and useful. That would truly be a miracle. It might happen I suppose as long as Cyanogen has resources to devote to supporting this hardware. It seems to me that he is spreading himself thin over the "Dream" generation and the Droid and N1 generations, so alas G1 might still slip into a neglected state soon and that would be truly unfortunate.

CyanogenMod 5 for the G1/ADP1

Posted May 25, 2010 19:07 UTC (Tue) by martinfick (subscriber, #4455) [Link]

That thread is old. Why post it here on today's release?

CyanogenMod 5 for the G1/ADP1

Posted May 25, 2010 18:38 UTC (Tue) by fb (subscriber, #53265) [Link]

> Most of the features listed in Froyo 2.2 as good things (wireless tether, install apps to sd card, etc) have been used in Cyanogen for a while now. Also Cyanogenmod is the first firmware for Android to use the BFS kernel patches to improve responsiveness, which (from what I understand) Google has since adopted.

I've been using Cyanogen's build for over a year, tether over wifi and USB are extremely useful features. Compressed cache pages also make the G1 a much more useful piece of hardware.

I just hope that the JIT compiler and Chrome browser will make it substantially faster. The G1 can be remarkably slow sometimes, such as browsing Slashdot, or when using the music player.

Built from source, audited for privacy?

Posted May 25, 2010 17:29 UTC (Tue) by Pc5Y9sbv (guest, #41328) [Link]

Are these sorts of efforts full rebuilds from source? Is there any effort like this which audits the codebase for privacy concerns and/or rebuilds with privacy-aware features? As a computer science and computer security guy on the sidelines of the smartphone revolution, I wonder whether there is any purpose in smartphones for those who do not trust Google et al. (beyond voice calls, SMS, or email which plain old dumb phones can do OK).

Can an Android phone serve a purpose other than wiring the trivial minutia of your life into the search/social media/market analytics behemoths? Are there any publicly available summaries of exactly what information would be transmitted from an Android phone to what remote parties and under what circumstances? Obviously, we are aware that cell phones provide location data to the telecom operator as an intrinsic part of their roaming function. But what other data gets sent to Google (or anybody else)? Obviously search functions would send search queries of some sort; can you as the phone owner change where such things are sent?

Built from source, audited for privacy?

Posted May 25, 2010 17:54 UTC (Tue) by fb (subscriber, #53265) [Link]

It used to be the case that you could activate the original ADP (Android Developer Phone) without Google credentials (don't know if still the case). Cyanogen's install can be activated without them (after doing a "wipe" on the phone).

Android is designed so that you can check which apps use Google credentials. So you could remove all of those. In principle you can remove the Google credentials "package" from the system (no idea if and how that would break things).

Also notice that you can have Cyanogen's install _without_ any of Google's apps (which Cyanogen cannot distribute anyway).

The source code of Android 2.1 is available (?git.android.com?).

Built from source, audited for privacy?

Posted May 25, 2010 18:25 UTC (Tue) by drag (subscriber, #31333) [Link]

With Cyanogen you replace the bootloader, or at least fastboot portion of it (not sure of the details) so the it removes all traces of needing signed anything on the phone as far as I can tell.

The Cyanogen firmware is certainly a complete group-up install if that helps any. The firmware is wiped completely. I don't know if it's 100% open source, but they certainly got nailed for shipping proprietary software with a cease and desist order; so at least now everything they ship as part of their firmware is legally redistributable. You get the google specific applications that are not redistributable by downloading it seperately.

They build a custom kernel, but obviously portions of the phone are still going to be proprietary.

I seriously doubt that security and auditability is a high priority with Cyanogen folks. It's totally focused on getting as much functionality as possible as quickly as possible. It has that sort of junky 'windows shareware' type feel to it since everybody is from a Windows background and it's seems like the work of only a tiny number of individuals in the whole 'cyanogen community', but it's actually a quality product and in practice it's been actually suprisingly stable.

I would love to see a more traditionalist/purist Linux/GNU version of the Android firmware. That sort of thing I feel is needed to help keep Google honest about what it's actually shipping. Especially with the Android Tablets coming out it would be clever to be able to run X11 environment and Android application environment side by side.

-------------------------------------

I've just been playing around with it personally and the Android setup is quite a bit different from normal Linux.

One example is I had trouble running non-root user in Debian chroot I have on the phone. I could get the user setup, but I was not able to run any network applications. Even very simple ones like netcat.

Turns out that Google has setup network rights hardcoded into GUID numbers and permissions on /dev/* stuff. So if you want to use sockets for a user you have to add the user to GUID's 3003 and 3004 to make sockets.
http://android-dls.com/wiki/index.php?title=Android_uids_...

So that was interesting to figure that out. Unfortunately that gives my user access to ALL sockets.

Made me question the wisdom of having 'restricted ports' though in the first place for Linux/Unix systems. Seemed like a good idea before, but after playing around wiith it I've realized that has been a tremendous amount of work and trouble caused for end users by forcing requirements like requiring root access to run common network services and the dances we have to do to drop privilages, chroots, and whatnot that may not have that much real benefit security-wise over just allowing users to run apps on the privilaged ports.

*shrug* Fun stuff to play around with anyways.

Built from source, audited for privacy?

Posted May 25, 2010 23:21 UTC (Tue) by tialaramex (subscriber, #21167) [Link]

In a new enough Linux, with a suitable filesystem, you can donate the "bind low numbered port" capability to a binary. When executed that binary will then be able to create e.g. a port 80 listen socket for an HTTP server. It can drop that capability if it wants, but it's less important than dropping root because it's a less powerful capability.

You can do a similar trick with raw sockets (for ping and similar tools) and any other capability, although many of them are equivalent to root in some fashion and thus should be granted only with extreme caution.

Built from source, audited for privacy?

Posted May 26, 2010 1:34 UTC (Wed) by drag (subscriber, #31333) [Link]

Ah. "posix file capabilities"; Is that what your talking about?

I've used that to grant LXC controls to users for sandboxing applications and controlling VM containers. Very cool stuff.

Built from source, audited for privacy?

Posted May 26, 2010 3:43 UTC (Wed) by cwitty (subscriber, #4600) [Link]

"The firmware is wiped completely. I don't know if it's 100% open source, but they certainly got nailed for shipping proprietary software with a cease and desist order; so at least now everything they ship as part of their firmware is legally redistributable. You get the google specific applications that are not redistributable by downloading it seperately."

Actually, I believe that cyanogenmod does not completely wipe the existing firmware. It leaves the existing filesystem, and overwrites many files. The reason you can have the Google apps on a cyanogenmod phone is because cyanogenmod simply doesn't overwrite them as it upgrades.

Built from source, audited for privacy?

Posted May 26, 2010 9:03 UTC (Wed) by fb (subscriber, #53265) [Link]

> Actually, I believe that cyanogenmod does not completely wipe the existing firmware. The reason you can have the Google apps on a cyanogenmod phone is because cyanogenmod simply doesn't overwrite them as it upgrades.

The installation instructions for Cyanogenmod 5.0.7 state:

> INSTRUCTIONS:
> ...
> 6. Optionally install the Google Addon if you want Google Applications like Gmail and Market

[....]

When you "wipe", you are actually restoring factory settings. If the factory settings image have Google apps, you surely keep them. See the wipe options of Amon_RA recovery here http://forum.xda-developers.com/showthread.php?t=566669
Notice that at the backup options, you can backup Google apps and restore them as well.

During installation of cyanogenmod a backup your Google applications (market, gmail) will be made, and later reinstalled. At least that is what the console shows as happening. I believe this is a feature of Amon_RA recovery only.

Built from source, audited for privacy?

Posted May 27, 2010 19:19 UTC (Thu) by bronson (subscriber, #4806) [Link]

The instructions do say that but, personally, I skipped installing the Google Addon when I upgraded to 5.0.7 and I still have all the Google apps on my phone. Had to upgrade Maps to the latest from Market but that was painless.

So, in my experience, it's safe to completely ignore that instruction. FWIW.

Copyright © 2010, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds