Project

General

Profile

DeprecatedPortingToAndroid10 » History » Version 57

Denis 'GNUtoo' Carikli, 03/28/2019 02:21 PM

1 1 Denis 'GNUtoo' Carikli
h1. Porting Replicant to Android 9
2
3 47 Denis 'GNUtoo' Carikli
h2. Status
4 46 Denis 'GNUtoo' Carikli
5 49 Denis 'GNUtoo' Carikli
* The Galaxy SIII 4G (i9305) boots (with graphics hacks) under AOSP9, without having to import nonfree libraries. Not much has been validated beside that.
6
* The kernel used is based on Linux 5.0-rc6 and has ~150 Android specific patches on top and some patches for the Galaxy SIII 4G (i9305) on top
7 1 Denis 'GNUtoo' Carikli
8 46 Denis 'GNUtoo' Carikli
h2. Repositories and changes
9
 
10
* git://git.putti.eu/aosp/manifest_i9305.git
11
* git://git.putti.eu/aosp/kernel_i9305.git
12
* git://git.putti.eu/aosp/device_i9305.git
13 1 Denis 'GNUtoo' Carikli
14 50 Denis 'GNUtoo' Carikli
h2. Building
15 1 Denis 'GNUtoo' Carikli
16 46 Denis 'GNUtoo' Carikli
First get the source code:
17
<pre>
18
$ repo init -u git://git.putti.eu/aosp/manifest_i9305.git -b android-9.0.0
19
</pre>
20
21 45 Denis 'GNUtoo' Carikli
For Trisquel8 (WIP):
22
<pre>
23
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip bc python-mako
24
</pre>
25
26 48 Denis 'GNUtoo' Carikli
Then see the device/putti/i9305/README.md for the build instructions.
27
28 45 Denis 'GNUtoo' Carikli
h2. TODO
29 38 Denis 'GNUtoo' Carikli
30 51 Denis 'GNUtoo' Carikli
|_. Task |_. Time estimation |_. Comments |
31
| -Boot a device under AOSP9- | DONE | Only boots with graphics, not much more |
32
| Build it under a "FSDG compliant distribution":https://www.gnu.org/distros/free-distros.html like Trisquel8 | 8h | It's difficult to do precise time estimations as it could work out of the box or require one full time month of work depending on how much issues are encountered |
33 57 Denis 'GNUtoo' Carikli
| * port the changes from AOSP9 to LineageOS 16
34
* cleanup the code
35
* build the kernel from the Android build system | 8h | |
36 56 Denis 'GNUtoo' Carikli
| Find and remove proprietary software in LineageOS 16 | 8h | |
37 1 Denis 'GNUtoo' Carikli
| Find and remove privacy issues in LineageOS 16 | 24h | |
38
| Port the sensors libraries and other device specific libraries | | |
39 57 Denis 'GNUtoo' Carikli
| Add support for Audio | | |
40 1 Denis 'GNUtoo' Carikli
| Add support for the i9300 and factorize the code with i9305 | 8h | |
41 57 Denis 'GNUtoo' Carikli
| port the touch keys, and flash led linux drivers | | |
42 51 Denis 'GNUtoo' Carikli
| Port libsamsung-ipc and libsamsung-ril to Android 9| | |
43 57 Denis 'GNUtoo' Carikli
| * port and cleanup the the i9300 "modem":https://github.com/fourkbomb/linux/tree/modem linux driver from 4.16 to 5.0
44
* Make the modem driver and libsamsung-ipc work together  | 70h | |
45
| add internal WiFi support and validate the functionality | 6h | |
46
| Add external WiFi dongles suppor | 20h | External dongles support might be tricky |
47
| document how much mA the device's USB host can give and in which conditions | | Needed to make external WiFi reliable (it's not in Replicant 6.0) | 
48 51 Denis 'GNUtoo' Carikli
| Rebrand LineageOS as Replicant | | |
49
| Create a recovery | | |
50
| Create install and upgrade instructions | | |
51
| Reduce the attack surface | | |
52
| Add in-system upgrades | |
53
54
Add support for smartphones that were supported in Replicant 4.2 and 6.0 if they meet the [[HardwareRequirements]]:
55 52 Denis 'GNUtoo' Carikli
|_. Device |_. Time estimation |_. Comments |
56 54 Denis 'GNUtoo' Carikli
| Galaxy Note II (N7100) | |/2. Similar to the Galaxy SIII (I9300) | 
57
| Galaxy Note 8.0 (N5100) and 8.0 WiFi (N5110)| |
58
| Galaxy S II (i9100) | | linux: devboard dts upstream? unknown status |
59
| Galaxy Note (N7000) | | unknown linux upstream status |
60
| Galaxy Nexus (I9250) | |/2. OMAP4, no dts upsrteam |
61
| Galaxy Tab 2 7.0 (P3100), 7.0 WiFi (P3110), 10.1 (P5100), 10.1 WiFi (P5110) | |
62
| GTA04 >= A4 | | TODO: a RIL needs to be written, userspace GPS support is missing, audio scenarios, etc |
63 34 Denis 'GNUtoo' Carikli
64
h2. Replicant 6.0 changes
65 2 Denis 'GNUtoo' Carikli
66 4 Denis 'GNUtoo' Carikli
|_. Repository path |_. rebase worked |_. Changes |
67 22 Denis 'GNUtoo' Carikli
| build | No | |
68 1 Denis 'GNUtoo' Carikli
| manifest | No | N/A |
69 32 Denis 'GNUtoo' Carikli
| bootable/recovery | Yes | * UI changes to improve usability 
70 5 Denis 'GNUtoo' Carikli
* Branding
71 31 Denis 'GNUtoo' Carikli
* Small fix(es) | 
72 4 Denis 'GNUtoo' Carikli
| external/boringssl | Yes | * Small fix(es) |
73
| external/heimdall | No | |
74
| frameworks/av | Yes | * Software rendering fix(es) |
75
| frameworks/base | Yes | * WiFi fixe(s) for external dongles
76
* Software rendering fix(es) 
77
* Privacy fix(es) 
78 1 Denis 'GNUtoo' Carikli
* Security improvements 
79 5 Denis 'GNUtoo' Carikli
* Usability improvements |
80
| frameworks/native | No |
81
| hardware/broadcom/wlan | Yes | * Remove nonfree software |
82 10 Denis 'GNUtoo' Carikli
| hardware/libhardware | Yes | * Software rendering fix(es) |
83 5 Denis 'GNUtoo' Carikli
| hardware/libhardware_legacy | Yes | * Don't depend on nonfree software |
84
| hardware/ti/omap4 | Yes | * Remove nonfree software 
85 33 Denis 'GNUtoo' Carikli
* Don't depend on nonfree software 
86
* Small fix(es) |
87 6 Denis 'GNUtoo' Carikli
| libcore | Yes | * Small fix(es) | 
88 8 Denis 'GNUtoo' Carikli
| packages/apps/Browser | Yes | * Privacy fix(es) 
89 33 Denis 'GNUtoo' Carikli
* Branding
90 7 Denis 'GNUtoo' Carikli
* Small fix(es) |
91 33 Denis 'GNUtoo' Carikli
| packages/apps/LegacyCamera | Yes | * Software rendering fix(es)
92 22 Denis 'GNUtoo' Carikli
* Small fix(es) |
93
| packages/apps/RepWifi | Not upstreamed, obsolete | N/A |
94 11 Denis 'GNUtoo' Carikli
| packages/apps/ReplicantWallpapers | Not upstreamed | * Branding |
95
| packages/apps/Settings | No | |
96
| packages/apps/SetupWizard | Yes | * Privacy fix(es) 
97
* Don't depend on nonfree software
98 12 Denis 'GNUtoo' Carikli
* Branding |
99
| packages/apps/ThemeChooser | Yes | * Privacy fix(es) ?
100 33 Denis 'GNUtoo' Carikli
* Don't depend on nonfree software ? |
101 13 Denis 'GNUtoo' Carikli
| packages/providers/ContactsProvider | Yes | * Small fix(es) |
102
| system/core | Yes | * Branding
103
* various fixes |
104
| vendor/replicant | No | |
105 14 Denis 'GNUtoo' Carikli
| vendor/cmsdk | Yes | * Branding |
106
| external/chromium-webview | ? | ? |
107
| external/drm_gralloc | Yes | * Software rendering fix(es) |
108
| external/llvm | Yes | * Software rendering fix(es) |
109
| external/mesa3d |  Yes | * Software rendering fix(es)
110 33 Denis 'GNUtoo' Carikli
* Performance debugging for software rendering |
111 14 Denis 'GNUtoo' Carikli
| external/parameter-framework | Yes | * Small fix(es) |
112
| external/protobuf | N/A | No changes |
113
| prebuilts/ndk | ? | ? |
114 33 Denis 'GNUtoo' Carikli
| prebuilts/sdk | ? | ? |
115
| sdk | Yes | * Small fix(es) |
116 14 Denis 'GNUtoo' Carikli
| toolchain/src/binutils | Yes | * Small fix(es) |
117 33 Denis 'GNUtoo' Carikli
| toolchain/src/gcc | No | |
118
| toolchain/src/jack | Yes | * Small fix(es) |
119 22 Denis 'GNUtoo' Carikli
| toolchain/src/jill | Yes | * Small fix(es) |
120 1 Denis 'GNUtoo' Carikli
| kernel/samsung/smdk4412 |/3. Yes |/3. * Security fixes
121
* Privacy Fixes (TrustZone)
122 20 Denis 'GNUtoo' Carikli
* Don't depend on nonfree software
123 33 Denis 'GNUtoo' Carikli
* Remove nonfree software
124 22 Denis 'GNUtoo' Carikli
* Small fix(es) |
125
| kernel/samsung/tuna |
126 28 Denis 'GNUtoo' Carikli
| kernel/samsung/espresso10 |
127
| device/samsung/i9100 | No |/14. * Replace nonfree software by free software
128
* free software sensors implementation(s)
129 25 Denis 'GNUtoo' Carikli
* free software modem audio implementation(s)
130 29 Denis 'GNUtoo' Carikli
* Software rendering fix(es)
131
* Privacy Fixes (TrustZone)
132
* Don't depend on nonfree software
133 1 Denis 'GNUtoo' Carikli
* Remove nonfree software
134 33 Denis 'GNUtoo' Carikli
* Branding
135 1 Denis 'GNUtoo' Carikli
* Small fix(es) |
136
| device/samsung/n7000 | Yes |
137
| device/samsung/i9300 | No |
138
| device/samsung/i9305 | No |
139 29 Denis 'GNUtoo' Carikli
| device/samsung/n7100 | Yes |
140
| device/samsung/n5100 | Yes |
141
| device/samsung/n5110 | Yes |
142
| device/samsung/maguro | Yes |
143 30 Denis 'GNUtoo' Carikli
| device/samsung/tuna | Yes |
144
| device/samsung/espressowifi | Yes |
145
| device/samsung/espresso3g | Yes |
146
| device/samsung/galaxys2-common | Yes |
147
| device/samsung/smdk4412-common | No |
148 22 Denis 'GNUtoo' Carikli
| device/samsung/kona-common | Yes |
149
| hardware/ril/samsung-ril | Not upstreamed | N/A |
150 23 Denis 'GNUtoo' Carikli
| external/libsamsung-ipc | Not upstreamed | N/A |
151 40 Denis 'GNUtoo' Carikli
| hardware/tinyalsa-audio | Not upstreamed? | N/A |
152
153
h2. Links 
154
155 1 Denis 'GNUtoo' Carikli
* https://source.android.com/setup/build/requirements