(2024-03-18) The Graphene Saga: part 2
--------------------------------------
...and probably the last.

I got tired of this circus pretty quickly. I have published whatever I've
found so far in the LuxDocs section, but... I really need a second Pixel 
device to keep going with this research. Because I still depend upon several 
applications that are incompatible with root, and GrapheneOS does nothing to 
help me with masking the root, on the contrary, making things much harder. 
In fact, one of Magisk modules broke the boot partition, so I had to 
reinstall the vanilla Graphene from scratch.

However, as I hinted before, the main problems of the project are not
technical, they are human. The devs don't understand not everyone can afford 
losing ~1GB of traffic for OTA updates twice a week, and then additional 10 
minutes of time for the "app optimization" process. The devs don't 
understand not all users are that stupid to not allow them root access, at 
least with ADB. The devs don't understand how modern OEM manufacturing 
really works and "regulations" don't. They seem to be living in a fantasy 
world where people only need a "more secure stock" without actually giving 
back control over their own devices to them, only making the permission 
model more granular and protecting against the exploits no one will ever be 
able to execute in the real world.

The sad part is, there doesn't seem to be anything better at the moment.
DivestOS lags behind by a major version but essentially suffers from the 
same issues. CalyxOS is too opinionated and endorsing some dubious things 
like WhatsApp, Signal and Cloudflare, and also repeats the same silly mantra 
as Graphene and Divest ("Running any Android device with root permissions 
severely undermines the security of the device"). LineageOS is probably the 
freest of them all (when speaking of Pixel 6) but lacks all the security 
advantages of all the above three. I plan on trying it out on the Mi 8 Pro 
though (because anything is much better than the stock MIUI spyware), but it 
can only happen in two weeks. And _if_ I manage to get an ADB root not 
visible by the rest of the OS there, then I'll consider moving from 
GrapheneOS to Lineage on the Pixel as well. And then I'll be able to 
continue the research on my main subject.

The main subject, as you might have seen in LuxDocs, is now stalled at the
stage of finding where the IMEI SHA checksums are stored. Because the IMEIs 
themselves are stored in the devinfo partition in the plain ASCII form 
(although the partition itself is binary), and this partition, contrary to 
my expectations, really controls everything over the EFS. Of course, if 
either IMEI doesn't match its checksum, the device reports both of them as 
000000000000000 to both the OS userspace and the network. And I could 
partially do this search in the offline mode as I dumped the modem firmware 
image along with everything EFS-related while I still had the root access. 
But, of course, I should have dumped everything I could.

Moral of the story: technical superiority isn't everything. Human
understanding of what really matters is much more important.

This week is going to be quite tough but I really hope I get rewarded on the
end of it. So I'll definitely have something interesting to write about next 
time.

--- Luxferre ---