I am releasing DivestOS.
It is an aftermarket system for many devices.
Based on LineageOS with many security and privacy features.
Unmodified F-Droid is included.
This looks really good! Sadly my device is not supported and I don’t have the knowledge to build one.
The only bad thing is that in LineageOS 17 they removed Privacy Guard, it was really useful for me
I like the info’ on the site, the smaller number of default installed apps, hosts file blocking, and minimal microG/UnifiedNLP/location setup. There’s a lot more features I don’t know enough to fully appreciate. I’d prefer Orbot included in VPN mode from the start, but I could always download to PC and local install that apk before turning on cell and wifi. No offense to f-droid, but I don’t usually install the privileged extension.
On Nexus 6 shamu (listed as Untested), microphone does not work when making a call. This is a show stopper for a phone obviously. Simple voice recorder from f-droid records voice OK. Phone permissions settings show phone Microphone as “never accessed”. I rebooted a couple times as suggested some places but no luck so far. Oddly there is a voice “echo” in the earpiece or speaker, but no voice is heard at the other phone in a call. Lineage 17.1 was working.
Comment/Question on bootloader relocking: Post-install instructions say “Relock your bootloader. This is an absolute necessary for maximum security. Be sure to flash our recovery first!” This is to prevent “recurring” system modifications from malicious apps or remote or local attacks, if I understand correctly. However, soon after startup F-droid auto-runs and checks for updates. So I’m trusting a few things before I have time to get the bootloader relocked? Oh well, if I can’t trust f-droid, who can I trust?!
Relocking your bootloader cannot protect from apps, Verified Boot will however protect against that on devices where it is supported/enabled.
It however for example can protect against someone with physical access from flashing a modified keyguard that saves your password or other nefarious things.
As for the microphone on shamu, that is likely broken by the deblobber.
For shamu it removes libmotaudioutils.so and libspeakerbundle.so
Can you post the output of:
abd logcat -b all -d | grep -i -e dlopen -e .so
adb^… gives 919 lines, which is a lot to post here. Any other way? To be clear I did not install the “extra” deblobber because it was shown as “broken”. Only recovery and ROM.
The file is really gzip format… grep -i dlopen gave no results. This is from grep -i “\.so”. Let me know if you really need the unquoted version. It’s about 1k lines versus 200. HTH.
BTW there’s already a project called glassrom that does this
How is yours different
Full disclosure: I’m the lead developer of glassrom
We’re already implementing most of your features
Deblobbed: we don’t ship DRM and other such blobs
Increase security: glassrom ports 90% of the grapheneos security patch set. Also glassrom fixes anywhere from 23k-63k security vulnerabilities per device (see past and current work)
Privacy: we disable analytics but otherwise let users decide on the hosts file
Free space eraser: not implemented. Instead glassrom uses hardware based data destruction, memory poisoning and key wrapping which are much better ways than free space wiping and can even resist cold boot and forensic based attacks
Malware scanner: not implemented and will never be
Browser: glassrom ships a modified version of bromite with the vanadium hardened patch set. It does not send any data to google and is significantly more secure than Firefox, protecting against non linear buffer overflows which even official chromium doesn’t
Fdroid privileged extension and a heavily cleaned and updated unifiednlp is shipped
I was unable to find your source code that does so.
#!OS also claims to do the same, but I too didn’t find their source for deblobbing.
Here is the DivestOS deblobber with ~800 blobs.
23k-63k security vulnerabilities per device
You are going to need to provide strong evidence to back such a claim up.
I only know of a few auto-patchers, and mine has the most patches. And at most it can patch ~400 per device.
hardware based data destruction
Do you mean discard/continuous trim? DivestOS does that too
decide on the hosts file
How are you replacing the HOSTS file? Do you read it from /data instead of /system?
memory poisoning
DivestOS also does this via both via command line and GrapheneOS patches where possible
Source? Oh wait this “Android Studio automatic cleanup”?
What even is this?
Going through your sparse sources, the biggest difference is that DivestOS attempts to apply all of its changes automatically to any given device of any Android version. Because 5 years ago when I was supporting a handful of devices it got too tedious, and I ended up automating as much as possible.
Memory poisoning is a fairly new feature that just recently dropped in the 4.14 common kernel
I doubt you have a device that uses this
Also you are enabling kernel lockdown when selinux already does that
Same for page alloc shuffle, init_on_free/alloc. I don’t think tuna has a port of any of those on 3.10
The arm/arm64 kernel argument is kpti=on yet you also specify pti=on. Why?
Slub_debug=Z and init_on_alloc/free conflict with each other yet you enable them
You’re just sticking in flags that are NOPs
No I don’t ship a hosts file nor do I read it from /data. The hosts file is not meant for adblocking. Userspace applications like pdnsf are much more user friendly and handle this better
You can check the current glassrom kernel sources for those patches. There’s no automated “black magic” cve patcher
The patch to updater is just to allow developers to test updater functionality without running a full updater server