Porting to iPhone 3G and iPod touch

Posted on the January 28th, 2012 under Gadged by

Hey guys,

The lack of updates for the past few days is because many of you decided to visit us in IRC, thus enabling work to be done on porting openiboot to the iPod touch and the iPhone 3G (in particular because I don’t have an iPod touch at the moment).

I’m pleased to report that everything now seems to be working on the iPhone 2G and the iPhone 3G (albeit NOR read/write on the iPhone 3G is unoptimized and is unacceptably slow). There is apparently an outstanding issue with the NAND ECC on some (?) iPod touchs, and also some people can’t seem to actually install openiboot to NOR on both iPhone 2G and iPod touch. Unfortunately, the problem is that these things happen on devices that I don’t have physical access to, and IRC is often a frustrating medium for communicating with testers. I’m confident these issues will be resolved soon, though.

So, current simultaneous projects:

1. Resolve openiboot porting issues
2. Implement poorlad’s boot menu
3. Work on write support for FTL

After at least one of those things are done, we’ll be working on the Linux kernel.

 Porting to iPhone 3G and iPod touch

 Porting to iPhone 3G and iPod touch

 Porting to iPhone 3G and iPod touch

NAND filesystem now readable!

Posted on the January 27th, 2012 under Gadged by

Amazingly enough, the FTL_Read stuff from last night was pretty much correct! After that, it was relatively trivial to port over the HFS+ code I’ve already written (which was in pure C… finally that [fail] design decision has been vindicated =P).

As you can see in the screenshot below, with the latest Git revision, you can browse the filesystem from openiboot!

FS+works NAND filesystem now readable!
Next on the list is to port openiboot over to the iPod touch and iPhone 3G. It’s probably just a matter of putting in different numbers for the GPIO ports, but we’ll see.

After that, I will implement poorlad’s bootmenu (which everyone seems to like).

After that, well… We have pretty much all the devices now, so we’ll start looking at the Linux kernel. If you’re a Linux kernel guy who would be willing to help (preferrably you have experience porting Linux to new ARM platforms), please leave a comment here. I can do most of the muscle work, but it’d be nice if someone can show me how to set up the source tree properly for the new port.

 NAND filesystem now readable!

 NAND filesystem now readable!

 NAND filesystem now readable!

FTL

Posted on the January 27th, 2012 under Gadged by

I don’t know how I was talked into reversing a FTL, but we’re actually on our way. I’ve managed to enlist the aid of CPICH (who has been helping with the lower layers as well, he’s our human HexRays) and just recently, pumpkin, who you will know from the Dev Team. pumpkin will be the heavy support that’s necessary to take down _FTLRestore, which is the most complex function I’ve seen in 1.1.4 iBoot (and I’ve pretty much have seen all of it). pumpkin is very good, so this task should be now be cut down to “fairly difficult” from “completely impossible”.

The strategy so far has been me methodically hacking through the functions in the order that they are called, completely decompiling them, understanding them, and assimilating them into openiboot. Toward this end, I’ve been working on FTL_Open, which is a fairly large (but as it turns out, boring) function, but has been useful in enlightening us on several of the large data structures FTL uses.

Meanwhile, CPICH works on functions ahead of me, so that when I reach them, a lot of the thorny underbrush has been cleared out and my job becomes much easier and faster. Toward this end, he has been working on FTL_Read, which uses the data structures that the now-completed FTL_Open should populate.

_FTLRestore is sort of a “bonus”, since it’s not normally called if the iPhone was shut down normally and everything is cleaned up. However, since recovering faulty data structures require all redundancies to be exploited, reversing this would let us gain a lot of insight into how the FTL works. It’s also, naturally, an enormously complex function, and hence I wisely delegated it to pumpkin. =P (We will probably end up working on it together)

The one thing that troubled me was that the code we were reversing is for 1.1.4 whereas we primarily need it to work on 2.0. However, due to the fact that I had it better mapped out than the 2.0 iBoot, and the fact that the equivalent 2.0 code was much more complex (lots of function pointers flying around, and a weird switch idiom I haven’t quite figured out yet), We decided to stick to the 1.1.4 iBoot.

