Jiggy 用javascript编写iphone原生程序

Jiggy是一套运行环境,可以用javascript来编写iphone程序.
它通过使用Jigglins将iphone的sdk封装到javascript对象.这样开发者可以用javascript编写程序,界面则和native
的iphone程序一样. Jiggy应用程序运行时会启动一个内部的webserver,通过javascript解释器产生相应的界面.
有意思的是,它的提供了一个基于browser的IDE, 在桌面浏览器中完成开发和调试. (首先在iphone上启动它的运行环境,然后通过你台式机浏览器访问iphone)

个人感觉,这东西非常有前景,极大降低了开发iphone程序的难度,就像当年的vb一样.
由于可以将一些底层的东西用Object-C编写并封装为jiggylins,然后由javascript来调用,可以实现很多不可能的任务.
比如 SpoofApp ,这个东西是基于jiggy的,可以实现伪装电话号码, 来电录音,甚至伪装和改变你的声音,比如男声变女声.
很多是要通过底层操作通讯模块的.

下图是在我的iphone上运行jiggy环境,通过我leopard上的safari进行开发

jiggy.png

iphone自制铃声

首先,在iTunes里将mp3转换成AAC,在Finder显示,将后缀名改为m4r.
然后将铃声复制到iphone里的 /Library/Ringtones/ 下
由于是系统文件,需要使用root权限.
可用scp,不过有更简单的办法,那就是安装
AFP with Bonjour

Bonjour 是非常棒的协议,比ms的即插即用可强多了.

之后,你就可以在finder里的网络里发现iphone了.
链接后可以像操作本地硬盘一样操作iphone,强烈推荐.

可以通过这个源来安装AFP with Bonjour

http://homepage.mac.com/hartsteins/copycoders/copycoders.xml

效果:
10.png

升级iphone到1.1.4的小白鼠经历

最近作了一次小白鼠,将自己的iphone升级到了1.1.4.

由于买时iphone的破解是供货商给作的,版本是1.1.2,不过1.1.4已经出来很久了,总觉得应该升级一下,
对于其中可能出现的问题没有太大的思想准备,毕竟自己也是作开发的,用mac也时间不短了,再说了,正打算要作
iphone的开发, 连系统破解都搞不定,那还怎么混阿.

网上铺天盖地的教材都是windows下的,我则用mac,无法参照. 不过,既然是apple的产品,怎么能没有osx上的
破解工具呢?
很快就找到2个,一个是iNdependence,这是mac专属的,可以在
google code找到,
据说这个是最早完整破解1.1.4的,其作者也是iphone-dev的成员.
另一个是iPlus2.0,这个有windows版本和osx版本, 命令行界面.

我先用的iNdependence,毕竟是纯正的osx应用程序.

114-1.gif

开始了:

1.将iPhone链接上
2.在itunes中点击恢复,询问时点击是否,等待,祈祷不要crash,大概3-5分钟的样子,软件和固件都恢复了,自动reset iphone
3.此时itunes提示iphone没有激活.
4.运行iNdependence 1.4beta5,出现download firmware…时间太长,没有动静,杀死…
5.打开一个终端, 杀死iTunes helper.

6. 重新运行iNdependence,点击Active Phone ,此时在创建RAM DISK时出现了错误:无法释放firmware

图片 1.png

我怀疑是刚才的firmware没有下载完整导致

7.于是,打开用户目录下的资源库下的iTunes下的iPhone Software Updates,找到iPhone1,1_1.1.2_3B48b_Restore.ipsw,一看,果然,才1.4Mb,

图片 2.png

删除,重新点击Active Phone

才是重新出现download firmware的界面:

图片 3.png

下载的速度及其慢,160M阿,何年何月,于是又kill了, 从别的地方下载了1.1.2的firmware,放到刚才目录下,覆盖之.

8.重新运行iNdependence,再次激活:此时可以正确建立RAM DISK,建立完毕,报错:无法进入恢复模式:

图片 5.png

退出,重新运行.

9.再次激活,又出现刚才的错误,不理会,再次点击激活,终于出现了等待Jail break的画面,不过不幸的时,并没有能够进入破解画面,重新强制杀死,再来….
这次直接出现了jailbreak画面, 不过iphone出现了白苹果,然后出现了这个画面:

图片 6.png

不过,很不幸, iNdependence直接又挂了,重新运行
依然….

没有办法,用itunes恢复,重新来一次,仍然异常退出..

我开始怀疑是我的leopard的问题.
于是第二天把另一个小白拿来,这是tiger的系统,
果然,好了.

不过,虽然没有非法推出,并且成功激活,但是在解锁SIM卡的时候,
依然重复了2次,第一次是解锁失败,第二次才成功.

测试了一下,基本上没有问题,不过还没有中文化,无法输入中文,需要作一下中文化.

不过,我对iNdependence并不太满意,毕竟过程太曲折了.
另外,它使用的是1.2的baseband,所以无法支持新的定位功能.

因此,我决定用iPlus重新尝试, iPlus解锁SIM需要将bootloader降级到一个虚拟的
3.9的loader,以后可以重新升级到4.6, 至于baseband仍使用1.4的.

iPlus的安装非常简单,直接运行 ./iplus -u即可:

图片 9.png

iPlus最大的好处是可以自定义安装的东西,它称之为payload,
在其目录下有一个payload.zip文件,将其解压后,可以看到里面的安装包,
通过修改do_payload.sh即可,do_payload.sh是用shell脚本写的,非常简单.
实际上可以将自己需要安装的软件tar一个包放进去,然后增加解压的步骤即可.

