Project

General

Profile

AndroidDistributions » History » Version 1

Denis 'GNUtoo' Carikli, 11/26/2022 04:32 PM
Moved from [[Upstream]]

1 1 Denis 'GNUtoo' Carikli
h1. Android distributions
2
3
h2. Anbox
4
5
*Manifest*: https://github.com/anbox/platform_manifests/blob/anbox/default.xml
6
*Android base*: 7.1.1_r13
7
*Based on*: AOSP
8
9
Goals:
10
11
 * Run Android (applications) in containers on top of GNU/Linux
12
13
Extra repositories (overridden or added):
14
15
| path                       | URL                                                           | Comments |
16
| art                        | https://github.com/anbox/platform_art                         |          |
17
| bionic                     | https://github.com/anbox/platform_bionic                      |          |
18
| frameworks/av              | https://github.com/anbox/platform_frameworks_av               |          |
19
| frameworks/base            | https://github.com/anbox/platform_frameworks_base             |          |
20
| frameworks/native          | https://github.com/anbox/platform_frameworks_native           |          |
21
| frameworks/opt/net/wifi    | https://github.com/anbox/platform_frameworks_opt_net_wifi     |          |
22
| hardware/libhardware       | https://github.com/anbox/platform_hardware_libhardware        |          |
23
| hardware/libhardware_legacy| https://github.com/anbox/platform_hardware_libhardware_legacy |          |
24
| system/core                | https://github.com/anbox/platform_system_core                 |          |
25
| system/netd                | https://github.com/anbox/platform_system_netd                 |          |
26
| system/vold                | https://github.com/anbox/platform_system_vold                 |          |
27
| vendor/anbox               | https://github.com/anbox/anbox                                |          |
28
29
h2. Android x86
30
31
At the time of writing, the most recent images are RC images for Android 9, but there are branches for Android 10.
32
33
As they use (mostly?) upstream kernels, they sometimes have interesting code.
34
35
*Source code*: https://git.osdn.net/view?a=project_list;pf=android-x86
36
*Manifest*: git://git.osdn.net/gitroot/android-x86/manifest.git
37
38
Branches[1]: 
39
40
| Branch | Android version |
41
| q-x86 | 10.0 |
42
| pie-x86 | 9.0 |
43
| oreo-x86 | 8.1 |
44
| nougat-x86 | 7.1 |
45
| marshmallow-x86 | 6.0 |
46
| lollipop-x86 | 5.1 |
47
| kitkat-x86 | 4.4 |
48
| jb-x86 | 4.3 |
49
| ics-x86 | 4.0 |
50
| honeycomb-x86 | 3.2 |
51
| gingerbread-x86 | 2.3 |
52
| froyo-x86 | 2.2 |
53
| eclair-x86 | 2.1 |
54
| donut-x86 | 1.6 |
55
| cupcake-x86 | 1.5 |
56
 
