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 |