日曜日, 8月 22, 2010
水曜日, 8月 18, 2010
土曜日, 8月 14, 2010
iPhoneのpdf脆弱性パッチ
APPLEからその脆弱性を修正するパッチとしてiOS4.0.2がリリースされました。
しかしながらすでにJailbreakしていて脱獄状態をキープしたい人には、その脆弱性が他の攻撃のリスクとなってしまいます。
そう思っていたら、Cydiaの作者のSaurik氏(Jay Freeman)がCydia上で脆弱性を修正するパッケージをリリースしてくれました。
「PDF Patch」というパッケージをCydiaからインストールすれば脆弱性を修正できるようです。
参考:
iPhoneが乗っ取られるリスク、「Gumblar攻撃」の併用で具現化する恐れ
日曜日, 8月 08, 2010
iPhoneでFlash
これはAndroid用のFlashプラグインをiPhone上で使用して動かしてしまおう的なプロジェクトのようです。
プロジェクトのページにはソースコードとビルドの方法が載っていますが、自分で全部設定するのは面倒だなぁ…と思っていたら、同じように思っていた人がインストールパッケージを作ってくれたようです。
これをダウンロードし、sshもしくはMobileTerminal上でroot権限で「dpkg -i Frash-0.02.deb」とすればインストールされるので、再起動。
これでFlashを含むページを開くとその部分に「Flash」と表示されるので、それをクリックすると…。
まだまだ不安定ですが、それでも今まで見れなかったページが見られるのは楽しいですね。
不安定なのでmoyashiさんのrepository(http://hitoriblog.com/apt/)から「Fash Toggle」をインストールしておくとOn/Offの切り替えがSBSettingsから出来て便利です。
あくまで At your own risk で。
日曜日, 8月 01, 2010
iPhone3GS単体でOpenGLアプリを開発
(但し環境構築にはMacが必要になります)
今回試した環境:
・iPhone3GS 3.1.3
・MacBook Air(初代) SnowLeopard 10.6.4
・XCode 3.2.2
・iPhone SDK 3.2 final
・PwnageTool 4.01
手順:
(1) まずはiPhone3GS 3.1.3をPwnageToolもしくはそれに準じるものでJailbreakする。
この辺りの詳しいやり方はGoogleで探してください。
(2) JailbreakしたiPhone3GSのCydiaから以下のパッケージをインストール。
・MobileTerminal
・OpenSSH
・SBSettings (必須ではないが便利なので)
・APT関連
まずはMobileTerminalを入れて起動し、mobileアカウントとrootアカウントのパスワードを変更します。最近はiPhoneを狙ったウィルスが蔓延しはじめているので、注意しておく必要があります。パスワードの変更方法は「passwd」コマンドで。やり方が分からない場合はGoogleにて。
次にOpenSSHを入れsshdを有効にします。(インストールして再起動すれば有効になります。画面上部の時計の辺りをこすって出現するSBSettingsから簡単に有効・無効の切り替えができます)
(3) 次のリンクにあるシェルスクリプトhttp://rpetri.ch/toolchainをiPhone SDKのインストール場所に保存し、それをMac OSX上で実行します。
実行すると自動的にiPhone SDKの内容をiPhone実機にsshを経由してコピーし、更にiPhone上でスクリプトの続きを実行します。その際にiPhone上で必要なパッケージもaptを使用して自動的にインストールされます。
(4) iPhoneをMacに接続し、OpenGL ESの簡単なサンプルをビルドおよび実機で実行する。
一度はiPhone実機でOpenGLプログラムを実行できるようにしておく必要があります。実行が出来たら、そのプロジェクトをそのまま全てtarなりzipなりで圧縮し、iPhoneに転送します。
(5) iPhoneで先ほどのプロジェクトを解凍し、環境に合わせて以下のMakefileを手直ししてください。
#-----------------------------------------------------------------
# Makefile for gcc compiler for iPhone
PROJECTNAME=ogltest1
APPFOLDER=$(PROJECTNAME).app
INSTALLFOLDER=$(PROJECTNAME).app
SDK=/var/sdk
CC=arm-apple-darwin9-gcc
LD=$(CC)
LDFLAGS = -arch arm -lobjc
LDFLAGS += -framework CoreFoundation
LDFLAGS += -framework Foundation
LDFLAGS += -framework UIKit
LDFLAGS += -framework OpenGLES
LDFLAGS += -framework QuartzCore
LDFLAGS += -framework CoreGraphics
LDFLAGS += -framework GraphicsServices
LDFLAGS += -framework CoreSurface
LDFLAGS += -L"$(SDK)/usr/lib"
LDFLAGS += -F"$(SDK)/System/Library/Frameworks"
LDFLAGS += -F"$(SDK)/System/Library/PrivateFrameworks"
LDFLAGS += -bind_at_load
LDFLAGS += -multiply_defined suppress
CFLAGS = -I"$(SDK)/usr/include"
CFLAGS += -I"/usr/include"
CFLAGS += -F"$(SDK)/System/Library/Frameworks"
CFLAGS += -F"$(SDK)/System/Library/PrivateFrameworks"
#CFLAGS += -DDEBUG -O3 -Wall -std=c99 -funroll-loops
CFLAGS += -DDEBUG -Wall -std=c99
CFLAGS += -DMAC_OS_X_VERSION_MAX_ALLOWED=1050
BUILDDIR=./build/3.1.3
SRCDIR=./Classes
RESDIR=./Resources
OBJS=$(patsubst %.m,%.o,$(wildcard $(SRCDIR)/*.m))
OBJS+=$(patsubst %.c,%.o,$(wildcard $(SRCDIR)/*.c))
OBJS+=$(patsubst %.cpp,%.o,$(wildcard $(SRCDIR)/*.cpp))
RESOURCES=$(wildcard $(RESDIR)/*)
all: dist
$(PROJECTNAME): $(OBJS) $(LD) $(LDFLAGS) -o $@ $^
%.o: %.m $(CC) -c $(CFLAGS) $< -o $@
%.o: %.c $(CC) -c $(CFLAGS) $< -o $@
%.o: %.cpp $(CC) -c $(CPPFLAGS) $< -o $@
dist: $(PROJECTNAME)
/bin/rm -rf $(BUILDDIR)
/bin/mkdir -p $(BUILDDIR)/$(APPFOLDER)
/bin/cp $(RESDIR)/* $(BUILDDIR)/$(APPFOLDER)
/bin/cp Info.plist $(BUILDDIR)/$(APPFOLDER)/Info.plist
@echo "APPL????" > $(BUILDDIR)/$(APPFOLDER)/PkgInfo
/usr/bin/ldid -S $(PROJECTNAME)
/bin/cp $(PROJECTNAME) $(BUILDDIR)/$(APPFOLDER)
/bin/cp ogltest1 ~/Applications/XXXXXXXX-YYYY-ZZZZ-B2C7-C7D6C8AC127E/ogltest1.app/
/bin/cp Shaders/* ~/Applications/XXXXXXXX-YYYY-ZZZZ-B2C7-C7D6C8AC127E/ogltest1.app/
install: dist
#/bin/cp -r $(BUILDDIR)/$(APPFOLDER) /Applications/$(INSTALLFOLDER)
@echo "Application $(INSTALLFOLDER) installed"
killall SpringBoard
clean:
@rm -f $(SRCDIR)/*.o
@rm -rf $(BUILDDIR)
@rm -f $(PROJECTNAME)
#-----------------------------------------------------------------
MakefileなのでスペースをTABにする必要があるところは修正してください。
なお上記の「~/Applocations/XXXX.../ogltest1.app/」の部分がXCodeで作った際に出来たアプリケーションのディレクトリです。sshでログインし、この例でのプロジェクト名である「ogltest1」を「~/Applications」以下で検索(find)すれば見つかります。
これでiPhone上でソースを変更しmakeすれば、通常のホーム画面から実行ができます。
ちょっとしたプログラムでしたら、iPhoneのみで検証が出来ます。実際はエディタの関係でPCかMacが必要になりますが…。
※記憶を頼りに書いたので、不足している手順があるかも知れません。
<参考>
・http://blog.aaronash.com/?p=15
PCを新調
昔働いていた頃は16Coreのマシンを家で使える日が来るとは想像も出来なかったな。当時は128Mバイトのメモリボードを1000万円くらいで売ってた気がするが今や128GBが5万円ちょっと。容量1000倍で価格は200分の1とは隔世の感があるな。
-
ボクの場合、携帯で良く使う機能といえば通話よりメールです。しかしながらW880iはキャリアの端末では無いので、所謂i-modeメールなどの日本のキャリアのメールサービスは使用出来ません。そこでJ2ME/MIDP2.0版のGMailモバイルアプリを試してみました。GMailは携帯の...
-
久しぶりに趣味のプログラミングをしてみようかと思いたってDojaの仕様を見てみました。以前見た時はメガデモ系のプログラムを作るには仕様上不足している機能があるので諦めていたのですが、 Doja-3.5辺りから必要と思われる機能は一通り入っているようです。(まだ使いにくいところがあ...