Project

General

Profile

TargetsEvaluation » History » Version 214

Denis 'GNUtoo' Carikli, 11/15/2022 05:34 PM
tilapia: add infos about modem protocol

1 81 Paul Kocialkowski
h1. Targets Evaluation
2 1 Brian Kemp
3 104 Wolfgang Wiedmeyer
{{>toc}}
4
5 193 Denis 'GNUtoo' Carikli
This page contains information on the freedom of various device, along with the ability to be ported to Replicant. It can be used for many different things:
6
* It can be used to evaluate potential target devices
7
* It can be used to denounce very vicious attacks on users freedom, for instance if the kernel is signed.
8 194 Denis 'GNUtoo' Carikli
* It can be used to track if new devices have removable batteries
9 193 Denis 'GNUtoo' Carikli
10 194 Denis 'GNUtoo' Carikli
To track the upstream status of various devices, we also have the [[Upstream]] wiki page. Here we really need information on the upstream status of smartphones and tablets, even if the devices are worse than the ones currently supported as it helps plan the future of Replicant. For instance we could use the data to understand how to build virtuous circles with various upstream project that care less about freedom.
11 193 Denis 'GNUtoo' Carikli
12
That page was previously used to evaluate potential target devices to which we may port Replicant, but the information on the devices Replicant would not want to support turned out to be useful as well.
13
14
Also note that adding support for a new device in Replicant takes some time and effort.
15
16
Because of that, adding new devices in that page doesn't guarantee at all that the device will be supported in Replicant, even if that device has significantly less freedom issues than the ones currently supported by Replicant, as some people still need to step up and do the work.
17 89 Linus Drumbler
18 194 Denis 'GNUtoo' Carikli
Other resources:
19
* There is also a "forum section":https://redmine.replicant.us/projects/replicant/boards/27 about devices evaluations.
20
* The mailing list can also be used to discuss about device evaluations
21
22 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.
23
The [[Index#Replicant-porting-guides|porting guides]] provide information how the following requirements can be evaluated.
24 1 Brian Kemp
25 195 Denis 'GNUtoo' Carikli
h3. Improving data on devices
26
27
It might be a good idea to investigate how to use Wikidata to store the data and be able to automatically generate some tables from that.
28
29
This could also enable us to share the work with other communities. However the main issue with doing that would be to ensure that the data quality is good enough to our standards.
30
31
The inventaire project has exactly the same issues and did "a presentation":https://media.ccc.de/v/wikidatacon2019-1059-inventaire_what_we_learnt_from_reusing_and_extending_wikidata_shifting_data on how they deal with it.
32
33 196 Denis 'GNUtoo' Carikli
It's also possible to build compatibility tables with "sparql querries":https://en.wikipedia.org/wiki/User:GNUtoo/sparql but much more research needs to be done on how to best interface with wikidata data.
34 195 Denis 'GNUtoo' Carikli
35
h3. Other data sources
36
37
* LineageOS generates its wiki compatibility page from "yaml data":https://github.com/LineageOS/lineage_wiki.git. We can also use the same data to find devices that might be interesting to support in Replicant.
38
* Wikidata had or has already a community of people involved in adding smartphones in wikidata.
39
* The gsmarena website also has some information on smartphones.
40
* Wikipedia has a lot of information on smartphones, including specifications.
41
42
Replicant even has a tool:"https://git.replicant.us/replicant/vendor_replicant-scripts/tree/research" to automatize that
43
44 194 Denis 'GNUtoo' Carikli
h2. Evaluation criteria for accepting new devices in Replicant
45 1 Brian Kemp
46 99 Wolfgang Wiedmeyer
h3. Minimal requirements
47
48 23 Paul Kocialkowski
List of the bare minimum requirements for a device to be ported to Replicant:
49 157 Denis 'GNUtoo' Carikli
* Users must not be required to use download, install or use any nonfree software to install Replicant.
50
* The bootloader must not prevent users from installing modified kernel versions.
51 158 Denis 'GNUtoo' Carikli
* Replicant will need to be usable on the device without having to redistribute any nonfree software.
52
* Users or automatic programs are not expected to download and install nonfree software to make the device usable. 
53 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.
54 209 Denis 'GNUtoo' Carikli
* User replaceable batteries:
55
** The batteries can be removed and replaced with basic tools like a screwdriver and stamp tweezer to open the back cover, without damaging too much the device.
56
** Requiring to use a heat gun to open the case in a way that damages it makes it too complicated for Replicant developers, users, and vendors selling devices with Replicant pre-installed, to do it without damaging the device.
57
** Not being able to remove batteries results in the inability to easily find the device second hand and replace the battery. Developers also have to rush for supporting the device, as people prefer to buy it new as the battery will last longer this way.
58
* A somewhat isolated modem:
59
** A modem connected with shared memory or in the same SOC is not OK anymore, unless:
60
** The modem can run fully free software that is under the user control, which Replicant will use and redistribute.
61
** An IOMMU that is setup correctly. As IOMMU are complicated to setup correctly, and to really isolate from the modem they would require:
62
*** Complete documentation, including documentation that shows that the modem cannot re-configure the IOMMU
63
*** To make sure that the IOMMU is setup correctly, before the modem is booted. For instance:
64
**** If the modem boot is not controlled by Replicant, you would need to make sure that at boot, the IOMMU is setup before the modem link is initialized. This typically requires upstream support for the device in a fully free bootloader.
65
**** If instead, the modem boot is controlled by Replicant, you could just do the IOMMU setup in the kernel and upstream the code to be sure it works as intended.
66 156 Denis 'GNUtoo' Carikli
67 1 Brian Kemp
Also keep in mind that:
68 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.
69 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.
70 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.
71 210 Denis 'GNUtoo' Carikli
* As Replicant 9 will be based on upstream Linux, it's a good idea to have the some support for the device in upstream Linux and work with upstream to add as much support as possible, in order to limit the maintenance of such code.
72 93 Wolfgang Wiedmeyer
73 211 Denis 'GNUtoo' Carikli
If you still want to add support for devices that don't meet the minimal requirements, we still have some options left:
74
* We are open to collaborate with people wanting to add support for devices (that Replicant doesn't want to support) in other upstream projects. For instance, Replicant 9 will use a kernel that is very closely based on upstream Linux. Thanks to that, the source code might be useful to run Android on various devices with upstream Linux kernel.
75
* We are open to upstreamming the code made by Replicant in other projects as well. We already upstreamed several libraries in CyanogenMod or LineageOS.
76
* We are also open to collaborate in helping you fork Replicant if there is no suitable upstream for supporting your device.
77 212 Denis 'GNUtoo' Carikli
* If you or someone else has some idea to add here, feel free to request a wiki account to add it, or to suggest it on IRC, the mailing list, in a bug report, etc.
78 211 Denis 'GNUtoo' Carikli
79 23 Paul Kocialkowski
h3. Good target
80 1 Brian Kemp
81 23 Paul Kocialkowski
What makes a good target for Replicant:
82 1 Brian Kemp
* Bootloader must be ready to flash images, or be very easy to unlock
83 23 Paul Kocialkowski
* Free user-space implementation for most of the hardware already available
84
* Standard or well-known protocols used in the hardware (V4L2/ALSA/NMEA, etc)
85 160 Denis 'GNUtoo' Carikli
* Proprietary loadable firmwares only needed for Wi-Fi/Bluetooth, and not camera, or other peripherals etc
86 1 Brian Kemp
* Freedom-compliant hardware design: Modem isolation (no shared mem, GPS, audio)
87 162 Denis 'GNUtoo' Carikli
* It should be possible to deactivate the modem, either by hardware or software.
88 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.
89 23 Paul Kocialkowski
90
h3. Ideal target
91
92
An ideal target for Replicant would be:
93
* Free bootloaders that allow easy flashing for the user
94
* All the hardware using standard protocols, kernel-drivers and no user-space binary blobs
95 103 Wolfgang Wiedmeyer
* Components do not require loadable non-free firmware
96
* There are ways to update the internal firmwares of the chips (for instance to allow a free software modem implementation)
97
* Has total modem isolation (doesn't control audio, nor GPS, mem, NAND, etc)
98 161 Denis 'GNUtoo' Carikli
* not SIM locked
99 3 Denis 'GNUtoo' Carikli
100 75 Paul Kocialkowski
h3. Known to be bad targets
101
102
Here is a list of the bad targets for Replicant and reasons why:
103 100 Wolfgang Wiedmeyer
* *Qualcomm MSM/QSD* devices are known to have bad hardware design where the modem controls GPS, audio (including mic), RAM, NAND.
104 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.
105 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.
106
Perhaps newer Tegra SoCs (which include NEON) would be faster on Replicant.
107 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.
108 75 Paul Kocialkowski
109 81 Paul Kocialkowski
h2. Devices evaluation
110 68 Denis 'GNUtoo' Carikli
111 76 Paul Kocialkowski
h3. Android devices
112
113 206 Denis 'GNUtoo' Carikli
|_. Manufacturer |_. Device |_. RAM size |_. Upstream |_. Flash method |_. SoC |_. Graphics |_. Sound |_. Modem |_. Camera |_. GPS |_. Sensors |_. Removable battery |_. nonfree |_. Freedom issues |_. Verdict |
114 214 Denis 'GNUtoo' Carikli
| *Asus* | *Nexus 7* | ? | CM 10 (Android 4.1) | Fastboot | Tegra 3 | ? | Free module | 3G version modem uses AT[1] | Non-free tegra module, perhaps not even v4l2 | BCM4751: secret protocol | ? | ? | ? | ? | Port possible but unlikely to succeed |
115 206 Denis 'GNUtoo' Carikli
| *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 |
116
| *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 |
117
| *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 |
118
| *LG* | *Optimus L9* | ? | CM 10.1 (Android 4.2) | ? | OMAP 4430 | ? | ? | ? | ? | ? | ? | ? | ? | ? |
119
| *Motorola* | *Defy* | ? | CM 7.2 (Android 2.3) | Recovery | OMAP 3630 | Should work | ? | ? | Non-free | ? | ? | ? | ? |\2=. *Kernel is signed*, making a Replicant port impossible |
120 208 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy S II, I9100G variant":https://en.wikipedia.org/wiki/Samsung_Galaxy_S_II* | 1G | ? | ? | OMAP 4430 | ? | ? | "XMM6260":https://github.com/LineageOS/android_kernel_samsung_t1/blob/cm-12.1/arch/arm/configs/android_t1_omap4430_r03_eng_defconfig#L1097
121 205 Denis 'GNUtoo' Carikli
"MIPI":https://github.com/LineageOS/android_kernel_samsung_t1/blob/cm-12.1/arch/arm/configs/android_t1_omap4430_r03_eng_defconfig#L1097 | ? | ? | ? | ? | ? | ? | Looks really good:
122
* The modem looks isolated 
123
* The modem probably use the samsung-ipc protocol
124
* Has a free software xloader
125
* Unsigned bootloader |
126 206 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
127 203 Denis 'GNUtoo' Carikli
"HSIC":https://github.com/LineageOS/android_kernel_samsung_smdk4412/blob/cm-14.1/arch/arm/configs/lineageos_t0lte_defconfig#L558 | ? | ? | ? | ? | ? | ? | ? |
128 206 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 
129 203 Denis 'GNUtoo' Carikli
"HSIC":https://github.com/LineageOS/android_kernel_samsung_exynos5420/blob/cm-14.1/arch/arm/configs/lineageos_deathly_ha3g_defconfig#L1398 | ? | ? | ? | Yes | ? | ? | ? |
130 206 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 | ? | ? | ? |
131
| *Samsung* | *"Samsung Galaxy Note Edge (South Korea version) ":https://en.wikipedia.org/wikiSamsung_Galaxy_Note_Edge* | ? | ? | ? | Exynos 5433  | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? |
132
| *Samsung* | *"Galaxy Note 5 ":https://en.wikipedia.org/wiki/Samsung_Galaxy_Note_5* | ? | ? | ? | Exynos 7420  | ? | ? | ? | ? | ? | ? | No | ? | ? | ? |
133
| *Samsung* | *"Galaxy S4 (GT-I9500​) ":https://en.wikipedia.org/wiki/Samsung_Galaxy_S4* | ? | ? | ? | Exynos 5410 | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? |
134
| *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
135 203 Denis 'GNUtoo' Carikli
"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 | ? | ? |
136 206 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 | ? | ? | ? | Yes | "s5neolte/proprietary-files.txt":https://raw.githubusercontent.com/LineageOS/android_device_samsung_s5neolte/lineage-17.0/proprietary-files.txt
137 189 Denis 'GNUtoo' Carikli
"universal7580-common/proprietary-files.txt ?":https://raw.githubusercontent.com/LineageOS/android_device_samsung_universal7580-common/lineage-17.0/proprietary-files.txt
138 1 Brian Kemp
"universal7580-common/proprietary-files-bsp.txt ?":https://raw.githubusercontent.com/LineageOS/android_device_samsung_universal7580-common/lineage-17.0/proprietary-files-bsp.txt | Has at least a modem that is not isolated | not isolated modem => too bad for freedom to support in Replicant |
139 206 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy S6 ":https://en.wikipedia.org/wiki/Samsung_Galaxy_S6* | ? | ? | ? | Exynos 7420 | ? | ? | ? | ? | ? | ? | No | ? | ? | ? |
140 213 Jack K
| *Samsung* | *"Galaxy S7 ":https://en.wikipedia.org/wiki/Samsung_Galaxy_S7* | 4GB | "LineageOS 14.1":https://wiki.lineageos.org/devices/herolte | "heimdall":https://wiki.lineageos.org/devices/herolte/install | Exynos 8890 | 2560x1440 | ? | ? | ? | ? | ? | No | ? | ? | ? |
141
| *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 | ? | ? | ? | ? | ? | No | ? | ? | ? |
142 206 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy S8 international ":https://en.wikipedia.org/wiki/Samsung_Galaxy_S8* | ? | ? | ? | Exynos 8895 | ? | ? | ? | ? | ? | ? | No | ? | ? | ? |
143
| *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
144 203 Denis 'GNUtoo' Carikli
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 |
145 206 Denis 'GNUtoo' Carikli
| *Samsung* | *"Galaxy Xcover 3 ":https://en.wikipedia.org/wiki/Samsung_Galaxy_Xcover_3* | ? | ? | ? | Marvell Armada PXA1908 | Vivante GPU | ? | ? | ? | ? | ? | Yes | ? | ? | ? |
146
| *Samsung* | *"Galaxy Xcover 4 ":https://en.wikipedia.org/wiki/Samsung_Galaxy_Xcover_4* | ? | ? | ? | Exynos 7570 | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? |
147
| *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 | No modem | 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 |
148
| "SHIFTPHONE":https://www.shiftphones.com/en/ | SHIFT5me | ? | ? | ? | MT6797X Helio X27 | ? | ? | ? | ? | ? | ? | ? | ? |\2. "Modem in the same SOC":https://en.wikichip.org/wiki/mediatek/helio/mt6797x |
149 207 Denis 'GNUtoo' Carikli
| "SHIFTPHONE":https://www.shiftphones.com/en/ | SHIFT6m | ? | ? | ? | MT6797X Helio X27 | ? | ? | ? | ? | ? | ? | ? | ? |\2. "Modem in the same SOC":https://en.wikichip.org/wiki/mediatek/helio/mt6797x | 
150 206 Denis 'GNUtoo' Carikli
| "SHIFTPHONE":https://www.shiftphones.com/en/ | SHIFT6mq | ? | ? | ? | Qualcomm snapdragon 845 | ? | ? | ? | ? | ? | ? | ? | ? |\2. "Modem in the same SOC":https://en.wikipedia.org/wiki/List_of_Qualcomm_Snapdragon_systems-on-chip#Snapdragon_835_and_845_(2017/18) |
151
| "SHIFTPHONE":https://www.shiftphones.com/en/  | SHIFTmu | ? | ? | ? | Qualcomm snapdragon 865 | ? | ? | ? | ? | ? | ? | ? | ? |\2. "Modem in the same SOC":https://en.wikipedia.org/wiki/List_of_Qualcomm_Snapdragon_systems-on-chip#Snapdragon_865 |
152 1 Brian Kemp
| *Wiko* | *"Highway 4G":https://www.gsmarena.com/wiko_highway_4g-6795.php* | ? | ? | ? | Tegra | ? | ? | ? | ? | ? | ? | ? | ? | ? | TODO: Check if the bootloader is signed |
153 214 Denis 'GNUtoo' Carikli
154
fn1. It uses a nonfree libril (libxgold-ril.so) which doesn't have strings of samsung-ipc commands and instead it has strings like "+CRING:" which are typically used to parse unsolicited AT commands. So it should use AT commands.
155 147 Denis 'GNUtoo' Carikli
156 197 Denis 'GNUtoo' Carikli
h3. Non-android devices
157 3 Denis 'GNUtoo' Carikli
158 14 Denis 'GNUtoo' Carikli
|_. Device |_. Manufacturer |_. Android port |_. Bootloader |_. SoC |_. Standardness |_. Blobs |_. Firmwares |_. Modem |_. Notes |
159 201 Denis 'GNUtoo' Carikli
| *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:
160
* armv4t
161
* Only 128M of RAM |
162 202 Denis 'GNUtoo' Carikli
| *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 | * Has only 256M of RAM | 
163 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...  |
164
| *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. |
165 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 |
166 46 Denis 'GNUtoo' Carikli
167 1 Brian Kemp
168 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.