Here is a look at the practical technical differences between GSM and
CDMA, as relevant to these devices.
In order to properly support a given device in AOSP, the relevant
proprietary binaries need to be available. For Nexus devices, we make
as many of these as possible available through
https://code.google.com/android/nexus/drivers.html, which requires an
appropriate license agreement between Google and the owners of those
binaries. For GSM (and HSPA) devices, getting these license agreements
is relatively easy; however, since there are many more intellectual
property holders in the CDMA world, it is much more difficult to get
the appropriate rights.
On a technical level, in the GSM world the proprietary binaries that
are necessary to communicate with the cell network are typically a
very small number of C libraries that can be used directly on all
build configurations without any modifications. In the CDMA world,
parts of the network stack are implemented as apks, which are
protected by cryptographic signatures, and the network stack must use
the same signature as the rest of the system (to guarantee that it
can't be replaced in a way that'd allow the network traffic to be
intercepted). Since the system signature varies from one build
configuration to the next, those apks need to be modified to match
each build. In turn, that requires licenses that allow making
modifications to those files, and Google hasn't been able to obtain
such a license so far. Similarly, the build process for consumer
builds involves a step called "dexpreopt" that modifies all the apks
on the system, and running that step also requires licenses that allow
making modifications to the proprietary binaries, so doing it on a
CDMA device requires additional licence terms that aren't necessary
for GSM devices.
Even if the licensing issues were resolved, there'd still be some
hurdles that'd prevent CDMA devices from working as well as GSM ones
in AOSP. As an example, performing a factory reset on Xoom (which is
necessary to work around a bootloader bug) deletes the network
configuration for Verizon Wireless, and that network configuration
can't be restored in AOSP builds as it is tied to the initial sign-up
flow, which isn't the same for AOSP builds and retail builds.
Now, here's how things are likely to look in the future for those CDMA devices:
- Most likely, the relevant source files will continue being in the
Android source tree.
- Quite likely, it will be possible to actually compile that code.
- We plan to continue to distribute factory images for Galaxy Nexus
and proprietary binaries for all relevant devices, where we can.
- There won't be any testing done on AOSP builds for those CDMA
devices, so they'll probably bit-rot.
- CDMA devices won't be targeted by improvements in the way AOSP
builds can be installed or distributed.
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.
We really intended to get better support for CDMA devices, on par with
GSM devices. That was definitely the original plan, but sometimes even
the best plans bump into difficulties. With appropriate licenses and a
bit of help from the manufacturers and operators to tie the loose
ends, there's no fundamental technical reason why that shouldn't be
possible.
Unfortunately no matter how much I might desire to distribute the
missing proprietary binaries in a form that's appropriate for use with
AOSP, I can't possibly do that without appropriate licenses. Without
those files, there's no way to honestly claim that AOSP is supported
on those devices.
JBQ
> --
> You received this message because you are subscribed to the Google Groups "android-platform" group.
> To post to this group, send email to android-...@googlegroups.com.
> To unsubscribe from this group, send email to android-platfo...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/android-platform?hl=en.
-It requires to modify an extremely sensitive part of the package
manager, for a use case that's not relevant for retail devices, so the
risk-reward balance is heavily stacked against AOSP. At the very least
you'll want that behavior to be off by default, with a mechanism to
turn it on that would only be enabled in custom AOSP builds.
-It requires to generate those signatures without copying the files,
i.e. they'd need to be generated on-device, with a usage pattern that
isn't the normal usage pattern for those files.
I agree that with those two aspects we'd be potentially one step
closer toward being able to do http://goo.gl/8jit8 on some CDMA
devices.
JBQ
> --
> You received this message because you are subscribed to the Google Groups "android-platform" group.
> To post to this group, send email to android-...@googlegroups.com.
> To unsubscribe from this group, send email to android-platfo...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/android-platform?hl=en.
>
--
I suggest that you look at the details of http://goo.gl/8jit8 to see a
case where I take great care about not copying or modifying such
files. I also created the very annoying packaging of Samsung's
binaries for crespo4g binaries so that the exact files that get
distributed in the self-extractor remain unmodified.
JBQ
> --
> You received this message because you are subscribed to the Google Groups "android-platform" group.
> To post to this group, send email to android-...@googlegroups.com.
> To unsubscribe from this group, send email to android-platfo...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/android-platform?hl=en.
>
--
Also, again, I'm not a lawyer, and i'm not your lawyer, so I can't
possibly answer questions about whether something is legal or not.
The approach I took for the GSM Galaxy Nexus (installing via recovery,
leaving proprietary files entirely untouched in the process)
definitely doesn't for for the CDMA version, because the proprietary
files on that device need to be modified in order to work with a
custom build, and the tools I used don't allow doing anything like
that.
JBQ
> For more options, visit this group at http://groups.google.com/group/android-platform?hl=en.
-That'd require to modify the proprietary files, which can't be done
without a license.
JBQ
> For more options, visit this group at http://groups.google.com/group/android-platform?hl=en.
Cheers,
Nathaniel
You're definitely right that there are steps forward and steps back.
Over some short periods of time, at times things move backward a bit,
often as a result of trying to move too far forward and then having to
retreat a bit.
I do believe however that things have been moving forward overall. As
high-level examples, we now have unlockable bootloaders in retail
devices (starting with Nexus One). We now have licenses for some of
the proprietary binaries (starting with Nexus S). We now have official
factory images (starting with Galaxy Nexus).
JBQ
Apks on retail images are run through dexopt at build time, replacing
the dex section with an odex file. The resulting odex files are
optimized globally along library dependencies. An apk that's been run
through dexopt can only run against the exact libraries that were used
in the same dexopt phase.
What that really means is that even if we managed to get the package
manager to recognize those apks as having the platform signature (one
way or another), we still wouldn't be able to execute the code in
question, as that code is only executable in the context of the system
it was original built as a part of.
That's exactly the kind of difficulty that we keep bumping into when
we don't have the appropriate licenses, especially for apks.
JBQ
The amount we pay for these devloper devices is substantial - and I'm
sure Google would have had this foresight/information about such
problems way ahead. The appropriate thing from Google's side for us
developers would have to give few warnings about such grey areas (at
least for the Verizon Galaxy Nexus) before the phone was available for
sale on the retail market.
I really do not see this happening you guys. Everything I am reading is telling me it is already a done deal. Google does not and will not any longer support CDMA devices directly. And even firmware updates only if the carriers proprietary radio files, etc. will work with Google's updated source.
The writing is on the wall, Google is no longer directly supporting cdma for Aosp building as well as not providing CDMA devices Ota updates, that will come now directly from Verizon. Verizon will nor carry another Nexus ever is my prediction. Game over.
Is there any possibility that Google might be able to secure the
licenses it needs to support CDMA devices in AOSP? It seems to me that
Google should do whatever it takes to honor its word that the Galaxy
Nexus toro would be a developer phone. It sounds like some of these IP
owners are putting the screws to Google and we're the ones who are
caught in the crossfire.
I do not know man. I think it is political
So what happened between Gingerbread and ICS so that this issue is
just now coming up?