Hardware support in AOSP (Nexus One, Nexus S)

467 views
Skip to first unread message

Jean-Baptiste Queru

unread,
Dec 17, 2010, 8:04:10 PM12/17/10
to android-...@googlegroups.com
Here's the current situation in terms of hardware support in AOSP for
various devices:

Gingerbread (and the associated branches) contain some support for
Nexus One and Nexus S:

-It's possible to build a minimally functional image from the pure
open-source tree for either of those devices.

-If you are authorized to do so, there are scripts that extract binary
drivers from a running device and wrap makefiles around those. Note
that you need to use drivers from a Gingerbread phone, which can cause
chicken-and-egg situations on Nexus One.

-HTC hosts Froyo factory images for Nexus One, which allow flashing
back to a known system.

-There are currently no factory images available for Nexus S (which
was only released yesterday). If you flash a custom system on a Nexus
S, you will have a hard time getting it back to its factory state and
we cannot provide any kind of support in that case. We are working to
make factory images for Nexus S available in the future. THIS IS
IMPORTANT: after flashing a custom system on Nexus S, you will
probably be unable to get back to the factory state for a while.

-Gingerbread adds Open-Source GPS support for Nexus One. On Nexus S,
the audio path as well as the camera driver are Open-Source.

-The bootloader on both Nexus One and Nexus S can be unlocked with
"fastboot oem unlock" to allow flashing a custom system. In both
cases, the user data partition is deleted to maintain user privacy.

-On Nexus S, it's possible to lock the phone back with "fastbook oem
lock", which improves the balance between openness and security.

-The hardware name for Nexus One is "passion" (you already knew that).
Nexus S hardware is called "crespo".

-There is no AOSP support any longer for ADP1 ("dream") and ADP2 ("sapphire").

-The documentation on source.android.com about flashing custom systems
is very much outdated. We'll get it updated in the coming weeks.

JBQ

--
Jean-Baptiste M. "JBQ" Queru
Software Engineer, Android Open-Source Project, Google.

Questions sent directly to me that have no reason for being private
will likely get ignored or forwarded to a public forum with no further
warning.

Jean-Baptiste Queru

unread,
Dec 17, 2010, 10:15:44 PM12/17/10
to android-...@googlegroups.com
I've just done the following experiment on passion:

