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, Google’s alternative location modules ‘Déjà vu’ & ‘Mozilla Location Service’ 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.
- 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.
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, NominatimNLPBackend
- 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.
You will find a technical documentation on iodéOS here: https://iode.tech/wp-content/uploads/2022/04/iodeOS.pdf
You can follow closely iodéOS development & novelties by beta testing with our wonderful community!
More information here: https://gitlab.com/iode/ota/-/tree/master/beta
Installation & Uninstallation
Device list
- Fairphone (3)
- Teracube (1)
- Samsung (10)
- Sony (4)
- Google (5)
- OnePlus (2)
- Xiaomi (4)
Installation
- Update the stock firmware to the latest
- Unlock your phone by following the instructions from Fairphone website
- adb reboot bootloader (or press VOLUME DOWN and plug phone while it’s shut down)
- fastboot oem unlock
- fastboot flash boot <recovery for FP3(+)>
- press POWER+VOLUME UP until reboot in recovery
- From recovery => Factory reset => Format Data/factory reset
- From recovery => Apply update => Apply from ADB => adb sideload <iodéOS for FP3(+)>
- Reboot to bootloader
- fastboot oem lock
- Boot, and in developer settings uncheck “OEM unlocking”
Uninstallation
Installation
- Update the stock firmware to the latest
- Unlock your phone by following the instructions from Fairphone website, but do not unlock critical partitions (do not execute ‘fastboot flashing unlock_critical’).
- adb reboot bootloader (or press VOLUME DOWN and plug phone while it’s shut down)
- fastboot flashing unlock
- fastboot flash recovery_a <recovery for FP4>
fastboot flash recovery_b <recovery for FP4> - In order to relock bootloader: fastboot flash avb_custom_key <avb_custom_key-FP4.bin>
- press POWER+VOLUME UP until reboot in recovery
- From recovery => Factory reset => Format Data/factory reset
- From recovery => Apply update => Apply from ADB => adb sideload <iodéOS for FP4>
- Reboot to bootloader 1 Execute ‘fastboot flashing get_unlock_ability’. It it returns ‘get_unlock_ability: 0’: do not try to relock the bootloader (steps below)
- If previous step returned ‘get_unlock_ability: 1’: fastboot flashing lock
- Boot, and in developer settings uncheck “OEM unlocking”
Uninstallation
Installation
- Update the stock firmware to the latest
- Unlock OEM in developer settings
- Reboot to bootloader
- fastboot flashing unlock
- fastboot flash recovery recovery for 2E
- Reboot to recovery
- From recovery => Factory reset => Format Data/factory reset
- From recovery => Apply update => Apply from ADB => adb sideload <rom.zip> iodéOS for 2E
Installation
- Update the stock firmware to the latest
- Unlock OEM in developer settings
- Reboot to bootloader
- fastboot flashing unlock
- fastboot flash recovery <recovery for 2E>
- Reboot to recovery
- From recovery => Factory reset => Format Data/factory reset
- From recovery => Apply update => Apply from ADB => adb sideload <iodéOS for 2E>
Installation
- Update the stock firmware to the latest
- Unlock OEM in developer settings
- Reboot and press power/vol-/home buttons altogether.
- Flash recovery for A5 | recovery for A7 with command:
heimdall flash --RECOVERY <recovery_filename>.img
- As soon as the flash ends, quickly press power/vol+/home buttons altogether to directly reboot to recovery
- From recovery => Factory reset => Format Data/factory reset
- From recovery => Advanced => ADB Sideload: swipe to start sideload, and issue:
adb sideload <rom.zip> (iodé for A5 | iodé for A7)
Uninstallation
- Backup your data
- Download the latest Samsung firmware
- Download & open Odin
- Drop the downloaded files in Odin
- Connect your phone in download mode to the computer
- Flash the firmware
Installation
- Update the stock firmware to the latest
- Unlock OEM in developer settings
- At reboot, follow the setup wizard, make sure to be connected to the internet, then activate developer options
- Activate adb and type: ‘adb reboot bootloader’, or press power/vol-/bixby buttons altogether.
- Flash lineageOS recovery for S9 or recovery for S9+ or recovery for Note9 with command:
heimdall flash --RECOVERY <recovery_filename>.img
- As soon as the flash ends, quickly press power/vol+/bixby buttons altogether to directly reboot to recovery
- From recovery => Factory reset => Format Data/factory reset
- From recovery => Apply update => Apply from ADB =>
adb sideload <rom.zip> (iodéOS for S9 | iodéOS for S9+ | iodéOS for Note9)
Uninstallation
- Backup your data
- Download the latest Samsung firmware
- Download & open Odin
- Drop the downloaded files in Odin
- Connect your phone in download mode to the computer
- Flash the firmware
Installation
- Update the stock firmware to the latest
- Unlock OEM in developer settings
- At reboot, follow the setup wizard, make sure to be connected to the internet, then activate developer options
- Activate adb and type: ‘adb reboot bootloader’, or press power/vol-/bixby buttons altogether.
- Flash lineageOS recovery for Note9 with command:
heimdall flash --RECOVERY <recovery_filename>.img
- As soon as the flash ends, quickly press power/vol+/bixby buttons altogether to directly reboot to recovery
- From recovery => Factory reset => Format Data/factory reset
- From recovery => Apply update => Apply from ADB =>
adb sideload <rom.zip> (iodéOS for Note9)
Uninstallation
- Backup your data
- Download the latest Samsung firmware
- Download & open Odin
- Drop the downloaded files in Odin
- Connect your phone in download mode to the computer
- Flash the firmware
Installation
- Update the stock firmware to the latest
- Unlock OEM in developer settings
- Activate adb and type: ‘adb reboot bootloader’, or shut down phone & press vol-/bixby buttons altogether while plugging to computer
- In Download Mode (DL), long press Vol+ and unlock bootloader
- Reboot to DL mode & flash recovery for S10 | recovery for S10e | recovery for S10+ with command:
heimdall flash --RECOVERY <recovery_filename>.img
- As soon as the flash ends, quickly press power/vol+/bixby buttons altogether to directly reboot to recovery
- From recovery => Factory reset => Format Data/factory reset
- From recovery => Apply update => Apply from ADB =>
adb sideload <rom.zip> (iodéOS for S10 | iodéOS for S10e | iodéOS for S10+)
Uninstallation
- Backup your data
- Download the latest Samsung firmware
- Download & open Odin
- Drop the downloaded files in Odin
- Connect your phone in download mode to the computer
- Flash the firmware
Installation
- Update the stock firmware to the latest
- Unlock OEM in developer settings
- Activate adb and type: ‘adb reboot bootloader’, or shut down phone & press vol+/vol- buttons altogether while plugging to computer
- In Download Mode (DL), long press Vol+ and unlock bootloader
- Reboot to DL mode & flash recovery for Note 10 | recovery for Note 10+ with command:
heimdall flash --RECOVERY <recovery_filename>.img
- As soon as the flash ends, quickly press power/vol+/bixby buttons altogether to directly reboot to recovery
- From recovery => Factory reset => Format Data/factory reset
- From recovery => Apply update => Apply from ADB =>
adb sideload <rom.zip> (iodéOS for Note 10 | iodéOS for Note 10+)
Uninstallation
- Backup your data
- Download the latest Samsung firmware
- Download & open Odin
- Drop the downloaded files in Odin
- Connect your phone in download mode to the computer
- Flash the firmware
Installation
- Get your unlock code from Sony website
- Unlock bootloader: connect to a wifi in order to grey-out “Unlock OEM” in developer settings
- adb reboot bootloader (or press VOLUME UP and plug phone while it’s shut down)
- fastboot oem unlock 0x<unlock code>
- fastboot flash boot_a recovery-pioneer.img
- fastboot flash boot_b recovery-pioneer.img
- Unplug the phone
- press POWER+VOLUME DOWN until reboot in TWRP
- From recovery => Factory reset => Format Data/factory reset
- From recovery => Apply update => Apply from ADB => adb sideload <rom.zip> iodéOS for XA2
Uninstallation
- Backup your data
- Download & open Sony Flash Tool
- Connect your phone in download mode
- Select the latest firmware of ‘Content Erase’ type
- Press ‘Apply Service’
Installation
- Get your unlock code from Sony website
- Unlock bootloader: connect to a wifi in order to grey-out “Unlock OEM” in developer settings
- adb reboot bootloader (or press VOLUME UP and plug phone while it’s shut down)
- fastboot oem unlock 0x<unlock code>
- fastboot flash recovery recovery-poplar.img
- Unplug the phone
- press POWER+VOLUME DOWN until reboot in TWRP
- From recovery => Factory reset => Format Data/factory reset
- From recovery => Apply update => Apply from ADB => adb sideload <rom.zip> iodéOS for XZ1
Uninstallation
- Backup your data
- Download & open Sony Flash Tool
- Connect your phone in download mode
- Select the latest firmware of ‘Content Erase’ type
- Press ‘Apply Service’
Installation
- Get your unlock code from Sony website
- Unlock bootloader: connect to a wifi in order to grey-out “Unlock OEM” in developer settings
- adb reboot bootloader (or press VOLUME UP and plug phone while it’s shut down)
- fastboot oem unlock 0x<unlock code>
- fastboot flash boot_a recovery.img
- fastboot flash boot_b recovery.img
- Unplug the phone
- press POWER+VOLUME DOWN until reboot in TWRP
- From recovery => Factory reset => Format Data/factory reset
- From recovery => Apply update => Apply from ADB => adb sideload <rom.zip> iodéOS for XZ2
Uninstallation
- Backup your data
- Download & open Sony Flash Tool
- Connect your phone in download mode
- Select the latest firmware of ‘Content Erase’ type
- Press ‘Apply Service’
Installation
- Get your unlock code from Sony website
- Unlock bootloader: connect to a wifi in order to grey-out “Unlock OEM” in developer settings
- adb reboot bootloader (or press VOLUME UP and plug phone while it’s shut down)
- fastboot oem unlock 0x<unlock code>
- fastboot flash boot_a recovery-akatsuki.img
- fastboot flash boot_b recovery-akatsuki.img
- Unplug the phone
- press POWER+VOLUME DOWN until reboot in recovery
- From recovery => Factory reset => Format Data
- From recovery => Apply update => Apply from ADB => adb sideload <rom.zip> iodéOS for XZ3
Uninstallation
- Backup your data
- Download & open Sony Flash Tool
- Connect your phone in download mode
- Select the latest firmware of ‘Content Erase’ type
- Press ‘Apply Service’
Installation
- Unlock OEM in developer settings
- Reboot to bootloader (or press power + VOLUME DOWN)
- fastboot flashing unlock
- Download fastboot package for your device (latest file iode-[…]-fastboot.zip):
- Unzip fastboot package and execute flash-all.sh (linux) or flash-all.bat (windows)
- At the end, accept or decline bootloader relocking; if yes, boot, and in developer settings uncheck “OEM unlocking”
Installation
- Unlock OEM in developer settings
- Reboot to bootloader (or press power + VOLUME DOWN)
- fastboot flashing unlock
- Download fastboot package for your device (latest file iode-[…]-fastboot.zip):
- Unzip fastboot package and execute flash-all.sh (linux) or flash-all.bat (windows)
- At the end, accept or decline bootloader relocking; if yes, boot, and in developer settings uncheck “OEM unlocking”
Installation
- Unlock OEM in developer settings
- Reboot to bootloader (or press power + VOLUME DOWN)
- fastboot flashing unlock
- Download fastboot package for your device (latest file iode-[…]-fastboot.zip):
- Unzip fastboot package and execute flash-all.sh (linux) or flash-all.bat (windows)
- At the end, accept or decline bootloader relocking; if yes, boot, and in developer settings uncheck “OEM unlocking”
Installation
- Unlock OEM in developer settings
- Reboot to bootloader (or press power + VOLUME DOWN)
- fastboot flashing unlock
- Download fastboot package for your device (latest file iode-[…]-fastboot.zip):
- Unzip fastboot package and execute flash-all.sh (linux) or flash-all.bat (windows)
- At the end, accept or decline bootloader relocking; if yes, boot, and in developer settings uncheck “OEM unlocking”
Installation
- Unlock OEM in developer settings
- Reboot to bootloader (or press power + VOLUME DOWN)
- fastboot flashing unlock
- Download fastboot package for your device (latest file iode-[…]-fastboot.zip):
- Unzip fastboot package and execute flash-all.sh (linux) or flash-all.bat (windows)
- At the end, accept or decline bootloader relocking; if yes, boot, and in developer settings uncheck “OEM unlocking”
Installation
- Update the stock firmware to the latest
- Unlock OEM in developer settings
- Reboot to bootloader (or press power + VOLUME DOWN)
- fastboot flashing unlock
- fastboot flash vendor_boot <recovery for OnePlus 9>
- fastboot flash dtbo <dtbo for OnePlus 9 >
- fastboot flash boot <boot for OnePlus 9>
- Reboot to recovery
- From recovery => Factory reset => Format Data/factory reset
- From recovery => Apply update => Apply from ADB => adb sideload <iodéOS for OnePlus 9>
Installation
- Update the stock firmware to the latest
- Unlock OEM in developer settings
- Reboot to bootloader (or press power + VOLUME DOWN)
- fastboot flashing unlock
- fastboot flash vendor_boot <recovery for OnePlus 9 Pro>
- fastboot flash dtbo <dtbo for OnePlus 9 pro>
- fastboot flash boot <boot for OnePlus 9 pro>
- Reboot to recovery
- From recovery => Factory reset => Format Data/factory reset
- From recovery => Apply update => Apply from ADB => adb sideload <iodéOS for OnePlus 9 pro>
Installation
- Update the stock firmware to the latest
- Unlock your phone by following the instructions from Xiaomi website
- adb reboot bootloader (or press power+VOLUME DOWN)
- fastboot flash recovery iodé mi9 recovery image | iodé Mi 10 LITE recovery image | iodé Mi10T (pro) recovery image
- Press POWER+VOLUME UP until reboot in recovery
- From recovery => Factory reset => Format Data/factory reset
- From recovery => Apply update => Apply from ADB => adb sideload <rom.zip> (iodéOS for Mi 9 | iodéOS for Mi 10 lite | iodéOS for Mi 10T (pro) zip ROM )
- Mi 9 zip ROM here | Mi 10 lite zip ROM here | Mi 10T (pro) zip ROM here)