« August 2008 | Main | October 2008 »

2008.09.28

[iPhone]Cydiaに登録するdebパッケージを作る手順(最低限版)

ほとんどのちなさんに対する私信ですが。
gtxtEditJplusを例に取って、Cydia用のdebパッケージの作り方の手記を置いときます。

のちなさんの母艦はWindowsとのことなので、iPhone/iPod touch上で作業するという前提の説明です。

Packagesファイルの作り方を含む完全な情報はSaurik氏のページのこちらに。
自分のやり方は、かなりはしょっているので念のため。

How to Host a Cydia Repository

まずは、動くアプリケーションを作る。

iPhone/iPod touch(以下iPhoneとする)にrootユーザとしてSSHでログインし、/var/root/に掘ったaptディレクトリへ移動して、パッケージの名前になるディレクトリ、com.gojohnnyboi.gtxteditjpuls_0.9-1_darwin-armを掘る。

# cd
# mkdir apt
# cd apt
# mkdir com.gojohnnyboi.gtxteditjpuls_0.9-1_darwin-arm

com.gojohnnyboi.gtxteditjpuls_0.9-1_darwin-arm内に移動して、インストールする必要のあるファイルをルートからの構造を再現するようにコピーする。

# cd com.gojohnnyboi.gtxteditjpuls_0.9-1_darwin-arm
# mkdir Applications
# cp -r /Applications/gTxtEditJplus.app/ Applications/

母艦がMacの場合は、.DS_Storeを掃除しておく。(下記はカレントディレクトリ以下にある.DS_Storeを再帰的に削除)

# find . -name .DS_Store -print -exec rm {} ";"

必要なパーミッションが外れてたら付けておく。

# cd Applications/gTxtEditJplus.app/
# ls -l
total 80
-rw-r--r-- 1 root wheel   877 Sep 28 19:38 Info.plist
-rwxr-xr-x 1 root wheel 58048 Sep 28 19:38 gTxtEditJplus*
-rwxr-xr-x 1 root wheel    60 Sep 28 19:38 gTxtEditJplus_exec*
-rw-r--r-- 1 root wheel 10631 Sep 28 19:38 icon.png
# chmod u+s gTxtEditJplus gTxtEditJplus_exec
# ls -l
total 80
-rw-r--r-- 1 root wheel   877 Sep 28 19:38 Info.plist
-rwsr-xr-x 1 root wheel 58048 Sep 28 19:38 gTxtEditJplus*
-rwsr-xr-x 1 root wheel    60 Sep 28 19:38 gTxtEditJplus_exec*
-rw-r--r-- 1 root wheel 10631 Sep 28 19:38 icon.png

com.gojohnnyboi.gtxteditjpuls_0.9-1_darwin-arm直下にDEBIANディレクトリを掘る。
controlファイルを作る。

cd ../../
mkdir DEBIAN
vi DEBIAN/control

内容はこんな感じ。

Package: com.gojohnnyboi.gtxteditjpuls
Name: gTxtEditJplus
Version: 0.9-1
Architecture: iphoneos-arm
Description: Copy & paste oriented text editor for Japanese.
 Once copy text on this app, paste anywhere via Japanese input method.
 gTxtEditJplus enable you to...
 Paste from Safari, Paste to Safari with modified iCopy bookmarklet.
 Make new mail message from clipboard, and so on.
 For details, please visit the following website.
Homepage: http://www.hamkumas.net/ipod/
Maintainer: moyashi <hitoriblog_NO_NO_SPAM@gmail.com>
Author: nochina <nochina_NO_NO_SPAM@hamkumas.net>
Section: System
Depends:
Conflicts:

Versionは、「アプリケーションのバージョン番号-パッケージのバージョン番号」と付ける。
パッケージをやり直したら「0.9-2」などとなっていく。
Descriptionの2行目以降は行頭にスペースを入れる。
Dependsにインストールを前提にしたいパッケージ名をカンマ区切りで書いておくと、もしインストールされていなかった場合に事前にインストールをしてくれる。
同時に存在できないパッケージがあるならば、項目Conflictsにパッケージ名を書いておくと警告が出て、トラブルを回避できる。
Name, Author, HomepageはCydia独自の項目。

ゴミが出来てたら消しておく。

# ls DEBIAN
control control~
# rm DEBIAN/control~