-In the gingerbread tree, I ran extract_files.sh on a retail Nexus One
running FRG83D (only do that if you're authorized to do it)

-in vendor/htc/passion/BoardConfigVendor, I set USE_CAMERA_STUB to
true (camera code changed a lot since Froyo and drivers aren't
directly compatible).

-I built full_passion-userdebug (clean build, i.e. rm -rf out),
flashed it on a passion.

-In a quick smoke testing, the following components seem to work: 3D,
audio, GSM, wifi, sensors, GPS.

Proceed at your own risk.

JBQ

blunden

unread,
Dec 17, 2010, 11:05:35 PM12/17/10
to Android Building
Sounds great!

Would be amazing to get an OTA, and that way the needed drivers and
libs for the camera, before christmas. Regardless it will be nice to
play around with it before then without the camera. This truly shows
the advantage of having a Nexus phone.

Alessio Menotti

unread,
Dec 17, 2010, 10:57:02 PM12/17/10
to android-...@googlegroups.com
So this sounds like Nexus One could be improved and eg. Google Maps be running fully compatible? Always assuming one is allowed to use the software...


--
You received this message because you are subscribed to the "Android Building" mailing list.
To post to this group, send email to android-...@googlegroups.com
To unsubscribe from this group, send email to
android-buildi...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-building?hl=en

Alessio Menotti

unread,
Dec 17, 2010, 11:00:22 PM12/17/10
to android-...@googlegroups.com
Curious to see how the branded Nexus will behave.. talkin about the second generation provided by Vodafone...

dr1337

unread,
Dec 18, 2010, 2:10:53 AM12/18/10
to android-...@googlegroups.com
I'm currently using Chris Soyar's build of Gingerbread. There seems to be a bit of an odd error where OpenGL works fine in games like AngryBirds, but there seems to be an error with SurfaceFlinger - http://pastebin.com/FQziACKk

I don't know enough about Android's visual compositing or framebuffer system but I'm guessing that's where the problem is originating from.

Luke

unread,
Dec 18, 2010, 1:43:16 AM12/18/10
to Android Building
On Dec 17, 10:57 pm, Alessio Menotti <a...@menodev.com> wrote:
> So this sounds like Nexus One could be improved and eg. Google Maps be
> running fully compatible?

The following is off-topic from jbq's original thread, but here's an
answer to your question:

AFAIK the only Google Maps feature that is not compatible with the N1
is the pinch-rotate feature. That is because the N1 has a 2x1D touch
sensor, not a true 2D sensor. The problem is that when the fingers
line up in X or Y, it is not possible to determine if the rotation is
clockwise or counterclockwise after they are rotated out of axis
alignment with each other. This causes unexpected results when the
user tries to rotate things one way and they end up rotating the
opposite way.

*However* It is possible to rotate things almost 90 degrees on the N1
screen as long as the fingers don't start out axis-aligned and stay in
diagonally-opposite quadrants about the midpoint of the pinch
operation. After the fingers snap into axis alignment, Google Maps can
just end the rotate/drag/stretch operation (or even just prevent
further rotation, but allow further drag/stretch), and ignore further
touch points until the user raises both fingers off the map. Short
story: N1 *is* capable of pinch-rotate, but only when the fingers stay
diagonal in orientation.

It would be great if Google Maps supported this partial rotation
capability on the N1 and other older devices. Where is the right place
to report features to the Google Maps developers?

Michel Alexandre Salim

unread,
Dec 18, 2010, 6:58:08 AM12/18/10
to Android Building
On Dec 18, 4:57 am, Alessio Menotti <a...@menodev.com> wrote:
> So this sounds like Nexus One could be improved and eg. Google Maps be
> running fully compatible?

The compatibility problem with Google Maps is hardware-based -- the N1
touchscreen is not fully multitouch-capable -- so I'd say the answer
is no to that question.

The same problem affects 3rd party applications like SliceIt too; too
bad it was not caught during the design phase.

--
Michel S.

Tim

unread,
Dec 18, 2010, 8:34:18 AM12/18/10
to Android Building
On Dec 18, 1:04 am, Jean-Baptiste Queru <j...@android.com> wrote:
> -HTC hosts Froyo factory images for Nexus One, which allow flashing
> back to a known system.

They do? I've been looking for this for ages and I just kept getting
looped back to this page:

http://www.htc.com/www/support/nexusone/

I don't suppose you have a link?

> -Gingerbread adds Open-Source GPS support for Nexus One. On Nexus S,
> the audio path as well as the camera driver are Open-Source.

Awesome. Hopefully this allows recording both parts of phone calls...

> -On Nexus S, it's possible to lock the phone back with "fastbook oem
> lock", which improves the balance between openness and security.

Great.

KEViN!

unread,
Dec 18, 2010, 9:37:31 AM12/18/10
to Android Building
why not support G1/Magic any longer?

On Dec 18, 1:04 am, Jean-Baptiste Queru <j...@android.com> wrote:

Jean-Baptiste Queru

unread,
Dec 18, 2010, 9:51:48 AM12/18/10
to android-...@googlegroups.com
The Nexus One images at HTC are directly on the
http://developer.htc.com page. Search for "Nexus One FRG83 system
image". Those are easily missed in the middle of (L)GPL source
packages.

JBQ

> --
> You received this message because you are subscribed to the "Android Building" mailing list.
> To post to this group, send email to android-...@googlegroups.com
> To unsubscribe from this group, send email to
> android-buildi...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-building?hl=en
>

--

Jean-Baptiste Queru

unread,
Dec 18, 2010, 10:18:23 AM12/18/10
to android-...@googlegroups.com
It's a simple matter of time, really. AOSP takes a lot of effort, and
I've got to make some hard choices about what I work on. It's never
easy to decide to not work on something.

Setting up AOSP support for Crespo meant that I had to drop Dream and
Sapphire. That opened up more possibilities about using AOSP on retail
devices: the only variants of Dream and Sapphire that were designed
for AOSP work were the ADP1 and ADP2, which are rare, whereas any
retail Nexus S can be unlocked. Nexus S gives you both the openness
that comes with the ability to unlock it and the security that comes
with the ability to lock it back.

With the audio code, the camera code and the NFC code being
Open-Source, Crespo opens up a lot of new possibilities for
contributions and experiments. In the family of devices ever supported
in AOSP, Crespo is the one with the fewest non-Open-Source drivers so
far (really: 3D, RIL, GPS, sensors, plus some firmware blobs).

Looking the other way, Dream and Sapphire are stable known quantities
at this point: they've been running Android longer than any other
devices, and the underlying drivers don't need to evolve much any
more. Enough enthusiasts in the community have experience with that
device that they'll probably do a better job at supporting those than
I would.

Having to make a choice was hard as I knew that I wouldn't be able to
support all devices in AOSP. Once I looked at the arguments for
Dream/Sapphire vs Crespo, the decision was clear.

JBQ

> --
> You received this message because you are subscribed to the "Android Building" mailing list.
> To post to this group, send email to android-...@googlegroups.com
> To unsubscribe from this group, send email to
> android-buildi...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-building?hl=en
>

--

Tim

unread,
Dec 18, 2010, 10:00:42 AM12/18/10
to Android Building


On Dec 18, 2:51 pm, Jean-Baptiste Queru <j...@android.com> wrote:
> The Nexus One images at HTC are directly on thehttp://developer.htc.compage. Search for "Nexus One FRG83 system
> image". Those are easily missed in the middle of (L)GPL source
> packages.
>
> JBQ

Ah, thank you very much. Keep up the good work!

Samuel B. Quiring

unread,
Dec 18, 2010, 11:32:38 AM12/18/10
to android-...@googlegroups.com
Greetings,

If you have a locked Nexus One, do you know if it will
receive an OTA update to Gingerbread?

Back in May/June I had a locked Nexus One. I did not
have a wireless plan, but did have the phone connected
to wifi. Miraculously, it received an OTA update to
Froyo via wifi. Is there any chance that could happen
with Gingerbread?

> -If you are authorized to do so, there are scripts that extract binary
> drivers from a running device and wrap makefiles around those.

Authorized by whom? Is owning the phone sufficient
authorization?

-Sam

JBQ

--

Maharadhi

unread,
Dec 18, 2010, 5:34:55 PM12/18/10
to Android Building
1. OTA should happen if you have the stock recovery on it
2. Owning is authorization enough
3. Please be aware that if you are going to build AOSP now and use it
on your N1 - Camera / Video does not work, no market or google apps
either. Other than that everything else seems to be under perfect
working conditions

cyanogen

unread,
Dec 19, 2010, 2:41:44 AM12/19/10
to Android Building
Why does Google not maintain any kind of backwards compatibility
during minor version upgrades? It's not just an issue for community
builds like CM, but also for vendors who license code from other
vendors and end up stuck on some version because their proprietary
libraries aren't compatible?

In CM Froyo, we added code that made things compatible with Eclair
userspace and all the way back to Donut for older devices.

It's cool that you guys added support for multiple cameras, but in the
process you broke the ABI for everyone who's not up to speed. A fix
was figured out about 2 hours after we got the source, and it was very
simple (at least for the N1). I don't understand why Google doesn't
keep userspace compatibility with at least one previous revision? It
would help the community out, as well as many vendors I'm sure.

Worse, much of it isn't documented. Again, it's great that there's
this awesome new GL subsystem but now there are glitches when using
Adreno drivers for the previous version (white screen during
transitions, RS segfaults etc), even on the N1.

I understand the need to move forward quickly, but I don't think this
is asking too much. If a handful of geeks can do this in their spare
time, so can Google :)