57
fn1. https://www.android-x86.org/source.html
58
59
h2. AOSP
60
61
AOSP doesn't support many devices, but it seem to support some devboards. 
62
63
The advantage is that in general devboards are well supported by upstream kernels.
64
65
Supported devboards[1]?:
66
| Devboard | Freedom issues | Comments |
67
| Beagleboard-X15 | No free GPU driver | Well supported by GNU/Linux, free bootloader |
68
| Cuttlefish emulator | ? | ? |
69
| Other | ? | ? |
70
71
The official documentation also "mentions some devboards":https://source.android.com/setup/build/devices .
72
73
fn1. Some of the devboards in this page are probably supported: https://wiki.linaro.org/AOSP#AOSP_Dev_Board_Reference_Information
74
75
h2. CustomROMs
76
77
CustomROMs seem to be a space for unofficial port of LineageOS. The idea is probably to develop the port until they manage to meet LineageOS's "device-support-requirements.md":https://github.com/LineageOS/charter/blob/master/device-support-requirements.md . When the requirements are met, they are probably included in LineageOS directly.
78
79
Interesting ports:
80
* The Galaxy SIII (GT-I9300) is being ported to more recent LineageOS versions. There is "a thread on the collaboration with Replicant":https://github.com/CustomROMs/android_local_manifests_i9300/issues/1 in github. The person/people doing the port seem to alternate between an upstream kernel and a older kernel based on the vendor code depending on the amount of work required to finish the port and/or the difficulties encountered. As we are also using a kernel based on upstream Linux we collaborate on that part by reusing each other work when applicable.
81
82
h2. DivestOS Mobile
83
84
This distribution is based on LineageOS. While they seem to reuse nonfree software to make the hardware work, they spent some time cleaning up LineageOS code itself.
85
86
For instance it contains patches to remove privacy issues and nonfree software included in CyanogenMod or LineageOS.
87
88
As we need to do that too in Replicant as long as we use LineageOS as base, it would be interesting to collaborate more with DivestOS on that part.
89
90
Web site:
91
*https*: https://divestos.org/
92
*Onion*: http://6sdlxbqgcxdbkvysoir2qvqqs5ro3fxgyl3phvuphcdyklv7rg57jhid.onion
93
94
h2. Fairphone
95
96
As October 2020, they are porting the Fairphone 2 to Android 9. However to do that, they are using 3.4 kernel and not any upstream kernels.
97
98
In addition, they don't seem very interested in free software bootloaders, and the Fairphone 1 and 2 use Qualcomm System On a Chip.
99
100
However they are probably interested in free software libraries to make the port to newer Android versions easier.
101
102
h2. LineageOS
103
104
See "device-support-requirements.md":https://github.com/LineageOS/charter/blob/master/device-support-requirements.md for more information on LineageOS expectations.
105
106
Replicant has "a script":https://git.replicant.us/replicant/vendor_replicant-scripts/tree/research that is able to parse the "LineageOS wiki data":https://github.com/LineageOS/lineage_wiki . That can be useful to find information on devices supported by LineageOS.
107
108
The "devices supported by LineageOS 16":https://wiki.lineageos.org/devices/ have either:
109
* A Qualcomm SOC with an integrated modem inside (MSM*) for many devices
110
* A Qualcomm SOC without a modem inside (APQ*) for many devices
111
* A HiSilicon Kirin 970 SOCs for devices like:
112
** The "Huawei Honor View 10":https://wiki.lineageos.org/devices/berkeley
113
** The "Huawei P20 Pro":https://wiki.lineageos.org/devices/charlotte
114
* A Samsung Exynos 7580 SOC for the following device
115
** "Galaxy S5 Neo":https://wiki.lineageos.org/devices/s5neolte (Smartphone): It has shared memory between the modem and the SOC
116
117
It may be because they rely on nonfree software to support devices, which has not been ported to Android 9, or may be because they need more time to add devices with other SOCs like exynos.
118
119
h2. Waydroid
120
121
Waydroid consist in some host tool that can containerize an Android distribution, and some changes on top of LineageOS.
122
123
Some repositories would only be useful if we decide to integrate Waydroid in Replicant to have some FSDG compliant way to run Android applications on top of GNU/Linux:
124
* The audio library does something like that: @snd_pcm_open(&out->pcm, "pulse", SND_PCM_STREAM_PLAYBACK, 0);@ [1], so if I understood right, it uses Pulseaudio's alsa compatbility layer.
125
* For the graphics, some repositories like mesa, minigbm are replaced by Waydroid's own repositories. It also integrates boringdroid APK as-is instead of building it from source. Boringdroid brings moving windows to Android instead of the default full-screen windows.
126
127
There is some interest in Guix about having something like that as a "patch serie":https://issues.guix.gnu.org/51737#22 was sent for adding the Waydroid host part in Guix.
128
129
What would be more interesting for Replicant as-is that in android_hardware_waydroid[2], there is libraries that work with upstream kernels like the vibrator library. We also have our own vibrator library but it would probably be a good idea to share the maintenance somehow.
130
131
fn1. https://github.com/waydroid/android_hardware_waydroid/blob/lineage-18.1/audio/audio_hw.c
132
133
fn2. https://github.com/waydroid/android_hardware_waydroid
134
135
h2. Building a collaboration with other Android distributions
136
137
Given that:
138
* Replicant doesn't want to support devices that have more freedom issues than the ones currently supported.
139
* Many other Android distributions probably don't have the same goals with the freedom of the devices they support.
140
* Replicant 9 is based on upstream Linux and will have to maintain its userspace libraries.
141
* Some users may still want to support devices that have more freedom issues than the ones supported by Replicant.
142
143
It could be a good idea to share the maintenance of the code used to make Replicant 9 with other distributions.