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进行开发
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
升级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应用程序.

开始了:
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

我怀疑是刚才的firmware没有下载完整导致
7.于是,打开用户目录下的资源库下的iTunes下的iPhone Software Updates,找到iPhone1,1_1.1.2_3B48b_Restore.ipsw,一看,果然,才1.4Mb,

删除,重新点击Active Phone
才是重新出现download firmware的界面:

下载的速度及其慢,160M阿,何年何月,于是又kill了, 从别的地方下载了1.1.2的firmware,放到刚才目录下,覆盖之.
8.重新运行iNdependence,再次激活:此时可以正确建立RAM DISK,建立完毕,报错:无法进入恢复模式:

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

不过,很不幸, 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即可:

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巴西版的.
我将里面的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啦,光线不太好.
Apple终于发布iphone SDK了
今天看到消息,Apple终于发布了传说中的iphone SDK. 老乔没有让大家失望,iphone SDK并没有像传说中的那样不近人情,开发的应用程序推荐在itunes商店下载,但并不禁止使用wifi等自行安装,此外,还设置了奖金.
SDK包括iphone的模拟器,2个g左右,下载是免费的,不过需要先登记一下.同时发布的还有Getting Started Videos, 资料还是蛮丰富的.
看了几个介绍的video,还是比较好懂的. 我准备下载完了试一下.
相关链接:
iPhone 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,不过下载速度太慢,明天再说了.