[Samsung Galaxy S9 & S9+ Cross Device Development] vince31fr:
Introduction

iodéOS is a privacy-focused operating system powered by LineageOS and based on the Android mobile platform. iodéOS aims at protecting the user's privacy with a built-in adblocker and by freeing the smartphone from snitches.

The objectives in the conception of this ROM are threefold:

To keep the stability and security level of LineageOS, by minimizing the modifications made to the system. Apart the system modifications required by the adblocker, we mainly only added a few useful options commonly found in other custom ROMs, made some cosmetic changes, modified a few default settings to prevent data leaks to Google servers.

To ease a quick adoption of this ROM by new users. We especially target users that are concerned by the protection of their privacy, but are not reluctant to still use inquisitive apps like Google ones. We thus included MicroG as well as a coherent set of default apps, and simplified the initial setup of the system. Particularly, an initialization of MicroG has been made with GCM notifications allowed by default, a privacy-friendly network location provider (DéjàVu) pre-selected, as well as Nominatim Geocoder.

To provide a new and powerful way of blocking ads, malwares, data leaks of all kinds to many intrusive servers. We are developing an analyzer, tightly integrated into the system, that captures all DNS requests and network traffic, as well as a user interface (the iodé app). Compared to some other well-known adblockers, this has the advantages of:

Avoiding to lock the VPN for that use. You can even use another adblocker that uses VPN technology alongside our blocker.

Being independent of the kind of DNS server used by the system or set by an independent app: classical DNS on UDP port 53 or any other one, DNS over TLS (DoT), DNS over HTTPS (DoH), ..., as we capture the DNS requests before they are transmitted to the system function that emits the DNS request. What we do not support, is DoH when it is natively built into applications, i.e. when an app communicates directly with a DoH server, without asking name resolution to the system. It would require to decrypt HTTPS packets between such an app and the DoH server, which may create a big security hole.

Precisely mapping DNS requests and network packets to the Android apps that emitted (or received) them.

Deciding which apps have a filtered network usage (by default, all apps), and which ones can communicate with blacklisted servers.

Since its first versions, we added many features to the iodé blocker: several levels of protection, fine-grained control over the hosts that should be blocked or authorized, displaying statistics on a map to see the quantity of data exchanged to which countries, clearing statistics... We are actively developing the blocker, and new functionalities will be regularly added.

Features

Changes in LineageOS to prevent data leaks:

Default DNS server: Google's DNS replaced by Quad9's 'unblocked' servers in all parts of the system.

A-GPS: patches to avoid leaking personnal information like IMSI to supl server.

Captive portal login: connectivitycheck.gstatic.com replaced by captiveportal.kuketz.de for connectivity check.

Dialer: Google default option replaced by OpenStreetMap for phone number lookup.

Pre-installed apps:

We included many useful default apps, but our choice cannot suit everyone; so we added the possibility to remove them. It can be done at the end of the phone setup, or at any time by going to Parameters -> Apps & Notifications -> Preinstalled apps.

MicroG core apps: GmsCore, GsfProxy, FakeStore.

NLP backends for MicroG : DejaVuNLPBackend (default), MozillaNLPBackend, AppleNLPBackend, RadioCellsNLPBackend, Nominatim Geocoder.

App stores : FDroid (with F-Droid Privileged Extension) and Aurora Store.

Browser: our own fork of Firefox (with Qwant as default search engine, many other ones added, telemetry disabled, parts of telemetry code removed) instead of Lineage’s default browser Jelly.

SMS: QKSMS instead of Lineage's default SMS app.

Email: p≡p (Pretty Easy Privacy).

Camera: our own fork of Open Camera, with a few tweaks.

Maps/navigation: Magic Earth GPS & Navigation (the only one free but not open source).

Keyboard: OpenBoard instead of AOSP keyboard.

PDF: Pdf Viewer Plus.

Personnal notes: Carnet.

{Ad/Malware/Data leak}-blocker: iodé.

News: to keep users informed about our developments, as well as a FAQ.

Meteo: Geometric Weather.

Pre-included FDroid repository:

The apps that we tweak or develop (microG services, the browser based on Firefox, the News app, Open Camera ...) are available through a repository that we included in FDroid (check the "Apps for iodéOS" category). For this purpose and to avoid name conflicts of some apps, we also had to make a few changes in FDroid.

Useful options from other custom ROMs:

Smart charging (disables charging when a given level is reached, to protect battery health).

Fingerprint vibration toggle.

Swipe down to clear all in recent apps (Android 10 only).

Installation Instructions

To download and flash our latest build, see https://gitlab.com/iode/ota.

You can also find here direct links to the latest builds.

Supported devices

Fairphone FP3/FP3+

Fairphone FP4

Google Pixel 3

Google Pixel 4

Google Pixel 5

Google Pixel 6

Google Pixel 6a

Google Pixel 6 Pro

OnePlus 9

OnePlus 9 Pro

Samsung Galaxy A5/A7 2017 (a5j17lte/a7j17lte)

Samsung Galaxy S9/S9+ (starlte/star2lte)

Samsung Galaxy Note 9 (crownlte)

Samsung Galaxy S10e/S10/S10+ (beyond{0,1,2}lte)

Samsung Galaxy Note 10 (d1)

Samsung Galaxy Note 10+/5G (d2s, d2x)

Samsung Galaxy A52s 5G (a52sxq)

Sony Xperia XA2 (pioneer)

Sony Xperia XZ1 (poplar)

Sony Xperia XZ2 (akari)

Sony Xperia XZ3 (akatsuki)

Xiaomi Mi9 (cepheus)

Teracube 2e

Xiaomi Mi 10T 5G / Mi 10T Pro 5G

Xiaomi Mi 10 Lite 5G

SHIFT SHIFT6mq

Sources

iodéOS: https://gitlab.com/iode/os

LineageOS: https://github.com/lineageos

device tree:

https://gitlab.com/iode/os/public/devices/samsung/device_samsung_starlte

https://gitlab.com/iode/os/public/devices/samsung/device_samsung_star2lte

https://gitlab.com/iode/os/public/devices/samsung/device_samsung_universal9810-common

kernel:

(iodéOS 1.x) https://github.com/LineageOS/android_kernel_samsung_universal9810

(iodéOS 2.x) https://github.com/synt4x93/android_kernel_samsung_universal9810

(iodéOS 3.x) https://github.com/universal9810/android_kernel_samsung_exynos9810

Bug Reporting

You can post a message in this thread or (preferred) open an issue here.

Credits

LineageOS is a free, community built, aftermarket firmware distribution of android, which is designed to increase performance and reliability over stock android for your device.

All the source code for LineageOS is available in the LineageOS Github repo. If you would like to contribute to LineageOS, please visit their Wiki for more details.

This ROM would be nothing without the tremendous work made on MicroG, and all the other open source apps that we included. We are very grateful to their authors.

Contributors

Direct contributors: @iodeOS, @vince31fr

Indirect contributors (too numerous to list): All the people that contributed to the device tree, to LineageOS, and to the included open source apps.

Sponsoring

You can help in the development of this ROM by paying us a coffee here: https://paypal.me/iodeOS.

Screenshots