Tuesday, October 23, 2007

Back From The Dead

Okay so i was a bit on/off the past month, but i'm back.

Since we are here to learn new stuff (including me of course), I would like to start developing some IPhone application.
If you got any ideas for cool applications please drop me a note (or comment).

I would like to do it here, step by step so everyone could learn how to build their own applications using Objective C.

Lets begin by Installing the Tool Chain environment, we will use it to compile our programs.

I recommend this site -> http://iphonedevdocs.com/
It has extensive information regarding the IPhone framework API's and Tool Chain installation.

We will use this information to build our programs.

With Creativity, Innovation and Understanding, WE WILL learn new stuff (because this is what it's all about)!

Wednesday, September 19, 2007

International Keyboard? Next Firmware update.

Engadget posted some exciting news yesterday, seems like the UK version of the IPhone will
support international keyboard.

We heard some rumors but here are some PoC pics :)

http://www.engadget.com/gallery/o2-uk-iphone-gallery

Check it out.

Will be very interesting to disassemble the new firmware and see if they pushed any anti-unlock techniques inside.

Thanks Marc.

Monday, September 17, 2007

Updates.

Okay so first of all.. i'm not dead...

I decided to drop the posting and focus on the real deal.

I saw some nice implementation of Hebrew / Germen / Russian keyboards in some forums.. i think it's nice but that's not what i'm trying to do.

You see.. what they did is edit some files inside the applications such as:

Localizable.strings - That holds the Application Strings & Keys.
You can find it in each application under /Application/$APPNAME/#.lproj/

But what happens when a new application is added? it will be in English.. and then again.. change the strings.. that's a never-ending story.


I'm trying to add Full Hebrew Pack into the device.

I'm reading alot about bidi algorithm and i'm writing the code to implement it inside the device, once finished, hopefully everything will be hebrew (in a touch of a button).

Also learning how to play with the UIKit so you can change from Hebrew/English with a nudge (like in the photos).

Anyway.. if you have any good information regarding the keyboard implementation / bidi algorithm that you would like to share, drop me a comment.

I'm also working on a hebrew guide on how to unlock your iphone with detailed steps and technical information.

Let me know if you would like me to post some techincal information including code snippets from the Unlock Kit.. I think it's important to understand what the Dev Team did.



- T

Saturday, September 15, 2007

Edit The Fonts.

I got some people asking me about how to add/edit fonts.

Here are 2 examples:

This one uses FontLab with the Arieluni.ttf
(Get it from http://ipwn.googlecode.com) - Avner Peled

1) Download FontLab (Google..).

2) Open arialuni from /System/Library/Fonts/Cache (11mb)

3) Navigate to the where the hebrew charset begins (Hex offset - 0590-05FF).

4) See how it's gray in the small one and white in the big one.

5) Copy and paste from the big white to the small gray.
you'll have to do this in parts (every time until the break - you see the break as an empty square on fontlab).

6) Save the new font - it won't let you because there are too many characters.


7) delete like 10,000 chinese characters - just scroll down, you will see the chinese chars (the one's that you dont understand.. :) )

8) Save the font.

9) Upload Back to the same Directory.


Thanks Avner.

------------------


Since some people dont like ariel and having some issues with it, Marc Rosen suggested adding hebrew support to different fonts such as Helvetica.ttf using FontForge.

Like this:


1) Build and install a font editor like fontforge.

2) Make a copy of the font you want to mess with like Helvetica.ttf
(copied from /System/Library/Fonts/Cache)

3) Find the start of the unicode font range for your language, for Hebrew it starts at hex code/offset 0x0590 fontforge shows you the expected glyphs for each range.

4) Cut and pasted Hebrew characters from another font file, and paste them into Helvetica.ttf

5) Save the font by using the Generate font option from the filemenu in fontforge (generate as ttf and with a new file name).

6) Move the new file to the iPhone and the mail program now displays Hebrew.


Thanks Marc.

UIKit Disassembly

I was having some hard time adding support for ARM11 on IDA, but after patching macho.ldw everything works cool.

I fire up IDA in order to find where the strings are saved, because they are at random places.



I found the strings that i already patched, it's a nice table that holds some letters & signs, i will keep looking for more.


I had a comment asking how to change the font size, you can do it like so:


1) Backup UIKit.


2) Open in HexEdit.


3) Jump to address 0x323F7E50.


Change this:


F0 40 2D E9 00 40 A0 E1 34 50 90 E5 34 20 80 E5


To This:


F0 40 2D E9 00 40 A0 E1 38 50 90 E5 38 20 80 E5


_UITextField_setFont

__UITextField_setFont_fullFontSize__

Right to Left.

I just got an interesting link regarding the right to left unicode.

http://www.fileformat.info/info/unicode/char/202e/index.htm

Lets try.. results soon..

Thanks Avner.

Hebrew is a hard language.


In the past few hours i decided to focus on finding the missing chars, i've covered 10 so far.


A,G,B,C,R,T,O,P,Z,X - And replaced them with Alef - Yod.


I think not all of them are listed in the UIKit binary file.
I'll give it a few more hours if not, i'll need to debug this baby.
I'm working on a tool that will patch all of the location i found so far... i'm adding more and more... as soon as i finish finding them all, i will release it for beta testing.