Remix.run Logo
munchlax 3 days ago

Have you tried building AOSP from available sources?

Binaries everywhere. Tried to rebuild some of them with the available sources and noped the f out because that breaks the build so bad it's ridiculous.

zoobab 3 days ago | parent | next [-]

"Binaries everywhere"

So much for "Open Source"

jeroenhd 3 days ago | parent | next [-]

The binaries are open source, but Google doesn't design their build chain to recompile from scratch every time.

Also, you don't need to compile all of AOSP just to get the toolchain binaries.

orblivion 3 days ago | parent [-]

With how strict F-Droid is I would have expected them to build from source all the way down. Though that sounds like a daunting task so I don't blame them.

gbin 3 days ago | parent | prev [-]

Everything is open source, if you can read assembly ;)

bluGill 3 days ago | parent | next [-]

Machine code. Assembly is higher level. since data and instructions can be mixed machine code is harder to decode - that might be a byte of data or an instruction. Mel would have [ab]used this fact to make his programs work. It is worse on x86 where instructions are not fixed length but even on arm you can run into problems at times

snake42 3 days ago | parent [-]

You can always lift machine code to assembly. Its a 1 to 1 process.

bluGill 3 days ago | parent | next [-]

No you cannot. While it is 1 to 1, you still need to know where to start as if you start at the wrong place data will be interrupted as an asm instruction and things will decode legally - but invalidly. It is worse on CISC (like x86) where instructions are different length and so you can jump to the middle byte of a long instruction and decode a shorter instruction. (RISC sometimes starts to get CISC features as they add more instructions as well).

If the code was written reasonably you can usually find enough clues to figure out where to start decoding and thus get a reasonable assembly output, but even then you often need to restart the decoding several times because the decoder can get confused at function boundaries depending on what other data gets embedded and where it is embedded. Be glad self modifying code was going out of style in the 1980's and is mostly a memory today as that will kill any disassembly attempts. All the other tricks that Mel used (https://en.wikipedia.org/wiki/The_Story_of_Mel) also make your attempts at lifting machine code to assembly impossible.

Akronymus 3 days ago | parent | prev [-]

It definitely isnt a 1:1 process, as there are multiple ways to encode the same instruction (with possibly even having some subtle side effects based on the encoding)

https://youtu.be/eunYrrcxXfw

ignoramous 3 days ago | parent | prev [-]

... this is why we get DRM. Source modification is what hurts them.

rbanffy 3 days ago | parent | prev | next [-]

Yes. Sources available means nothing without a reproducible build process.

ivanjermakov 3 days ago | parent | prev | next [-]

So open source is only in the name, noted

pwdisswordfishz 3 days ago | parent | prev [-]

Debian also seems to have given up.