Jean-Baptiste Queru

unread,
Dec 19, 2010, 8:56:48 AM12/19/10
to android-...@googlegroups.com
We're actually interested in moving in that direction. It's a known
hurdle in multiple circumstances.

Note however that this might not help much in situations where the
underlying drivers have issues in code paths that weren't exercised in
an older version but do get touched in a newer one. Such situations
are much more likely to happen when designing a future-proof API.

JBQ

> --
> You received this message because you are subscribed to the "Android Building" mailing list.
> To post to this group, send email to android-...@googlegroups.com
> To unsubscribe from this group, send email to
> android-buildi...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-building?hl=en
>

--

Denis 'GNUtoo' Carikli

unread,
Dec 22, 2010, 1:11:23 PM12/22/10
to Android Building
On Dec 18, 2:04 am, Jean-Baptiste Queru <j...@android.com> wrote:
> Here's the current situation in terms of hardware support in AOSP for
> various devices:
>
> Gingerbread (and the associated branches) contain some support for
> Nexus One and Nexus S:
>
> -It's possible to build a minimally functional image from the pure
> open-source tree for either of those devices.
which has serious runtime issues with transparency on nexus-one:
http://code.google.com/p/android/issues/detail?id=11829

Denis.

Jean-Baptiste Queru

unread,
Dec 22, 2010, 1:30:43 PM12/22/10
to android-...@googlegroups.com
Yes, that's a known issue that's been plaguing us since, well,
forever. For a while I thought that the issue was somehow related to
page-flipping (which also caused some trouble on crespo), but
disabling that didn't seem to help.

