For the best experience on desktop, install the Chrome extension to track your reading on news.ycombinator.com
Hacker Newsnew | past | comments | ask | show | jobs | submit | history | sleirsgoevy's commentsregister

What about this idea? Make a movement among the devs who are willing to distribute "legitimately" (via Google Play or "authorized" sideload), to sign their apps with intentionally insecure private key. Then some community will just mine up these certificates in already published apps and publish them somewhere on GitHub.


Making every user to "verify" themselves with a government ID is a no-go, because government IDs are no more trustworthy than a toilet paper.


The issue with government IDs is that they are, for all we know, not trustworthy, but everyone treats them like they are. And you know, I am not going to "verify" myself with Google with this kind of toilet paperwork.

If Google decides to pull this off, then I guess reflashing to a custom ROM with this crap patched out will be a very first step I'll be recommending to anyone who cares.


It seems you missed my main point - the whole point is to fight for this right to reflash a custom ROM, because they're slowly coming for that too. First Play Integrity, now no AOSP releases and more vendors disabling bootloader unlocking..


The Linux kernel has even a way to determine whether the expression is compile-time, WITHOUT aborting compilation in either case.

The trick is this (copied vebratim from Linux):

#define __is_constexpr(x) (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))

Explanation: if x is a constant expression, then multiplying it by zero yields a constant 0, and casting a constant 0 to void* makes a null pointer constant. And the ternary expression, if one of its sides is a null pointer constant, collapses to the type of the other side (thus the type of the returned pointer will be int*, and the sizeof will match). And if x was not constant, then the lefthand side would not be considered a null pointer constant by type inference, the type of the ternary expression will be void*, and the sizeof check will not match.

With a few more clever tricks, it's even possible to implement a compile-time "type ternary expression", like this: TYPE_IF(2 * 2 == 4, int, long). This is left as an exercise for the reader.


With a few more clever tricks...

I did this with my PARSENUM macro (https://github.com/Tarsnap/libcperciva/blob/master/util/pars...) to parse strings into floating-point, unsigned integer, or signed integer types (and check bounds) using a single interface.


This reminds me of the days when Boost was a thing. It was full of tricks like this.


It still is a thing, though.


Not really, it's garbage to the point that it only runs the X11 session, mutter can't even be compiled with Wayland support because it then tries to include some Linux-only header.


``` git clone https://github.com/irfanhakim-as/yuzu-mainline git fetch origin 537296095ab24eddcb196b5ef98004f91de9c8c2 ```

It seems that GitHub still serves the commit history through the existing forks of the repo. According to archive.org, this commit corresponds to the last release of yuzu-mainline before the repo takedown: http://web.archive.org/web/20240304185516/https://github.com...


If you already have a copy of the original repo, add this as another remote with:

``` git remote add irfanhakim-as https://github.com/irfanhakim-as/yuzu-mainline git fetch irfanhakim-as 537296095ab24eddcb196b5ef98004f91de9c8c2 ```

Then if you want the commit to look like the latest one for the original repo edit the file `.git/packed-refs`. Mine now looks like:

``` # pack-refs with: peeled fully-peeled sorted 537296095ab24eddcb196b5ef98004f91de9c8c2 refs/remotes/origin/master ```

(Be careful with raw editing git files. There might be a more 'official' way to do it, but this worked for me)


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search:

HN For You