水曜日, 8月 18, 2010

VILIV N5 VS BXシリーズ

ONKYOのBXを購入したばかりだが、メモリ1GBを搭載したVILIV N5が発売された。

BXとの比較をした動画:

土曜日, 8月 14, 2010

iPhoneのpdf脆弱性パッチ

サイトにアクセスするだけでiPhoneを脱獄させるJailbreakMe.comサイトでは、iPhoneに潜在的に存在していたpdfの脆弱性が利用されたようです。

APPLEからその脆弱性を修正するパッチとしてiOS4.0.2がリリースされました。

しかしながらすでにJailbreakしていて脱獄状態をキープしたい人には、その脆弱性が他の攻撃のリスクとなってしまいます。

そう思っていたら、Cydiaの作者のSaurik氏(Jay Freeman)がCydia上で脆弱性を修正するパッケージをリリースしてくれました。

「PDF Patch」というパッケージをCydiaからインストールすれば脆弱性を修正できるようです。

参考:
iPhoneが乗っ取られるリスク、「Gumblar攻撃」の併用で具現化する恐れ

日曜日, 8月 08, 2010

iPhoneでFlash

FlashをiPhoneに搭載させるかどうかでSteve JobsとAdobeで色々とやっていますが、そんなことは全く無視してiPhone4用のJailbreakツールを先日リリースしたcomexが「Frash」というプロジェクトを進めています。

これは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アプリを開発

iPhone4移行に伴って余ったiPhone3GSをMacの代わりの簡易開発マシンにしてみました。
(但し環境構築には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とは隔世の感があるな。