com.gojohnnyboi.gtxteditjpuls_0.9-1_darwin-armのあるディレクトリに移動して、パッケージ作成。
この際、tab補完すると、末尾に「dpkg-deb -b com.gojohnnyboi.gtxteditjpuls_0.9-1_darwin-arm/」といった感じで「/」が入るので、これは削除して実行。
非標準の項目(Name, Author, Homepage)が交じっているという内容のWarningが出るが無視。

# cd ..
# dpkg-deb -b com.gojohnnyboi.gtxteditjpuls_0.9-1_darwin-arm
# ls
com.gojohnnyboi.gtxteditjpuls_0.9-1_darwin-arm/
com.gojohnnyboi.gtxteditjpuls_0.9-1_darwin-arm.deb

debパッケージが出来ているはずなので、既にアプリケーションがあれば削除して、インストールテストする。

手動でインストールしていた場合。

# rm -rf /Applications/gTxtEditJplus.app

前回もdebパッケージから入れていた場合。
controlに書いた「Package: com.gojohnnyboi.gtxteditjpuls」が識別子になる。

# apt-get remove com.gojohnnyboi.gtxteditjpuls

SpringBoardのキャッシュをリフレッシュして、respring。

# su mobile
$ uicache
$ restart
$ exit

パッケージのインストールテスト。

# dpkg -i com.gojohnnyboi.gtxteditjpuls_0.9-1_darwin-arm.deb
# su mobile
$ uicache
$ restart

これで正常にインストールされていればdebパッケージの完成。

その他の知識

debパッケージの解凍方法。
-xでインストールするファイルの解凍、-eで管理ファイルの解凍。

# mkdir temp
# dpkg-deb -x com.gojohnnyboi.gtxteditjpuls_0.9-1_darwin-arm.deb temp
# dpkg-deb -e com.gojohnnyboi.gtxteditjpuls_0.9-1_darwin-arm.deb temp

今回題材にしたdebパッケージへの直リン
http://homepage3.nifty.com/moyashi/cydia/com.gojohnnyboi.gtxteditjpuls_0.9-1_darwin-arm.deb

|

[iPhone]コピー&ペースト機能搭載テキストエディタgTxtEditJplus

開発終了のため、公開停止しました。再配布はしないように願います。(2010.05.30)

iPhone OS 2.0以降を搭載したiPhone / iPod touchで動作するテキストエディタ、gTxtEditの改変版であり、日本語のエンコーディング自動判定対応、さらに強力なコピー&ペースト機能を搭載したgTxtEditJplusを、J.O.R.7ちゃんでおなじみ「のちな(nochina)」さんがお作りになったので、Cydiaの野良リポジトリに登録しておきました。

gTxtEditJplusは、

  • CydiaのMobileFinder(App StoreにあるMobileFinderとは別です)との連動機能を搭載しgTxtEditJplusでファイルを開ける
  • gTxtEditJplus中でコピーしたテキストを、どこにでも(Safariにも、メモにも、メールにも、マップにも、どこにでも!!)ペーストが可能(例の履歴機能を利用)
  • 改変版iCopyといっしょに使うことで、Safariからのコピーが可能

などという感じで、ワルな仕上がりになっています。
詳細については、のちなさんのサイトをご覧ください。

■iPod touchを、音楽プレイヤーよりもPDAよりも、PCとして使うという心意気でがんばる■

インストールは、こちらのエントリを見て僕が管理しているCydiaのリポジトリを登録し、SBankNotify同様、検索画面から「gtxteditjplus」と入力して見つけてください。カテゴリ的には「System」に入っています。

余談: ときに、Cydiaの「Changes」の上の方に表示させるにはどうしたらよいんですかね。

MobileFinderとの連携方法

ファイルを選択した後で「Modify」→「Open With」→「gTxtEditJplus」とすることで、MobileFinderからgTxtEditJplusにファイルを開かせることができます。

あるいは次のような方法があります。
MobileFinderの「Setting」を、以下のことを注意しながら設定します。

【Cydia】JailBreak Part7【Installer】
http://pc11.2ch.net/test/read.cgi/iPhone/1221958667/417

MobileFinder上で作業してね 1.まずcom.googlecode.MobileFinder.plistのパーミッションを755に 2.その後設定をいじる 3.終了時にホームボタン長押しかsettingsからClose

終了の時にホームボタンちょこっと押して終了すると1からやり直さないと設定を保存できません
めんどくせえw

「File Associations」の「txt:com.google.MobileTextEdit」を、「txt:com.gojohnnyboi.gtxteditjplus」に書き替えます。
「Finder」ボタンで設定画面を抜けます。ホームボタン長押しでMobileFinderを終了。

