iodéOS-3.5 official (starlte 31/1/2023 build) Debloat : OK (it boots & just works, as long as you don't expect it to do telephony stuff and/or use bluetooth and/or nfc crap) Last updated : 31/7/2024 Changelog : 2/8/2024 - Initial creation Pre-debloat (i dunno, probably better than letting system consume too much resource for nonexistent tasks?) - updater : Settings > System > Updater > 3-dot menu > Preferences - set autoupdate check to never, disable mobile data warning - cell broadcast (optional) : Settings > Notifications / Safety & emergency > Wireless Emergency alerts - disable everything - Emergency SOS (optional) : Settings > Safety & Emergency > Emergency SOS - untoggle "Use Emergency SOS" - microG : Disable all location modules. Or clear microG's user data if you forgot to do so, otherwise it'll force-close when you try to manually disable them after replacing microG. - iodé blocker : Open app & tap on the cyan power logo to disable it. - Preinstalled app (requires iodé app) : ...just leave it alone; I set it to Calculator, Calendar, Clock & I had to re-enable Gallery & OpenCamera anyway as iodé hid them when I "uninstalled" them previously (as AOSP gallery & iodé's own OpenCamera respectively) & subsequently replaced them with my alternatives. Besides, I'm uninstalling iodé; so I won't be able to "reinstall" everything else if I uninstalled it afterwards (and Settings will error out when pressing "Settings > Preinstalled apps". /system/apex com.android.cellbroadcast com.android.neuralnetworks /system/app BasicDreams Bluetooth BluetoothMidiService CarrierDefaultApp CtsShimPrebuilt LiveWallpapersPicker NfcNci PrintRecommendationService PrintSpooler SimAppDialog Stk wallpaperBackup /system/priv-app BlockedNumberProvider BuiltInPrintService CalendarProvider (optional, required for Etar) CallLogBackup CellBroadcastLegacyApp ContactsProvider CtsShimPrivPrebuilt DocumentsUI > DivestOS' DocumentsUI (I hate Downloads at opening; considered optional) ManagedProvisioning MmsService Tag Telecom TelephonyProvider TeleService /system/etc microg.xml (optional) /system/system_ext/app Profiles SamsungDAP (as in these are the only folders staying in /system_ext/app) /system/system_ext/priv-app AudioFX (optional, as it can be used to change up sounds unlike ArrowOS' MusicFX which doesn't seem to do anything) CarrierConfig EmergencyInfo FlipFlap (optional, for flip cover) LineageSetupWizard QuickAccessWallet Seedvault Updater /system/product/app (reuse any unused folder for Simple Keyboard) AppleNlpBackend Carnet DejaVuNlpBackend Etar > Fossify Calendar (optional, or required only if CalendarProvider is deleted) F-Droid Gallery2 > Fossify Gallery GeometricWeather GsfProxy (optional) Iode IodeBrowser LocalNlpBackend MagicEarth MozillaNlpBackend News NominatimNlpBackend OpenCamera (iode) > OpenCamera (F-Droid upstream) (optional) PdfViewerPlus PEP PhotoTable QKSMS /system/product/priv-app AuroraStore Contacts Dialer Eleven FDroidPrivilegedExtension FakeStore (optional) GmsCore (optional) ImsServiceEntitlement OpenBoard (replacedd with Simple Keyboard (rkkr) in /system/product/app) /vendor there's none here for now - vendor's clean-ish Setup QS : Flashlight, Caffeine, Auto-rotate, Wi-fi, Mic access, Camera access adb shell commands (scuffed edition) : settings put global captive_portal_http_url (insert http url of decent captive portal provider that's not /e/ or Go-ogle) settings put global captive_portal_https_url (insert https url of decent captive portal provider that's not /e/ or Go-ogle) settings put global captive_portal_fallback_url (insert fallback url of decent captive portal provider that's not /e/ or Go-ogle) settings put global captive_portal_other_fallback_urls (insert "other_fallback_urls" url of decent captive portal provider that's not /e/ or Go-ogle) settings put global ntp_server about:blank (or replace about:blank with any decent ntp server, such as pool.ntp.org if you need network time) settings put secure show_rotation_suggestions 0 Additional notes : - TWRP can't decrypt internal storage, so get an external storage if you really need to flash stuff there (and you can't copy/paste stuff into /Android without root & root-compatible file manager, which will suck especially if you're playing PS2 emulation on the S9 & your memory card is a folder instead of a file). iodé recommends wiping data through its own recovery instead of TWRP, but official TWRP 3.7.0_9-0 works in my case. Sure, this won't apply if you flashed some force encryption disabler, but then any cycrim's one TWRP away from your unencrypted internal storage & its sweet innards. - TWRP can't mount /preload, but that can be wiped out without any side effects. /odm has some bloat in its /app & /priv-app, but none of them are loaded into the system so delete them (or just wipe /odm out) at your preference. - Seems to be some issue with Magisk uninstalling. Some apps seem to re-enable Unused apps permission here; All Files permission getting revoked after a reboot; & other permissions (Display over apps, Modify system settings, & Install unknown apps) getting reverted. - /product is /system/product since the S9 doesn't seem to be retrofitted to /super yet (let alone had its partitions tampered like the Poco F1), either due to nobody in the scene knowing how or it's not possible to do so. - FakeStore & GmsCore can optionally be replaced by the last comfy version for me (upstream 223616, as user-app), should I want to. As for the backends... they're all obsolete. Just un-assign the backends from microG before replacing them, or you'll have to clear its data after it's re-installed (or face crashes while attempting to normally un-assign them). The microG replacements should've been impossible (especially in regular LineageOS-microG), but in iodéOS, sigspoofing is willy-nilly handed to anyone requesting it, making this microG replacement possible. - iodé app provides interface for preinstalled apps in /product & a network monitor. There are some reports of iodé app draining battery when it's active; and considering that issue (plus the random connections being "MITMed" even when the device is offline) I won't be keeping this app, even for the network monitor - I needed all the battery life this little shitbox can get. - SamsungDAP & FlipFlap are Samsung proprietary stuff ported by LineageOS. The former's for Dolby Atmos support, the latter's allegedly for Smart Cover stuff. - Boot animation is in /system/media (bootanimation.zip) & system/product/media (bootanimation-dark.zip) for some reason.. - iodéOS' DocumentsUI goes to Downloads by default, unlike A11. One "workaround" for this issue is to replace the DocumentsUI files with the ones from something like DivestOS (such as the one from X3P's A12L build since that's all I have); though any A12L DocumentsUI that doesn't go to Downloads by default works - good luck finding A12L builds that does these though (except for DivestOS, as I've already mentioned it here, though I'm not sure for how long). - Shattered Pixel Dungeon & Xeonjia's background songs reliably play in this iodéOS, though at the cost of that annoying volume alert that pops up when you kick the headphone volume more than 50%. However, I can tolerate the arbitrary limiter this time since S9's 50% is loud enough for my M50X. - iodéOS inbuilts their own fork of OpenCamera. Therefore, replacing this with upstream OpenCamera is more optional than replacing Aperture, Snap, or GrapheneOS Camera (except for Camera2, may the Lord have mercy on that one). - Conclusion : Welp, I clearly intended to make this my new FGO machine (with me having second thoughts). However, my biggest hurdle is the lack of custom development scene for this one, at least within the A11-A12 space; which left me with either some LineageOS builds (which won't be compatible with microG, though I might take advantage of this), this iodéOS (which has quite the red flags, though not as much as the next one), or /e/ (which I ABSOLUTELY REFUSE to touch nowadays). Fortunately for me, iodéOS allows me to change the default connections to my will (unlike /e/); even if the defaults are already to my desire. But still, at the end of the day, iodéOS is just Lineage-microG with some additions, some good & some bad (but all of them can be changed; including microG itself).