iPlus的原始安装是没有中文支持的,所以需要用一个国际版的payload.

不过我发现最后还是有一些问题,所以又手动将一些语言包scp到iphone上.

这些对于unix熟悉的人还是比较简单的.

www.weiphone.com出了WePlus,实际上是一个网友将iPlus的windows的批处理文件汉化了一下,
它的payload.zip应是iPlus巴西版的.

可以从fs2you下载

我将里面的cn_kit.tar和zh_CN.tar scp到iphone,然后揭开后,就可以使用中文包了.

另外.里面的installer的PackageSources.plist还是不错,覆盖到iphone上省得输入了.
(注意是要复制到/var/mobile/Library/Installer/ ,不是root,1.1.4的用户是mobile )

看看iphone的钢化玻璃屏多强大

直接摔落,没事:

匕首也奈何不了:

Pwnage Project -开启破解iphone的新篇章

来自iphone-dev.org的新消息,Pwnage Project已经开始了.这是根据iPhone/iTouch的bootloader的一个漏洞开发的,通过patch,可以允许运行未签名的代码. 因此,一旦被”pwned”,可以直接用iTunes安装你自己定义的.ipsw文件. Pwnage项目包括2个工具:

iPwner – 对iphone打补丁,只需要运行一次
IPSW Buildr – 这个就神了,可以用来创建和修改.ipsw文件系统, 就像Linux光盘一样,你可以自己对.ipsw进行jailbreak,
解锁,激活… 修改后的ipsw可以直接用iTunes恢复和更新…

感谢Apple的SDK.

我有点犹豫,是否需要等待这2个工具?

iPhone样片拍摄测试

今天下午去遛gogle, 发现我的iphone竟然还有wifi链接, 查看了一下,竟然还是我家的,呵呵!
这下我对家里那个老的无限路由真是刮目相看,看来以后遛狗还是有事干的.
突然想到,如果apple的胶囊,岂不是在这个方圆几个楼之间都能访问了?

一直没有用iphone拍过照片,正好测试了一下,模特就是我家gogle啦,光线不太好.

img_0051.JPG
img_0014.JPG
img_0012.JPG
img_0030.JPG

img_0025.JPG

img_0026.JPG

img_0028.JPG

img_0011.JPG

gogle1

Apple终于发布iphone SDK了

今天看到消息,Apple终于发布了传说中的iphone SDK. 老乔没有让大家失望,iphone SDK并没有像传说中的那样不近人情,开发的应用程序推荐在itunes商店下载,但并不禁止使用wifi等自行安装,此外,还设置了奖金.
SDK包括iphone的模拟器,2个g左右,下载是免费的,不过需要先登记一下.同时发布的还有Getting Started Videos, 资料还是蛮丰富的.
看了几个介绍的video,还是比较好懂的. 我准备下载完了试一下.

相关链接:
iPhone Dev Center

Web Apps Dev Center

iphone用的很不错

上周日终于把iphone到手了,这2天回家也很少用mbp,都是在被窝里用iphone.我装了一个terminalV,基本上可以在终端上操作一切,
包括ssh到视觉服务器上维护.看来以后可以不用背mbp回家了.
机器是从小白的朋友那买的,版本是1.1.2,预先给我装了一些软件.回家后首先是熟悉了下,操作,一个,爽,2个 巨爽,再来一个,真tmd爽,呵呵.

和所有的新手一样,首先是用installer装了一些乱七八糟的软件,游戏之类. 虽说是新手,不过咱用了那么长时间的tiger,leopard,linux之类的,和那些菜鸟还是不一样的. iphone实际上是一个精简后的leopard,所以很多系统的布局和配置基本上和我mbp一样的.
让我惊喜的是,vim还能用,呵呵. 我用iterm ssh到iphone上,就可以用vim直接修改各种配置文件了.其实都是各种plist文件啦,easy.
另外,邮件,联系人用的数据库是sqlite3. 由于是osx的内核,所以可以在iphone上运行php, lighttpd等. 不过似乎没有nginx,
有空的时候编译一个. 此外,ruby,python,perl这些都是可以正常跑的,默认用的是zsh,不过bash也有. 后面有些兴趣自己写点iphone上跑的东西,可以用ruby,python直接写gui的(这是今天在ADC上看到的介绍文章).

今天下班前,给菁菁演示的时候出现问题,后来终于出现传说中的白苹果,屏幕疯狂的闪,我猜测应该是screenshot这个截屏软件弄的.
回家后,ssh到了iphone上, 杀死了那个进程. reboot一下就好了.呵呵,如果wifi好用,可以ssh上去, 输入reboot就重启了,不用按键.

检查了一下iphone的分区,挂载了2个分区,都是hfs格式,一个是 / ,另一个是/var/private,后者是存放用户数据了.
我发现 / 只有不到5m的空间了,难怪安装程序的时候有时提示空间不够呢.
很好办,

mkdir /var/Applications

cp -r /Applications/* /var/Applicaitons/

mv /Applicaitons /Applications.bak
ln -s /private/var/Applicaitons /Applications

reboot

这时会重启,然后重新ssh:

ssh root@192.168.1.104 (这是给iphone分配的ip)

rm -rf /Applicaiton.bak

现在可以放心安装程序了.

对了,要备份邮件,SMS这些数据,只要备份 ~/Library

我是:

cd ~

tar jcvf iphone-data.tar.bz2 Library/*

然后将iphone-data.tar.bz2复制到笔记本里备份.

主要是SMS,其他的到可以和itunes同步的.

本来打算今天自己做个小白鼠,升级到1.1.4,不过下载速度太慢,明天再说了.