Project

General

Profile

TargetsEvaluation » History » Revision 93

Revision 92 (Wolfgang Wiedmeyer, 03/03/2017 06:24 PM) → Revision 93/214 (Wolfgang Wiedmeyer, 03/18/2017 02:27 PM)

h1. Targets Evaluation 

 In this page we evaluate potential target devices to which we may port Replicant. These devices are _not_ supported, and are only in consideration. 

 h2. Evaluation criteria 

 

 h3. Minimal requirements 

 List of the bare minimum requirements for a device to be ported to Replicant: 
 * The device must be supported by LineageOS/CyanogenMod officially (better) or via 3rd party repos 
 * There must be a way to flash images (via bootloader or recovery) using a free program 
 * The kernel must not be signed: the bootloader must not check the kernel signature 
 * The kernel sources must have been released 
 * The network type must be GSM, no CDMA phone can be supported for now 

 The [[Replicant60PortingGuide|porting guide]] provides information how these criteria can be evaluated. 

 

 h3. Good target 

 What makes a good target for Replicant: 
 * Bootloader must be ready to flash images, or be very easy to unlock 
 * Free user-space implementation for most of the hardware already available 
 * Standard or well-known protocols used in the hardware (V4L2/ALSA/NMEA, etc) 
 * Firmwares needed only for Wi-Fi/Bluetooth, and not sound, screen, touchscreen, camera, etc 
 * Freedom-compliant hardware design: Modem isolation (no shared mem, GPS, audio) 

 h3. Ideal target 

 An ideal target for Replicant would be: 
 * Free bootloaders that allow easy flashing for the user 
 * All the hardware using standard protocols, kernel-drivers and no user-space binary blobs 
 * Components that do not require loadable firmware 
 * Ways to update the internal firmwares of the chips (for instance to allow a free software modem implementation) 
 * Total modem isolation (doesn't control audio, nor GPS, mem, NAND, etc) 
 * SIM unlock 

 h3. Known to be bad targets 

 Here is a list of the bad targets for Replicant and reasons why: 
 * *MSM/QSD* devices are known to have bad hardware design where the modem controls GPS, audio (including mic), RAM, NAND. 
 However, some MSM/QSD SoCs don't ship with a modem embedded, so they may be good targets. 
 * *Nvidia Tegra 2* devices are known to be too slow with Replicant, since there is no NEON nor any free hwcomposer/gralloc. 
 Perhaps newer Tegra SoCs (which include NEON) would be faster on Replicant. 
 * *Motorola* devices manufactured after the Milestone (inclusive). These have non-free locked bootloaders that check kernel signatures. *sbf_flash*, a utility capable of flashing Motorola devices, is non-free. 

 h2. Devices evaluation 

 

 h3. Android devices 

 |_. Device |_. Manufacturer |_. CyanogenMod port |_. Flash method |_. SoC |_. Graphics |_. Sound |_. Modem |_. Camera |_. GPS |_. Sensors |_. Verdict | 
 | *One* | *GeeksPhone* | CM 7.2 (Android 2.3) | Recovery | MSM7K | Should be fast | Should work | Non-standard protocol but AT seems possible, bad design for freedom | MSM undocumented mechanism | Probably NMEA from modem, bad design for freedom | ? | Qualcomm, hardware is BAD for freedom | 
 | *Zero* | *GeeksPhone* | CM 7.2 (Android 2.3) | Fastboot | MSM7227 | Should be fast | May need firmwares | ? | MSM undocumented mechanism | Probably NMEA from modem, bad design for freedom | ? | Qualcomm, hardware is BAD for freedom | 
 | *"Galaxy Tab 8.9":https://en.wikipedia.org/wiki/Samsung_Galaxy_Tab_10.1* | *Samsung* | CM 9.0 (Android 4.0) | Heimdall | Tegra 2 | ? | Free module | Samsung IPC, XMM6260 | Non-free tegra module, perhaps not even v4l2 | BCM4751: secret protocol | ? | PaulK had one but failed to port to it because of Tegra slowness issues | 
 | *Nexus 7* | *Asus* | CM 10 (Android 4.1) | Fastboot | Tegra 3 | ? | Free module | 3G version modem uses AT | Non-free tegra module, perhaps not even v4l2 | BCM4751: secret protocol | ? | Port possible but unlikely to succeed | 
 | *Nexus 10* | *Samsung* | ? | Fastboot | "Exynos 5250":https://en.wikipedia.org/wiki/Exynos | Free gralloc, hwcomposer, non-free 3d, beware: ultra high resolution(could be slow) | Free module | N/A (Has No Modem) | Free module | BCM4751: secret protocol | Free module | Port of Replicant 4.2 planned | 
 | *Nexus 4* | *LG* | CM 10.1 (Android 4.2) | Fastboot | Qualcomm Snapdragon S4 Pro APQ8064 | ? | ? | Unknown protocol | ? | ? | ? | Really BAD: has "too many proprietary things":https://android.googlesource.com/device/lge/mako/+/77f8e6b51a8f26ea9288a9186179511a92c07df0/proprietary-blobs.txt and the hardware is bad for freedom: modem controls the GPS (included in the modem chip), audio and perhaps NAND too | 
 | *Defy* | *Motorola* | CM 7.2 (Android 2.3) | Recovery | OMAP 3630 | Should work | ? | ? | Non-free | ? | ? | *Kernel is signed*, making a Replicant port impossible | 
 | *Optimus Black* | *LG* | CM 10.1 (Android 4.2) | Recovery | OMAP 3630 | ? | ? | ? | ? | ? | ? | Port begun but abandoned | 
 | *Optimus L9* | *LG* | CM 10.1 (Android 4.2) | ? | OMAP 4430 | ? | ? | ? | ? | ? | ? | 

 

 h3. Other devices 

 |_. Device |_. Manufacturer |_. Android port |_. Bootloader |_. SoC |_. Standardness |_. Blobs |_. Firmwares |_. Modem |_. Notes | 
 | *Neo Freerunner* | *Openmoko* | "AoF":http://code.google.com/p/android-on-freerunner/ | u-boot, flash with dfu-utils | Samsung S3C2442, CPU @400Mhz | Audio: ALSA, GPS: NMEA, Modem: AT | No | No | Total isolation | Hardware is too old to be supported by Replicant, armv4t | 
 | *N900* | *Nokia* | Nitdroid | partially signed, chainloaded u-boot, flash with 0xff | OMAP3430, CPU @600Mhz | Voice calls depend on cmt_speech pulseaudio plugin, modem protocol is non-standard but implemented in ofono | Nitdroid uses blobs | Nitdroid uses firmwares (Wi-Fi, bluetooth, camera) | GPS is controlled by the modem, modem transport is over high-speed serial | GNUtoo has one, Nitdroid is hard to build and undocumented |  
 | *iPhone* | *Apple* | "iDroid":http://www.idroidproject.org | iDroid bootloader seems free | iPhone 3G: Similar to Samsung S5PC110 | iPhone 3G: Audio: ALSA, Modem: AT, Wi-Fi: libertas | Probably needs some | Probably needs some | Known to never sleep | already supported by the "Idroid project":http://www.idroidproject.org ,however it has "a really bad status":http://www.idroidproject.org/wiki/Status : it can't suspend to ram...    | 
 | *FLOW G1.55* | *GizmoForYou* | "Stock":https://gitorious.org/flow-g1-5/ | xloader + u-boot | OMAP3 | Audio: ALSA, Modem: AT | ? | Wi-Fi/Bluetooth | Needs to be check, could be OK | Instructions to build Android 2.2 for it are provided: http://www.gizmoforyou.net/wiki/index.php/Building_G155_Android Unfortunately that phone isn’t cheap. | 
 | *PengPod1000/700* | *PengPod* | ? "Android development forum":http://pengpod.com/forum/viewforum.php?f=12 | "u-boot":https://github.com/npeacock/u-boot-sunxi | Allwinner A10 | ? | both 8192cu and rtl8188eu Wi-Fi chips need firmware blob | Some have rtl8192cu Wi-Fi, some have rtl8188eu | N/A | More focused on running GNU/Linux than Android. "Wiki":http://pengpod.com/pengwiki/index.php?title=Main_Page | 


 There is a small number of do-it-yourself phones where the user is expected to assemble his phone. Examples of this include the "odroid":http://www.hardkernel.com/ phones with come with android support. However, the issue is that not all users want or are able to assemble their own phones.