After completing FTL_Open, I had a bit of a panic when I discovered it did not work at all on my 2.1 phone, and I could not find any obvious bugs with it. This might’ve meant that all our work on 1.1.4′s FTL was for naught. Forgoing sleep, I tore through the 2.1 iBoot, locating the analogues to my already reversed 1.1.4 functions (I had given up trying to trace through the function pointers the first time around), and called them directly with my special version of iBoot (patched so that one of the commands was able to call arbitrary iBoot functions with arbitrary arguments). I managed to find a couple of bugs with my VFL code, and after having fixed them, FTL_Open appears to have worked. I think. It just finds and reads several data structures from NAND. It remains to be seen if I’m even reading the right thing.

Now for some sleep.

 FTL

 FTL

 FTL

API, Blotcode and Dandelion for commercial projects

Posted on the January 27th, 2012 under Gadged by

 API, Blotcode and Dandelion for commercial projects

 API, Blotcode and Dandelion for commercial projects

Both Blotcode and Dandelion are available for licensing. License gives a right to generate own codes within independent code range.

Another alternative is to use our API. Usage of API is free for non-commercial applications. 2D Sense API is available on request.

Use this address: sergey[AT]dsense.com

2D Sense reads Scanbuy’s EzCodes

Posted on the January 27th, 2012 under Gadged by

 2D Sense reads Scanbuys EzCodes

Do you know that 2D Sense can read and process Scanbuy’s EZCodes (or former Visual codes)? Find examples here http://www.scanlife.com/examples.html and scan them!

As you know, CTIA The International Association for the Wireless Telecommunications Industry has reached the conclusion that US carriers will support the proprietary EZ Code and open Datamatrix Code symbologies with indirect access…. Ability to handle both Datamatrix and EZCodes makes 2D Sense very unique application on a market.

Port of 2D Sense on BlackBerry is near to end and is planned for Xmass 2008.

Stay tuned!

QuickGold for iPhone – Jailbroken iPhone app recommendation

Posted on the January 26th, 2012 under Gadged by

3600 QuickGold for iPhone   Jailbroken iPhone app recommendationThis one’s not one of mine, but an app made by Zachary "zataang" Taanges really hit the spot. Using the Dock 3.0 source code as a reference, Zach created a beautiful text-based app launcher called QuickGold that runs right on top of SpringBoard.

It’s available now in Cydia (hosted by Shaun "Ste" Erickson).

This thing is great, just hit the Home button while already at the home screen and start typing what you want, then tap the result that matches. So fast (even faster than Dock)!

Read the rest of this post

What can code injection do on an iPhone?

Posted on the January 26th, 2012 under Gadged by

3569 What can code injection do on an iPhone?Pretty much anything.


Read the rest of this post

Shapes

Posted on the January 26th, 2012 under Gadged by

 Shapes

We have new 2D code symbology with absolutely different method of encoding data: we use shape and orientation of elementary figures. Code is very robust, fast and looks interesting icon smile Shapes As usual, reader will be integrated into 2D Sense application for iPhone first. Stay tuned!

Blotcode update

Posted on the January 26th, 2012 under Gadged by

2476485F Blotcode update

Blotcode is here: http://www.blot-code.com/
Reader is built in 2D Sense application available on iPhone App Store. You can generate random code for testing purposes here http://www.imatrix.lt/images/rolls.aspx

SMSNotify for the iPhone 2.0 jailbreak: Make your phone buzz you more than once

Posted on the January 25th, 2012 under Gadged by

3532 SMSNotify for the iPhone 2.0 jailbreak: Make your phone buzz you more than onceOne thing about the iPhone that has annoyed me has been that once it notifies you of an SMS or Voicemail once, it just waits for you to pick it up and look at the home screen.

That’s why I made the original SMSNotify, which scans your SMS database for unread messages, and vibrates your phone periodically when it finds any.

I’m pleased to announce SMSNotify for the iPhone 2.0 firmware, with the following features:

– Now supports voicemail. A voicemail will buzz you twice, an SMS buzzes you three times

– Only buzzes when the phone comes out of sleep, for example, when it checks your e-mail, or checks in with the cell network.

– Full GPL source included in the package install (look in /usr/local/smsnotify).

My good friend Shaun Erickson is doing the package handling, and it is now available for installation via Cydia.

I’m working on a Dock for firmware 2.0 but that’s…

Read the rest of this post