以降、MobileFinder上で拡張子txtのファイルをタップするとgTxtEditJplusで開けるようになります。
ただし、一度でも終了方法を間違えると設定が初期化されてしまいます。
いっそのこと、gTxtEditJplusのInfo.plistをいじって、Bundle Identifierの方を「com.google.MobileTextEdit」に書き替えてしまった方がいいかも……。

実際のアプリケーション間コピー&ペーストの流れ

Gtxteditjplus_0002
▲Safariで表示中のテキストをコピーしてみます。

Gtxteditjplus_0003
▲Safariのブックマークに登録したブックマークレット、iCopy改変版を起動。

Gtxteditjplus_0004
▲「Copy Text」を選択。

Gtxteditjplus_0005_2
▲コピーしたい文章が書かれた段落を選択します。すると、新しいウィンドウが開いて処理をした後、終了します。

Gtxteditjplus_0006
▲gTxtEditJplusを起動します。

Gtxteditjplus_0007
▲「Copy」ボタンを押し、「Paste」を選択。

Gtxteditjplus_0008
▲Safariでコピーしたテキストが貼れました。

Gtxteditjplus_0015
▲効果が分かりやすいよう改行を入れる編集を施しました。コピーを開始したいテキストの開始位置にカーソルを置き、「Copy」→「NewSelection」を選択、さらに終了位置にカーソルを置き……。

Gtxteditjplus_0016
▲「Copy」→「Copy」。Homeボタンを押してgTxtEditJplusを終了。

Gtxteditjplus_0017
▲SMSを起動して、日本語QWERTYモードにし、「p-」とタイプ、すると、候補にさきほどgTxtEditJplusでコピーしたテキストが登録されています。

Gtxteditjplus_0018
▲確定すればペーストされます。改行も残っています。

Gtxteditjplus_0019
▲「メモ」でも、

Gtxteditjplus_0020
▲2tchの書き込みフォームでもペーストできます。

|

2008.09.26

[iPhone]簡易単語登録ツールJPDicMan Ver.0.0.0.2

開発終了のため、公開停止しました。再配布はしないように願います。(2010.05.30)

iPhone OS 2.1の日本語入力のための辞書に、テキストファイルに書いた単語リストから一括登録するユーティリティをバージョンアップしました。

改行を含む単語が登録できるようになりました。

まだGUIは付けてませんが、BossPrefs.appから起動する設定ファイルを用意しました。詳しくは以下で。

[iPhone]簡易単語登録ツールJPDicMan

Jpdicman_0001

改行を含む単語も登録できます。
「お世話になっております。\n品川商事の山田です。\n」という単語を登録すると、

Jpdicman_0002

こんな感じで、改行が挿入されます。

Jpdicman_0003

JIS罫線なんかを無理矢理登録。

Jpdicman_0004

等幅ではないので崩れますが。
AAも貼れますね。

Jpdicman_0005

|

2008.09.25

[iPhone]簡易単語登録ツールJPDicMan

開発終了のため、公開停止しました。再配布はしないように願います。(2010.05.30)

iPhone OS 2.1になってから、日本語入力のための辞書登録ができなくなってしまったので、テキストファイルに書いた単語リストから履歴ファイルに一括登録するユーティリティを作ってみました。

履歴ファイルの内容は残したままマージします。

今のところBossPrefsから実行する形を取っており、Cydiaにも登録してませんので、分かる人だけ使ってください。

Jpdicman_0001

改行を含む単語も登録できます。
「お世話になっております。\n品川商事の山田です。\n」という単語を登録すると、

Jpdicman_0002

こんな感じで、改行が挿入されます。

Jpdicman_0003

JIS罫線なんかを無理矢理登録。

Jpdicman_0004

等幅ではないので崩れますが。
AAも貼れますね。

Jpdicman_0005

なぜ「簡易」なのかは説明を読んでください。

ダウンロード

「JPDicMan-0.0.0.2.tar.gz」をダウンロード

説明

JPDicMan Ver.0.0.0.2

2008.09.26

Author: moyashi
Blog: http://moyashi.air-nifty.com/

■履歴

2008.09.26 Ver.0.0.0.2: 改行入りの単語を登録できるように
2008.09.25 Ver.0.0.0.1: 初版

■免責:

このソフトウェアは完全に無保証です。

■概要:

iPhone OS 2.1用の簡易辞書登録コマンドです。
Jailbreak済みのiPhone上で動作します。

■インストール:

