h1. Nexus S Proprietary This is the list of the proprietary libraries, binaries and firmwares shipped with cyanogenmod or the factory images on the Nexus S and the status of their replacement. h2. Note on shipping non-free programs *Note that we don't ship any proprietary binary, library or firmware.* *First because our goal is to reach a 100% free Android distribution and also because sometimes, these are not even distributables.* h2. Libraries |_. Library location |_. Function |_. Can be replaced or avoided? | |/system/lib/libsecril-client.so| client to Samsung's non-free RIL | probably useless when we use another RIL (like a free replacement) | |/system/vendor/bin/gpsd| GPS daemon | has to be replaced to have working GPS | |/system/vendor/bin/pvrsrvinit| [[PowerVR]] server initializer, 3d-related | can be avoided | |/system/vendor/lib/egl/libEGL_POWERVR_SGX540_120.so| [[PowerVR]] 3d lib | can be avoided | |/system/vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so| [[PowerVR]] 3d lib | can be avoided | |/system/vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so| [[PowerVR]] 3d lib | can be avoided | |/system/vendor/lib/hw/gps.s5pc110.so| GPS lib | has to be replaced to have working GPS | |/system/vendor/lib/hw/gralloc.s5pc110.so| gralloc lib | cannot be avoided but was replaced by a (free) modified version of AOSP's gralloc | |/system/vendor/lib/libakm.so| accelerometer + compass | can be avoided but a free replacement (libakm_free) already works with the accelerometer and the magnetic field (compass) will be supported soon | |/system/vendor/lib/libglslcompiler.so| ? seems graphics-related | can be avoided | |/system/vendor/lib/libIMGegl.so| ? seems graphics-related | can be avoided | |/system/vendor/lib/libpvr2d.so| ? seems graphics-related | can be avoided | |/system/vendor/lib/libpvrANDROID_WSEGL.so| ? seems graphics-related | can be avoided | |/system/vendor/lib/libPVRScopeServices.so| ? seems graphics-related | can be avoided | |/system/vendor/lib/libsec-ril.so| Samsung's RIL | has to be replaced to have working telephony and SMS (and data too) |_. |/system/vendor/lib/libsrv_init.so| ? | can be avoided | |/system/vendor/lib/libsrv_um.so| ? | can be avoided | |/system/vendor/lib/libusc.so| ? | can be avoided | h2. Configuration files |_. File location |_. Function |_. What depends on it? | |/system/vendor/etc/gps.xml| gps configuration file | GPS. A (free) rewrite of this would probably conclude to producing almost the same file. | h2. Firmwares |_. Firmware location |_. Function |_. What depends on it? | |/system/vendor/firmware/fw_bcm4329.bin| wifi firmware | wifi | |/system/vendor/firmware/fw_bcm4329_apsta.bin| wifi AP firmware | wifi access point | |/system/lib/libpn544_fw.so|NFC firmware|Near Field Communication| |/system/vendor/firmware/bcm4329.hcd| bluetooth firmware | bluetooth | |/system/vendor/firmware/nvram_net.txt| wifi-related firmware | wifi | |/system/vendor/firmware/samsung_mfc_fw.bin| MFC firmware | Multi Format Codec (hardware video encoding/decoding) | h2. References * http://github.com/CyanogenMod/android_device_samsung_crespo/raw/gingerbread-release/extract-files.sh