Thanks to the awesome work from CyanogenMod developers, bringing up Qualcomm hardware on AOSP is extremely easy; it took me all of two minutes to get GPS working on the Huawei U8185 on CyanogenMod 9.
Here are the changes I had to make to get GPS working on this little handset:
# GPS BOARD_USES_QCOM_GPS := true BOARD_VENDOR_QCOM_GPS_LOC_API_AMSS_VERSION := 50000 BOARD_VENDOR_QCOM_GPS_LOC_API_HARDWARE := u8185
# gps PRODUCT_PACKAGES += \ gps.u8185
The fact that I could bring up this device on CyanogenMod so quickly is a testament to the skill of the CyanogenMod developers and several other key players. As AOSP only supports Google’s “Nexus” devices, it’s not a trivial task to get new devices (possibly with new SoCs) running on vanilla Android.
AOSP support for new chipsets comes from organizations like the CodeAurora Forum (CAF), OmapZoom, and Linaro, who do lots of upstream enablement and documentation work for the Linux kernel, Android, and their related subsystems. CAF in particular has a great track record of publishing source code and documentation for the Qualcomm Snapdragon SoC (the Huawei U8185 uses an msm7225a Qualcomm chipset).
Without the time and money of the full-time developers from CAF, Linaro, et al, CyanogenMod would have a lot more low-level work do to (and wouldn’t be able to support as many devices). CyanogenMod’s loosely-knit group of volunteer developers benefits greatly by the existence of these industry organizations, and as a result tech-savvy n00bs like me can get our feet wet in Android “development” relatively easily.