r/mobilelinux • u/Nemege16 • 3d ago
Hardware ipad mini1(apple A5) running linux on custom iBEC. No XNU. Custom IRQ driver
i couldn't get the second cpu core or the touch screen to work because of the restrictive recovery environment and SecureROM. Only the buttons work. i found the framebuffer address by hand. Going to upload this to github soon. Basically what i did was to get arbitrary code execution working with pwndfu checkm8. And i pulled the Apple device tree from IPSW. i made a script to turn that ADT to compileable DTB and DTS. i know in the apple device tree some nodes are placeholders or pointers but some nodes did work out. This is only in RAM. i couldnt find a way to input keystrokes to the device so this is pretty much useless but a one trick pony.
2
1
u/Darth_bunny 3d ago
Any way to communicate with it? Like hooking it up to a llm to do reverse engineering and test it on device?
3
u/Nemege16 3d ago
i worked on this for like 4 weeks im so tired man
5
u/Darth_bunny 3d ago
I'm sorry man, I imagine it's hard.
I'm trying to do a port for a motorola 50 pro and barely managed to compile a downstream kernel to boot it. I was close to giving up but I gave an agent access to the upstream kernel, a ghidra mcp and an official image to extract the kernel modules and re them back (still as .ko for starters) and grind them one at a time. I'm close to having an upstream version with ssh and network via usb and after that the real fun will begin.
2
-1
u/Novel_Lie5519 2d ago
âhook it up to an llmâ weâre in the bad place. why even take on a pet project if you arenât going to develop the creativity necessary to make it work yourself? what are you going to learn from it?
3
u/Darth_bunny 2d ago
I do see your point and I understand that for you itâs about the journey and not the destination. I truly respect that. But as much as Iâd wished, I donât have enough time to learn C, learn reverse engineering binaries and then submit the parches to the mainline kernel. I just have an older phone that Iâd wish to run linux on it. I have an understanding of what the kernel does, how it works that is enough to tell a llm to build me something that I want to use now, not in 1-2 years. So with all due respect (and I really mean it) there is more than black and white in this situation.
0
u/Novel_Lie5519 2d ago
then youâve reduced it to a novelty. youâll get it to work, run linux on an ancient ipad, have no use for it, and put it back on the shelf.
2
u/Nemege16 2d ago
Just like me lmao and whats wrong with that? i like to do stuff like this. i love to see native linux booting on an ipad without emulators
1
u/Novel_Lie5519 2d ago
whatever floats your boat man. youâll leave the experience knowing itâs possible without understanding it any better
1
1
1
u/iphones2g- 2d ago
This gives me hope for my plans of putting Linux on the apple TV 3rd gen
1
u/Nemege16 2d ago
i think this will work well because apple tv 3rd gen has usb. Can you put apple tv 3rd gen on pwnDFU? if you can, what i would do is to make a custom iBEC to hook the upload finished function and execute arbitrary code and find the framebuffer address by guessing addresses. And to boot linux you have to find a way to talk to the interrupt controllers
2
u/iphones2g- 2d ago
I can get it into pwndfu, without an adreno too! As apple actually patched the USB bug on the A5 in the TV3
5
u/Nemege16 3d ago
The reason that i could boot linux at all i think because of the bootx command in iBEC. The xnu kernel required interrupts but the recovery and flash environment didn't need touchscreen enabling and the second core was gated in secureROM. So i couldnt get those two working.