BossPrefs.appから起動するようにしたので、BossPrefs.appをインストールしておいてください。

サイズの大きい方の「JPDicMan」を「/Applications/BossPrefs.app/」へ
もう一つの「JPDicMan」を「/Applications/BossPrefs.app/services」へ
「wordslist.txt」を「/var/mobile/Documents/」にコピーしてください。

Windowsの方は、「/Applications/BossPrefs.app/JPDicMan」に実行権を付けてください。

# chmod +x /Applications/BossPrefs.app/JPDicMan

■使い方:

JPDicManのスイッチをBossPrefsからONにしてください。
スイッチをONにはしますが、常駐などはしません。
JPDicManが一度実行されるだけです。

■効能:

実行すると「/var/mobile/Documents/wordslist.txt」から単語リストを読み込
んで、履歴ファイルである、
「/private/var/mobile/Library/Keyboard/Lexierra_ja_JP-dynamic-text.dat」
に追加します。次の瞬間から、単語リストの単語を変換できるようになります。

JPDicManで追加した単語は除外した上で追加しますので、何度実行しても重複
登録されることはありません。

■注意点:

「/private/var/mobile/Library/Keyboard/Lexierra_ja_JP-dynamic-text.dat」
は、リブート時などに199エントリに整理されてしまいます。199以上エントリ
があった場合には、古い方から消えてしまいます。

登録した単語が消えてしまった場合は、JPDicManを実行し直す必要があります。
要するに再起動毎に実行し直す必要があるわけです。

動作が変になったら、
「/private/var/mobile/Library/Keyboard/Lexierra_ja_JP-dynamic-text.dat」
を一度削除してください。

■「wordslist.txt」について:

「wordslist.txt」のエンコーディングは、UTF-8のみ有効です。
改行コードは何でも構いません。ただし、複数の改行コードが交じらないようにしてください。
ファイル形式は、

単語<タブ>よみ
単語<タブ>よみ
単語<タブ>よみ

(<タブ>は実際には1個のタブ文字)です。
複数タブが入るとダメなので注意してください。

改行入りの単語を登録できます。その場合は、
改行位置に「\n」と入力してください。

1行目\n2行目<タブ>よみ

■予定:

GUIを作ってますが、アホなので時間がかかります。


|

2008.09.01

[iPhone]slirp関連URL

自分の情報収集と整理のためにslirp関係のURL等を貼ってみるテスト。

iPhone OS 1.1.x時代はwickedpsyched.comのcoreさんがコンパイルしたslirpが使われていた。

しかし、iPhone OS 2.0では、1.1.x用にコンパイルされたバイナリが動かないので、2.0対応のslirpが渇望される。Rent A CoderにslirpをiPhone OS 2.0向けにコンパイルしてっていう依頼が出てたが、消えてるみたい。

2008年8月に入ってからsaurik氏によってCydiaのiPhone OS 2.0向けリポジトリに一瞬slirpが登録されたものの、起動しないものだったためすぐに下げられた。

8月下旬になって動くものに差し替えらえて再登録。「-3」なので2回パッケージのバージョンが上がってるのかな。←イマココ

母艦はMac OS X Leopardですが、うまく動かせてません。
フォーラム等でもまだiPhone OS 2.0になってからの成功報告は出てないですね。

何か情報があったら教えてください。

■解説サイト(配布物同梱のslirpは1.1.x用)

http://www.nsgn.net/better_iphone_tethering/

■以下slirp over SSHの話題があるフォーラム等

9月15日追加。やっぱり同じこと書いてますね。
http://www.austech.info/mobile-phones/10665-iphone-3g-tethering-slirp-pppd.html

http://forum.theiphoneblog.com/jailbreaking-hackery-jailbroken-apps/166287-hit-snag-slirp-tethering.html

http://tom.scholten.nu/weblog/iphone/modemproxy-usage

http://www.jole.fi/blog/2008/07/19/Using--the-first-generation--iPhone-as-modem.html

http://landonf.bikemonkey.org/static/iphone/slirp/

http://forum.insanelymac.com/index.php?showtopic=63799

http://www.modmyifone.com/forums/general-iphone-chat/312591-leopard-3g-iphone-tethering-slirp-pppd.html

http://www.modmyifone.com/forums/native-iphone-ipod-touch-app-discussion/104561-successful-tether-dns.html

■cotty

cottyを使う手法もあるらしい

http://freshmeat.net/projects/cotty/

|

« August 2008 | Main | October 2008 »