Project

General

Profile

TargetsEvaluation » History » Version 190

Denis 'GNUtoo' Carikli, 11/20/2019 03:51 PM
Remove forgetten header

1 81 Paul Kocialkowski
h1. Targets Evaluation
2 1 Brian Kemp
3 104 Wolfgang Wiedmeyer
{{>toc}}
4
5 89 Linus Drumbler
In this page we evaluate potential target devices to which we may port Replicant. These devices are _not_ supported, and are only in consideration.
6
7 101 Wolfgang Wiedmeyer
The [[DeveloperGuide#Commonly-used-terminology|developer guide]] explains the terminology used on this page. See also the "website":https://www.replicant.us/freedom-privacy-security-issues.php for background information.
8
The [[Index#Replicant-porting-guides|porting guides]] provide information how the following requirements can be evaluated.
9
10 81 Paul Kocialkowski
h2. Evaluation criteria
11 1 Brian Kemp
12 99 Wolfgang Wiedmeyer
h3. Minimal requirements
13
14 23 Paul Kocialkowski
List of the bare minimum requirements for a device to be ported to Replicant:
15 157 Denis 'GNUtoo' Carikli
* Users must not be required to use download, install or use any nonfree software to install Replicant.
16
* The bootloader must not prevent users from installing modified kernel versions.
17 158 Denis 'GNUtoo' Carikli
* Replicant will need to be usable on the device without having to redistribute any nonfree software.
18
* Users or automatic programs are not expected to download and install nonfree software to make the device usable. 
19 159 Denis 'GNUtoo' Carikli
* The device also need to have enough resources to run Android. For instance, at the time of writing, it's unrealistic to port devices with 128M of RAM to Replicant.
20 156 Denis 'GNUtoo' Carikli
21 1 Brian Kemp
Also keep in mind that:
22 158 Denis 'GNUtoo' Carikli
* The device must have at least one usable Linux kernel with with complete corresponding source code. If this is not the case, it might still be possible to obtain the complete corresponding source code from the device manufacturer, or to port the Linux kernel to the device yourself before starting to work on Replicant.
23 159 Denis 'GNUtoo' Carikli
* Some devices might have CPU architectures not supported by the latest Android version, like MIPS. Replicant may refuse to support such devices due to concern over long term maintenance of the code.
24 156 Denis 'GNUtoo' Carikli
* Replicant doesn't support CDMA yet. If your device has CDMA, adding support for CDMA may or may not be a lot of work depending on the device.
25 93 Wolfgang Wiedmeyer
26 23 Paul Kocialkowski
h3. Good target
27 1 Brian Kemp
28 23 Paul Kocialkowski
What makes a good target for Replicant:
29 1 Brian Kemp
* Bootloader must be ready to flash images, or be very easy to unlock
30 23 Paul Kocialkowski
* Free user-space implementation for most of the hardware already available
31
* Standard or well-known protocols used in the hardware (V4L2/ALSA/NMEA, etc)
32 160 Denis 'GNUtoo' Carikli
* Proprietary loadable firmwares only needed for Wi-Fi/Bluetooth, and not camera, or other peripherals etc
33 1 Brian Kemp
* Freedom-compliant hardware design: Modem isolation (no shared mem, GPS, audio)
34 162 Denis 'GNUtoo' Carikli
* It should be possible to deactivate the modem, either by hardware or software.
35 159 Denis 'GNUtoo' Carikli
* To make the port easier, and to amount lower the maintenance work it would also be a good idea if the chosen device meets or exceed with some margin the minimum [[HardwareRequirements]] of the latest Android version.
36 23 Paul Kocialkowski
37
h3. Ideal target
38
39
An ideal target for Replicant would be:
40
* Free bootloaders that allow easy flashing for the user
41
* All the hardware using standard protocols, kernel-drivers and no user-space binary blobs
42 103 Wolfgang Wiedmeyer
* Components do not require loadable non-free firmware
43
* There are ways to update the internal firmwares of the chips (for instance to allow a free software modem implementation)
44
* Has total modem isolation (doesn't control audio, nor GPS, mem, NAND, etc)
45 161 Denis 'GNUtoo' Carikli
* not SIM locked
46 3 Denis 'GNUtoo' Carikli
47 75 Paul Kocialkowski
h3. Known to be bad targets
48
49
Here is a list of the bad targets for Replicant and reasons why:
50 100 Wolfgang Wiedmeyer
* *Qualcomm MSM/QSD* devices are known to have bad hardware design where the modem controls GPS, audio (including mic), RAM, NAND.
51 163 Denis 'GNUtoo' Carikli
However, some MSM/QSD SoCs don't ship with a modem embedded, so they may be good targets. See [[Qualcomm_SOCs|the page on Qualcomm System On a Chip]] for more details on this issue.
52 79 Paul Kocialkowski
* *Nvidia Tegra 2* devices are known to be too slow with Replicant, since there is no NEON nor any free hwcomposer/gralloc.
53
Perhaps newer Tegra SoCs (which include NEON) would be faster on Replicant.
54 83 Brian Kemp
* *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.
55 75 Paul Kocialkowski
56 81 Paul Kocialkowski
h2. Devices evaluation
57 68 Denis 'GNUtoo' Carikli
58 76 Paul Kocialkowski
h3. Android devices
59
60 124 Denis 'GNUtoo' Carikli
|_. Manufacturer |_. Device |_. Upstream |_. Flash method |_. SoC |_. Graphics |_. Sound |_. Modem |_. Camera |_. GPS |_. Sensors |_. Removable battery |_. nonfree |_. Freedom issues |_. Verdict |
61
| *Asus* | *Nexus 7* | 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 |
62
| *GeeksPhone* | *One* | 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 | ? | ? | ? |\2=. Qualcomm, hardware is BAD for freedom |
63
| *GeeksPhone* | *Zero* | CM 7.2 (Android 2.3) | Fastboot | MSM7227 | Should be fast | May need non-free firmwares | ? | MSM undocumented mechanism | Probably NMEA from modem, bad design for freedom | ? | ? | ? |\2=. Qualcomm, hardware is BAD for freedom |
64 126 Denis 'GNUtoo' Carikli
| *LG* | *Nexus 4* | CM 10.1 (Android 4.2) | Fastboot | Qualcomm Snapdragon S4 Pro APQ8064 | ? | ? | Unknown protocol | ? | ? | ? | ? |\3=. 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 |
65 124 Denis 'GNUtoo' Carikli
| *LG* | *Optimus L9* | CM 10.1 (Android 4.2) | ? | OMAP 4430 | ? | ? | ? | ? | ? | ? | ? | ? | ? |
66
| *Motorola* | *Defy* | CM 7.2 (Android 2.3) | Recovery | OMAP 3630 | Should work | ? | ? | Non-free | ? | ? | ? | ? |\2=. *Kernel is signed*, making a Replicant port impossible |
67 144 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy Note 2 (LTE) ":https://en.wikipedia.org/wiki/Samsung_Galaxy_Note_II* | "LineageOS 14.1":https://wiki.lineageos.org/devices/t0lte | "heimdall":https://wiki.lineageos.org/devices/t0lte/install | Exynos 4412 | 1280x720 | ? | "Qualcomm MDM9X15":https://github.com/LineageOS/android_kernel_samsung_smdk4412/blob/cm-14.1/arch/arm/configs/lineageos_t0lte_defconfig#L557 "HSIC":https://github.com/LineageOS/android_kernel_samsung_smdk4412/blob/cm-14.1/arch/arm/configs/lineageos_t0lte_defconfig#L558 | ? | ? | ? | ? | ? | ? | ? |
68 143 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy Note 3 (HSPA+ version) ":https://en.wikipedia.org/wiki/Samsung_Galaxy_Note_3* | "LineageOS 14.1":https://wiki.lineageos.org/devices/ha3g | "heimdall":https://wiki.lineageos.org/devices/ha3g/install | Exynos 5420 | 1080x1920 | ? | "XMM6360":https://github.com/LineageOS/android_kernel_samsung_exynos5420/blob/cm-14.1/arch/arm/configs/lineageos_deathly_ha3g_defconfig#L1393 "HSIC":https://github.com/LineageOS/android_kernel_samsung_exynos5420/blob/cm-14.1/arch/arm/configs/lineageos_deathly_ha3g_defconfig#L1398 | ? | ? | ? | Yes | ? | ? | ? |
69 139 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy Note 4 (LTE Cat.4 & South Korea LTE Cat.6 & LTE Cat.9 (S-LTE)) ":https://en.wikipedia.org/wiki/Samsung_Galaxy_Note_4* | ? | ? | Exynos 5433  | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? |
70 142 Denis 'GNUtoo' Carikli
| *Samsung* | *"Samsung Galaxy Note Edge (South Korea version) ":https://en.wikipedia.org/wikiSamsung_Galaxy_Note_Edge* | ? | ? | Exynos 5433  | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? |
71 140 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy Note 5 ":https://en.wikipedia.org/wiki/Samsung_Galaxy_Note_5* | ? | ? | Exynos 7420  | ? | ? | ? | ? | ? | ? | No | ? | ? | ? |
72 124 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy S4 (GT-I9500​) ":https://en.wikipedia.org/wiki/Samsung_Galaxy_S4* | ? | ? | Exynos 5410 | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? |
73 134 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy S5 (SM-G900H) ":https://en.wikipedia.org/wiki/Samsung_Galaxy_S5* | "LineageOS 14.1":https://wiki.lineageos.org/devices/k3gxx | "heimdall":https://wiki.lineageos.org/devices/k3gxx/install | Exynos 5422 | 1080x1920 screen | ? | "XMM6360":https://github.com/LineageOS/android_kernel_samsung_k3gxx/blob/cm-14.1/arch/arm/configs/lineage_k3gxx_defconfig#L1235 "HSIC":https://raw.githubusercontent.com/LineageOS/android_kernel_samsung_k3gxx/cm-14.1/drivers/misc/modem_v2/link_pm_hsic_xmm626x.c | ? | ? | ? | Yes | "proprietary-files.txt":https://raw.githubusercontent.com/LineageOS/android_device_samsung_k3gxx/cm-14.1/proprietary-files.txt | ? | ? |
74 189 Denis 'GNUtoo' Carikli
| *Samsung* | "Galaxy S5 Neo (SM-G903F, SM-G903M, SM-G903W) ":https://wiki.lineageos.org/devices/s5neolte | LineageOS 16.0 | heimdall | Exynos 7580 | Mali-T720 MP2 | ? | Shared memory:"https://github.com/LineageOS/android_kernel_samsung_universal7580/blob/lineage-17.0/arch/arm64/configs/lineageos_s5neolte_defconfig#L1101"
75
"Samsung Mobile Modem Driver (SVNET2) V1 for Memory-type Interface"
76
CONFIG_LINK_DEVICE_SHMEM=y
77
# CONFIG_LINK_DEVICE_HSIC is not set | ? | ? | ? | Yes | "s5neolte/proprietary-files.txt":https://raw.githubusercontent.com/LineageOS/android_device_samsung_s5neolte/lineage-17.0/proprietary-files.txt
78 188 Denis 'GNUtoo' Carikli
"universal7580-common/proprietary-files.txt ?":https://raw.githubusercontent.com/LineageOS/android_device_samsung_universal7580-common/lineage-17.0/proprietary-files.txt
79
"universal7580-common/proprietary-files-bsp.txt ?":https://raw.githubusercontent.com/LineageOS/android_device_samsung_universal7580-common/lineage-17.0/proprietary-files-bsp.txt | ? | ? |
80 124 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy S6 ":https://en.wikipedia.org/wiki/Samsung_Galaxy_S6* | ? | ? | Exynos 7420 | ? | ? | ? | ? | ? | ? | No | ? | ? | ? |
81 135 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy S7 ":https://en.wikipedia.org/wiki/Samsung_Galaxy_S7* | "LineageOS 14.1":https://wiki.lineageos.org/devices/herolte | "heimdall":https://wiki.lineageos.org/devices/herolte/install | Exynos 8890 | 2560x1440 | ? | ? | ? | ? | ? | ? | ? | ? | ? |
82 136 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy S7 Edge ":https://en.wikipedia.org/wiki/Samsung_Galaxy_S7* | "LineageOS 14.1":https://wiki.lineageos.org/devices/hero2lte | "heimdall":https://wiki.lineageos.org/devices/hero2lte/install | Exynos 8890 | 2560x1440 | ? | ? | ? | ? | ? | ? | ? | ? | ? |
83 124 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy S8 international ":https://en.wikipedia.org/wiki/Samsung_Galaxy_S8* | ? | ? | Exynos 8895 | ? | ? | ? | ? | ? | ? | No | ? | ? | ? |
84
| *Samsung* | *"Galaxy Tab 8.9":https://en.wikipedia.org/wiki/Samsung_Galaxy_Tab_10.1* | 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 |
85 145 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy Xcover 3 ":https://en.wikipedia.org/wiki/Samsung_Galaxy_Xcover_3* | ? | ? | Marvell Armada PXA1908 | Vivante GPU | ? | ? | ? | ? | ? | Yes | ? | ? | ? |
86 146 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy Xcover 4 ":https://en.wikipedia.org/wiki/Samsung_Galaxy_Xcover_4* | ? | ? | Exynos 7570 | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? |
87 184 Kurtis Hanna
| *Samsung* | *"Nexus 10":https://en.wikipedia.org/wiki/Nexus_10* - codenamed Manta | Downstream "LineageOS 16.0":https://github.com/followmsi/manifests/tree/manta-lineage-16.0 ; Downstream "AOSP 9.0":https://github.com/followmsi/manifests/tree/manta-aosp-pie ; PostmarketOS "wiki":https://wiki.postmarketos.org/wiki/Google_Nexus_10_(samsung-manta) and "repo":https://github.com/postmarketOS/pmbootstrap/tree/master/aports/device/device-samsung-manta ; Devices with same SoC that have some upstream support : Samsung SMDK5250 eval board: "kernel":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/exynos5250-smdk5250.dts "u-boot":https://gitlab.denx.de/u-boot/u-boot/blob/master/configs/smdk5250_defconfig ; "Samsung Chromebook Series 3 XE303":https://www.chromium.org/a/chromium.org/dev/chromium-os/developer-information-for-chrome-os-devices/samsung-arm-chromebook - codenamed snow : "kernel":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/exynos5250-snow-common.dtsi "u-boot":https://gitlab.denx.de/u-boot/u-boot/blob/master/configs/snow_defconfig can use nv-U-Boot to "boot unverified kernel":https://www.chromium.org/chromium-os/firmware-porting-guide/using-nv-u-boot-on-the-samsung-arm-chromebook "tutorial to install upstream kernel at boot time":https://archlinuxarm.org/forum/viewtopic.php?t=11812 "ifixit teardown":https://www.ifixit.com/Teardown/Samsung+Chromebook+Series+3+Teardown/12225 "XDA thread about porting AOSP/CyanogenMod to this Chromebook":https://forum.xda-developers.com/showthread.php?t=2258446 "Tutorial on running Android on this Chromebook":https://web.archive.org/web/20151008074657/http://community.arm.com/groups/android-community/blog/2013/12/16/installing-android-on-the-samsung-xe303c12-chromebook "Tutorial on bootloader unlock on this Chromebook":https://krblogs.com/post/63809988096/bootloader-unlock-on-samsung-arm-chromebook ; "Arndale board":https://web.archive.org/web/20130926124911/http://www.arndaleboard.org/wiki/index.php/Main_Page : "wiki":https://en.wikipedia.org/wiki/Arndale_Board "kernel":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/exynos5250-arndale.dts "u-boot":https://gitlab.denx.de/u-boot/u-boot/blob/master/configs/arndale_defconfig supports "non-secure JTAG debugging":https://forum.odroid.com/viewtopic.php?f=31&t=5185&p=41945&hilit=5250&sid=3309c923bca29ee9f3097f621730ed97#p41945 ; "HP Chromebook 11 G1":https://www.chromium.org/a/chromium.org/dev/chromium-os/developer-information-for-chrome-os-devices/hp-chromebook-11 - codenamed spring : "kernel":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/exynos5250-spring.dts "u-boot":https://gitlab.denx.de/u-boot/u-boot/blob/master/configs/spring_defconfig | Fastboot | "Exynos 5250":https://en.wikipedia.org/wiki/Exynos#cite_ref-41 , also called the Exynos 5 Dual. "1.7 GHz dual-core ARMv7 Cortex-A15 ":https://en.wikipedia.org/wiki/ARM_Cortex-A15#cite_ref-31 "User manual":http://www.samsung.com/global/business/semiconductor/file/product/Exynos_5_Dual_User_Manaul_Public_REV100-0.pdf | Free gralloc, hwcomposer, non-free 3d, beware: ultra high resolution (could be slow), display may need non-free firmware, Mali T604 GPU can run "panfrost":https://gitlab.freedesktop.org/panfrost | May need non-free firmware | Has no modem, so no modem isolation issues | Free module | BCM4751: secret protocol | Free module | No, but "ifixit battery replacement":https://www.ifixit.com/Guide/Nexus+10+Battery+Replacement/62765 is ranked as moderate, taking only 10 to 15 minutes. | ? | ? |Port of Replicant 6.0 was planned but never pursued |
88 147 Denis 'GNUtoo' Carikli
| *Wiko* | *"Highway 4G":https://www.gsmarena.com/wiko_highway_4g-6795.php* | ? | ? | Tegra | ? | ? | ? | ? | ? | ? | ? | ? | ? | TODO: Check if the bootloader is signed |
89
90 26 Paul Kocialkowski
h3. Other devices
91 3 Denis 'GNUtoo' Carikli
92 14 Denis 'GNUtoo' Carikli
|_. Device |_. Manufacturer |_. Android port |_. Bootloader |_. SoC |_. Standardness |_. Blobs |_. Firmwares |_. Modem |_. Notes |
93 86 Linus Drumbler
| *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 |
94 102 Wolfgang Wiedmeyer
| *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 non-free 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 | 
95 90 Paul Kocialkowski
| *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...  |
96
| *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. |
97 102 Wolfgang Wiedmeyer
| *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 non-free firmware | 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 |
98 46 Denis 'GNUtoo' Carikli
99 1 Brian Kemp
100 148 Kurtis Hanna
There are a small number of do-it-yourself phones where the user is expected to assemble the phone. Examples of this include the "odroid":http://www.hardkernel.com/ phones which comes with android support. However, the issue is that not all users want or are able to assemble their own phones.