With the new OS version, Apple totally changed up the database format. Now it’s based on a whole bunch of SQLite files and there are also a few files in a format similar to the old proprietary one. There are more than likely still hashes in the critical files, and there’s also a suspicious pair of files that appear to be entirely encrypted. The SQLite format is open and certainly better than the old one, but someone still needs to interface a media player to it.
The upshot of this is that a whole new support library will need to be written or large changes in libgpod need to happen to support the new SQLite format. The DBVersion hack also isn’t going to work – either someone needs to reverse engineer the complete hashing algorithm (and maybe that encrypted file stuff), or the MusicLibrary binary on the phone needs to be patched. So, if you’re currently syncing music with free software, you’ll want to hold off on upgrading to 3.0.
Patching the check out of MusicLibrary looks trivial enough, so although it’s not as easy as the DBVersion hack, it isn’t a real showstopper. The hash algorithm looks the same as the old one, or at least quite similar (and just as badly obfuscated). Those encrypted files do scare me a bit though.
After a few days of reading very, very weird disassembled code and poking registers, the odd 2D hardware finally works (for the most part). It can draw lines, so I threw in a software 3D transform. Here’s the Stanford Bunny in a glorious 448 vertices and 1416 lines of jaggy wireframe awesomeness.
I’ve joined a bunch of friends in a quest to reverse engineer and write custom software for Sunplus SPMP305x chips. These chips are inside all sorts of chinese media players, particularly the fairly powerful kind with a camera, video playback, etc. The chip is based around an ARM926EJ-S core, but the peripherals around it are completely custom – check out the marketing blurb. Most current work is on reverse engineering the hardware interface so we can completely replace the default firmware.
If you’re interested and you have one of these or don’t mind spending $33 to get an interesting ARM machine, check out the wiki, Google Code project for the Prex port and other stuff, and my Git repository with a port of MINI and a bunch of client utilities for reverse engineering and testing the hardware stuff. Most importantly, however, come visit us at #spmpdev on the EFNet network! Most of the work and chitchat happens in the IRC channel.
I’ll eventually write a longer post about how different bits and pieces of this laptop’s hardware fare under Linux. For now, I’ve managed to strike one of the more annoying issues: proper audio. Scroll down if you’re impatient and want the code; read on if you want the full story.
This laptop is peculiar because it has built-in “5.1″ audio. Yes, it does really have 6 speakers, though you’d be hard pressed to get much spatial separation out of them (and they aren’t even placed around symmetrically). However, the speakers do end up making a very decent multiway audio system, by laptop standards: the “rear” pair (which is actually between the keyboard and the screen; the mind boggles) is good with the high end, the “front” and center speakers (front edge of the laptop) are your average mediocre speakers that can handle mid-end, and the “Tuba” not-so-”sub” woofer fills in enough low-end to equal a decent overall speaker, although of course with zero stereo/spatial separation since there’s only one of it (actual subwoofers can pull off mono because the human ear can’t really hear spatial position at low frequencies, but the Tuba is more like the only non-sucky speaker in the entire laptop).
What this boils down to is that you really want good audio support for all 6 speakers if you want to take advantage of the audio capabilities at all. Most importantly, stereo needs to be upmixed and a good portion of the normal audio needs to be routed to the Tuba. ALSA’s asound.conf makes this easy, assuming the actual hardware works fine. Of course, that’s not the case. Read the rest of this entry »
If you’ve ever worked with other people on some piece of code or program, particularly over IRC or IM or some other form of real-time or fast text communication, chances are you’ve used one of the many “paste” sites available (my personal favorite is pastie). These sites offer a convenient way of sending small to medium chunks of text to other people quickly, by simply copyng and pasting the text into a web form. This is a lot better than the old way of having to send an e-mail attachment, spam an IRC channel, or upload the text to some web host, but as I used pastie more and more often I started to realize that it could be made even faster. Read the rest of this entry »
With newer iPods and the iPhone 2.x firmware, Apple decided to implement a new hash scheme for iTunesDB to prevent third-party apps from managing the iPod database. Stupid. They decided to make it part of the FairPlay codebase, including its obfuscation. Very Stupid. But just in case that weren’t enough, then they went ahead and tried to take down the iPodHash project which was attempting to reverse engineer the (annoyingly obfuscated) algorithm. Completely Stupid.
I had previously patched the check out in the MusicLibrary binary, and forgot to write it up. However, I just looked at it again, and it turns out that you can get it to work just by changing a simple XML file. I guess they didn’t really care if jailbroken iPhone users used third-party software. Read the rest of this entry »
And most of us are back home! 25C3 has really been a blast and I’m sure most of us will repeat next year.
We had a huge table and still managed to fill it up entirely. Just look:
Console Hacking table at the Hackcenter
Since taking photos of the public without permission is forbidden at the Congress, and I didn’t obtain explicit permission from the people on the left, I’ve blacked them out. Oh yeah, that guy at the back is crediar. I hear he doesn’t mind if I post his photo
The iPhone Dev Team guys also sat with us. We even worked together on several occasions, and it was really cool to have these two teams meet together and learn from each other. Read the rest of this entry »
In an ideal world, in a few hours, a plane will depart from Madrid Barajas International Airport and with destination Berlin-Tegel Airport. Hopefully, I will be inside that plane. This isn’t an ideal world, however, so chances are the flight will be delayed. But one way or another, I hope to find my way to Berlin today (or tomorrow, going by my sleep cycle).
Pack up has been interesting. Behold:
Standards vary, but I think this is somewhere between “reasonable by 25c3 standards” and “completely insane”. This should be fun though. See if you can spot the key components. FYI: My Wii lives in that 56K modem box.
In an attempt to keep this blog from developing a severe case of cobwebs, I’ll try to keep you posted on what goes on at 25c3. Here’s the vital information:
I finally broke down and set up a proper blog. Ooh! Aah! Boo!
I think the first time I started to do this blogs weren’t even popular. 2000 or so. I guess I succeeded 8 years later.
So why on earth would I want a blog anyway? ‘Cause it’s the trendy thing to do? Well, over the years, I’ve amassed a relatively large amount of personal projects and tidbits. However, up until now, I haven’t had a single place to collect references to them. Sometimes you’ll find a few in some dark deep corners on my webserver, and sometimes you’ll stumble upon them on forums or other sites, but there’s a lot of stuff that’s just sitting somewhere on my hard drive entirely unknown to the world. Googling for “marcan” doesn’t help either – especially when the word happens to (coincidentally) be a Spanish word too. It’s kind of sad to see all of this old and not so old stuff just sit there and do nothing, so I’m setting this blog up with the hope that someone, somewhere, will find some of it useful. And maybe it’ll inspire me into working on some old unfinished projects.
Some may say, what about HackMii? Well, HackMii’s name is pretty self-descriptive, but to clarify: HackMii is about hacking the Wii. Unlike many people seem to believe, my life isn’t solely devoted to Wii hacking (thankfully). Instead, here you’ll find everything else, including some possible Wii-related posts that aren’t strictly related to the topics at HackMii.
So in this blog I’ll try to post about what I’m currently hacking, making, or otherwise screwing around with, and about what I’ve hacked, made, and screwed around with in the past. You may also find an occasional tidbit or two about my life, but I’ll try not to bore you with it.