RSSAmplifier

Gavin D. Howard · Mar 15, 2026

An Idea for Bypassing Linux Age Verification

0
Sign in to vote or save

gavinhoward.com

Introduction

So, many US states have started requiring age verification on Linux. Well, everywhere, including app stores, but I only care about Linux. And the BSDs.

Anyway, first, why is this happening everywhere at once? Actual, real-life conspiracy. Maybe.

It does seem legit to me.

Method

So how is this to be done?

Well, one of the options for implementing this Hadic Fury Freakshow is dbus. No, I’m not kidding. Well, let’s take advantage of that.

What if we just…messed with the age verification messages?

I looked at dbus-proxy for doing that, but it seems to not have the necessary control.

And what is the control I mean? Here is some example code from my language Yao to pretend that the user does not exist (maybe the best way to avoid giving any info away):

// If we have the age verification...
if msg.name == "org.freedesktop.AgeVerification1"
{
	// Pretend the user does not exist.
	dbus.send("org.freedesktop.AgeVerification1.Error.NoSuchUser");
}
// Send through all other messages normally.
else
{
	dbus.send(msg);
}

Don’t peer too much into the API. I haven’t designed this and don’t care to.

Or maybe we can pretend we’re a full adult:

// If we have the age verification...
if msg.name == "org.freedesktop.AgeVerification1"
{
	dbus.send(
	    "org.freedesktop.AgeVerification1.GetAgeBracket",
	    // Yeah, we can use JSON as a value.
	    @(json) {
	        "AgeBracket": 4
	    },
	);
}
// Send through all other messages normally.
else
{
	dbus.send(msg);
}

Or if you’re crazy like me, pretend you’re a child:

// If we have the age verification...
if msg.name == "org.freedesktop.AgeVerification1"
{
	dbus.send(
	    "org.freedesktop.AgeVerification1.GetAgeBracket",
	    @(json) {
	        "AgeBracket": 1
	    },
	);
}
// Send through all other messages normally.
else
{
	dbus.send(msg);
}

Yes, if I couldn’t pretend that I don’t exist, this is what I do. I want a nerfed Internet, and I want companies to have extra privacy requirements on my data. And I know how to parry child predators.

Questions

  • How would you implement this, Gavin?

    A new dbus daemon with a language interpreter for messing with messages. The daemon would receive new messages, and if they matched some configuration, it would run scripts on the messages.

    Having a full language is important because we may want to change messages around for particular clients that are slightly incompatible. Or we could use it for implementing permissions, another missing feature. Or just whatever. The sky’s the limit.

    And quite frankly, Yao is a great fit because it is as flexible as Lisp, while making it easy to flex that flexibility.

  • Sounds like a terrible idea, ACE in dbus.

    Not a question. But remember, the code will be under the control of the user. Yeah, it should not be writable by any but the user, but it’s the same risk of sshd, so…eh.

  • Actually, it sounds like a great idea! Are you implementing it now?

    No. I don’t have time.

  • Okay, but what about if you have time?

    Maybe. But it would only be for myself, to bypass this spyware. I wouldn’t release the source code.

  • Why wouldn’t you release the source code?

    Because then either LLM companies would assume they could steal it for “training” data, or some useful idiot or parasitic shill Trill would put it on GitHub, after which the LLM companies would definitely slurp it up.

    Companies have broken the social contract of Open Source, and I’m not about to play ball, especially since they are enabling a lot of the current chaos in the world.

  • Would you provide prebuilt binaries instead?

    Okay, I don’t think this question would ever get asked because developers just expect source code. And I get it; anything without source is suspect.

    But if I was asked, yeah, I’d provide builds for what I could.

  • Would you write it if you were paid?

    Maybe. If it cemented the legacy I am trying to build. If you’re Big Tech, unqualifiably not, not for any price.

  • Oh, come on, Gavin. Everyone has a price.

    Not a question. And try me.

    Because of a recent life change, I am living in poverty with only a low-paying part-time job. My food security is low, and I have no health insurance. And while I’m not living paycheck-to-paycheck because I have a small buffer and good financial sense, it’s still a financially stressful life.

    I could change that almost literally overnight. I could get a job in the tech sector. A high-paying job. I could be living high. But I will continue to live in poverty just to avoid the tech sector.

    I will not be part of the problem that caused this age verification spyware in the first place.

Toggle Warnings Toggle Notes

Read the original on gavinhoward.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.