Jump to content

AppleTV's Front End has been hacked!


f#a#oo
 Share

3 posts in this topic

Recommended Posts

Something Awful member Sabretooth has managed to hack the front end and add in his own menu option.

n40310081_30949505_8388.jpg

n40310081_30949506_8778.jpg

I'm on TV!

More of his posts:

It's not photoshopped. If it were, it wouldn't look so {censored} (stupid Macbook Pro camera :argh: )

 

I'm currently working out the interface between the apple-TV Finder.app and the plugins it loads. They're Objective-C shared libraries implementing a simple interface derived from a class in BackRow.Framework called BRAppliance. Of course, BackRow.framework doesn't ship with headers... or interface definitions... or really anything other than some nifty PNG files and a 1.6 MB shared-lib binary.

 

Unfortunately, since I'm a C++ kind of guy, this is going to take a while to get anything concrete. All the usual methods are useless (I don't even have 'objdump').

 

However, obj-C is far more forgiving in the face of reverse engineering (that whole 'dynamic message passing' thingie), so this is probably actually easier than if it were C++.

and in his most recent post he has released a video :thumbsup_anim:

Alright, check this out:

http://video.google.com/videoplay?docid=2472553296791117282

(The awesomeness of Google Video and my MacBook Pro camera combine to bring you a video where you can just about make out 48 pt font. Wonderful.)

 

That is a 100% custom bundle loaded. BackRow.framework has a whitelist of potential bundle class names. I used RUICalibrationAppliance -- it appears to be unused. I'll check out the whitelisting later and see if I can get around that completely; since there's only one unused item, you'd have to replace other stuff to get more menu items. I suggest Podcasts as the first to go, as nobody cares about those.

 

The first open-source Apple TV application:

 

@implementation RUICalibrationAppliance
- (id)applianceControllerWithScene: (id)fp8 {
BRRenderScene* scene = fp8;
const char* errCStr = "Television Rules the Nation";
NSString* errStr = [NSString stringWithCString:errCStr encoding:NSASCIIStringEncoding];
BRAlertController* alert = [BRAlertController alertOfType:1 titled:errStr primaryText:errStr
secondaryText:errStr withScene:scene];
return alert;
}
@end

Thread link: http://forums.somethingawful.com/showthrea...hreadid=2391956

 

Sabretooth's posts start on page 11.

 

I figure once we get full USB support, the mods will be endless.

Link to comment
Share on other sites

 Share

×
×
  • Create New...