I'd love to receive a contribution that fixes it.

JBQ

> --
> You received this message because you are subscribed to the "Android Building" mailing list.
> To post to this group, send email to android-...@googlegroups.com
> To unsubscribe from this group, send email to
> android-buildi...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-building?hl=en
>

--

Maharadhi

unread,
Dec 30, 2010, 2:13:56 AM12/30/10
to Android Building
I was wondering if I take the Froyo source code for Camera app and
compile it along with the rest of Gingerbread's source - will Camera
work? If possible any suggestions on the right way of going about it?
TIA and Have a Happy New Year

Jean-Baptiste Queru

unread,
Jan 4, 2011, 11:39:11 AM1/4/11
to android-...@googlegroups.com
I'm not an expert in that domain, but I don't think that the Camera
app talks directly to the HAL. The incompatibility is at the level of
the media framework.

Notice that the incompatibility is in C/C++ code, but that the Camera
app doesn't contain any such code. Notice also that the Camera app
doesn't fail to compile.

JBQ

> --
> You received this message because you are subscribed to the "Android Building" mailing list.
> To post to this group, send email to android-...@googlegroups.com
> To unsubscribe from this group, send email to
> android-buildi...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-building?hl=en
>

--

sbq

unread,
Feb 3, 2011, 10:58:30 AM2/3/11
to Android Building
Greetings,

- Are factory images for Nexus S available yet? If not, is there a
schedule?

- Is there a recipe for building a Nexus S system.img and flashing it
onto a Nexus S that works as well as a commercial Nexus S? I realize
it will not have the market app, but other than that?

- For the Nexus One is there a way yet to build and flash a
Gingerbread system.img onto the phone that supports the camera and
video?

-Sam

Jean-Baptiste Queru

unread,
Feb 3, 2011, 11:22:58 AM2/3/11
to android-...@googlegroups.com
-No factory image for Nexus S at this point. No ETA.

-If you're familiar with the process to extract drivers from a running
device (./extract_files.sh) are you're authorized to do so, you can
get a fully functional build missing only the Google apps (use
full_crespo-userdebug which should be in the lunch menu). Beware:
without factory images, there's no supported way from there to return
to the original state.

-Because of a bug / missing feature (not sure) in the froyo graphics
driver for passion, you need to run gingerbread with 16-bit graphics
instead of 32-bit when using the froyo graphics drivers. Also, the API
to the camera changed, and gingerbread need to be modified to remove
multi-camera support in order to be able to use the froyo camera
driver for passion. I think that the CyanogenMod project has those
change.

JBQ

> --
> You received this message because you are subscribed to the "Android Building" mailing list.
> To post to this group, send email to android-...@googlegroups.com
> To unsubscribe from this group, send email to
> android-buildi...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-building?hl=en
>

--

Reply all
Reply to author
Forward
0 new messages