2007年7月27日金曜日

[TX]禁断のカスタムROMの作成

まえから、1srcで他人の押し付けROMが出回っていたのは知っていたが、Treo650みたいに自由度がないのと、日本語化ソフトをいれれないので、あまり意味がないと敬遠してきましたが、どうも、自由度は高くないがある程度のカスタマイズが可能になった感じ。

http://www.1src.com/forums/showthread.php?t=112779&page=17&pp=15

で、早速やってみた!(^^;
以下俺流の独り言、真似してどうなっても自己責任!

・ROMツールダウンロードする。
http://palmtx.da.ru/system/TXUpdate.zip

・解凍して、Cドライブのルートにコピー
C:\TXUpdate

・dmitrygrさんのカスタムROMをダウンロードする。
http://www.palmpowerups.com/file/TX2.ROM.zip?uniq=56

・ワークディレクトリを適当に作って解凍
C:\Work\Palm

・純正ROM(Wifiのセキュリティアップデート用)をダウンロードする。(有料!$5.99)
Wi-Fi Enterprise Security Update for the Palm® TX handheld

・さっき作ったワークディレクトリに解凍
C:\Work\TX_Security_Upgrade

・C:\Work\Palm\TXUpdate内の
overflow.zip.a.pdb
overflow.zip.b.pdb
overflow.zip.c.pdb
overflow.zip.d.pdb
overflow.zip.e.pdb
を、C:\TXUpdate\Inputにコピー。

・ファイル抽出
コマンドプロンプトをあげる。
>c:\
>cd C:\TXUpdate
>_disarc.bat
で、C:\TXUpdate\Files内に展開される。

・C:\Work\files\dmitrygrを作成し、C:\TXUpdate\Files内のファイルすべてを"移動"する。

・C:\Work\TX_Security_Upgrade\Palm\TXUpdate内の
overflow.zip.a.pdb
overflow.zip.b.pdb
overflow.zip.c.pdb
overflow.zip.d.pdb
overflow.zip.e.pdb
を、C:\TXUpdate\Inputにコピー。

・ファイル抽出
コマンドプロンプトをあげる。
>c:\
>cd C:\TXUpdate
>_disarc.bat
で、C:\TXUpdate\Files内に展開される。

・C:\TXUpdate\Files内のファイルをC:\TXUpdate\Doc\2DELETE.TXTを参考に削除する。これらは最低限消しても大丈夫らしい。個人的にはDocsToGoやVersaMailもいらなかったので、1srcを参考に消した。

・C:\TXUpdate\Files内に追加したいファイルを追加していく。


が、この削除と追加が難しい。何でもかんでも削除すればいい訳でなく、追加してもいい訳でなく、しかも、出来上がりのファイルサイズの制限が上下ともにあるので、ファイルが少なすぎても多すぎてもいけない。。。


以下私の削除したファイルリスト。バッチファイルにしてたので、そのまま掲載。VersaMailに迷いがあるのはご愛嬌・・・(remの行は削除してない)


echo "delete file from TX ROM update"
echo "Video & audio demos:"
del 100.asf__512k_a
del 100.asf__512k_b
del 100.asf__512k_c
del Disko.pdb
del Lamasbonita.pdb
echo "Wallpapers:"
del 1.jpg
del 2.jpg
del 3.jpg
del 4.jpg
echo "AddIt & components:"
del AddItDV.prc
del AdditSync.prc
del AddItVault.bprc
del AddItVault_deDE.oprc
del AddItVault_enUS.oprc
del AddItVault_esES.oprc
del AddItVault_frFR.oprc
del AddItVault_itIT.oprc
del AddItVault_ptBR.oprc
del deDE_AddIt_data.pdb
del deDE_AddItMyDV-Content.pdb
del deDE_AdditNewsDV-Content.pdb
del deDE_AdditShopDV-Content.pdb
del deDE_AddItStart-Content.pdb
del deDE_AdditTryBuy-Content.pdb
del enUS_AddIt_data.pdb
del enUS_AddItMyDV-Content.pdb
del enUS_AdditNewsDV-Content.pdb
del enUS_AdditShopDV-Content.pdb
del enUS_AddItStart-Content.pdb
del enUS_AdditTryBuy-Content.pdb
del esES_AddIt_data.pdb
del esES_AddItMyDV-Content.pdb
del esES_AdditNewsDV-Content.pdb
del esES_AdditShopDV-Content.pdb
del esES_AddItStart-Content.pdb
del esES_AdditTryBuy-Content.pdb
del frFR_AddIt_data.pdb
del frFR_AddItMyDV-Content.pdb
del frFR_AdditNewsDV-Content.pdb
del frFR_AdditShopDV-Content.pdb
del frFR_AddItStart-Content.pdb
del frFR_AdditTryBuy-Content.pdb
del itIT_AddIt_data.pdb
del itIT_AddItMyDV-Content.pdb
del itIT_AdditNewsDV-Content.pdb
del itIT_AdditShopDV-Content.pdb
del itIT_AddItStart-Content.pdb
del itIT_AdditTryBuy-Content.pdb
del ptBR_AddIt_data.pdb
del ptBR_AddItMyDV-Content.pdb
del ptBR_AdditNewsDV-Content.pdb
del ptBR_AdditShopDV-Content.pdb
del ptBR_AddItStart-Content.pdb
del ptBR_AdditTryBuy-Content.pdb
echo "T-Mobile & components:"
del arrow.gif
del back_arrow.gif
del btn_ready2sign.gif
del btn_signup.gif
del hdr_tmobile.gif
del hdr_tmobile_new.gif
del next_arrow.gif
del tmobile.css
del tmobile_benefits.html
del tmobile_benefits.jpg
del tmobile_hotspots.html
del tmobile_index.html
del tmobile_lady.jpg
del tmobile_lady2.jpg
del tmobile_lady3.jpg
del tmobile_man.jpg
del tmobile_man1.jpg
del tmobile_rooftop.jpg
del tmobile_signup.html
del tmobile_singup.jpg
del tmobile_singup1.jpg
del tmobile_support.html
del tmobile_support.jpg
del tmobile_support2.jpg
del tmobile_uses.html
echo "Tutorials:"
del Tutorial.bprc
del Tutorial_deDE.oprc
del Tutorial_enUS.oprc
del Tutorial_esES.oprc
del Tutorial_frFR.oprc
del Tutorial_itIT.oprc
del Tutorial_ptBR.oprc
del TutorialApp.bprc
del TutorialApp_deDE.oprc
del TutorialApp_enUS.oprc
del TutorialApp_esES.oprc
del TutorialApp_frFR.oprc
del TutorialApp_itIT.oprc
del TutorialApp_ptBR.oprc
echo "VersaMail:"
rem AirSAM.bprc
rem AirSAM_deDE.oprc
rem AirSAM_enUS.oprc
rem AirSAM_esES.oprc
rem AirSAM_frFR.oprc
rem AirSAM_itIT.oprc
rem AirSAM_ptBR.oprc
rem AirSAMprv.bprc
rem AirSAMprv_deDE.oprc
rem AirSAMprv_enUS.oprc
rem AirSAMprv_esES.oprc
rem AirSAMprv_frFR.oprc
rem AirSAMprv_itIT.oprc
rem AirSAMprv_ptBR.oprc
rem MIAttachLib.bprc
rem MIAttachLib_deDE.oprc
rem MIAttachLib_enUS.oprc
rem MIAttachLib_esES.oprc
rem MIAttachLib_frFR.oprc
rem MIAttachLib_itIT.oprc
rem MIAttachLib_ptBR.oprc
rem MIDataLib.bprc
rem MIDataLib_deDE.oprc
rem MIDataLib_enUS.oprc
rem MIDataLib_esES.oprc
rem MIDataLib_frFR.oprc
rem MIDataLib_itIT.oprc
rem MIDataLib_ptBR.oprc
del MMConduit.bprc
del MMConduit_deDE.oprc
del MMConduit_enUS.oprc
del MMConduit_esES.oprc
del MMConduit_frFR.oprc
del MMConduit_itIT.oprc
del MMConduit_ptBR.oprc
del MMConfigFPI.bprc
del MMConfigFPI_deDE.oprc
del MMConfigFPI_enUS.oprc
del MMConfigFPI_esES.oprc
del MMConfigFPI_frFR.oprc
del MMConfigFPI_itIT.oprc
del MMConfigFPI_ptBR.oprc
del MMHtmlPlugin.bprc
del MMHtmlPlugin_deDE.oprc
del MMHtmlPlugin_enUS.oprc
del MMHtmlPlugin_esES.oprc
del MMHtmlPlugin_frFR.oprc
del MMHtmlPlugin_itIT.oprc
del MMHtmlPlugin_ptBR.oprc
del MMMailTo_deDE.oprc
del MMMailTo_enUS.oprc
del MMMailTo_esES.oprc
del MMMailTo_frFR.oprc
del MMMailTo_itIT.oprc
del MMMailTo_ptBR.oprc
del MMNotify.bprc
del MMNotify_deDE.oprc
del MMNotify_enUS.oprc
del MMNotify_esES.oprc
del MMNotify_frFR.oprc
del MMNotify_itIT.oprc
del MMNotify_ptBR.oprc
del MMPhotos.bprc
del MMPhotos_deDE.oprc
del MMPhotos_enUS.oprc
del MMPhotos_esES.oprc
del MMPhotos_frFR.oprc
del MMPhotos_itIT.oprc
del MMPhotos_ptBR.oprc
del MMPluginMGR.bprc
del MMPluginMGR_deDE.oprc
del MMPluginMGR_enUS.oprc
del MMPluginMGR_esES.oprc
del MMPluginMGR_frFR.oprc
del MMPluginMGR_itIT.oprc
del MMPluginMGR_ptBR.oprc
del MMPRCPlugin.bprc
del MMPRCPlugin_deDE.oprc
del MMPRCPlugin_enUS.oprc
del MMPRCPlugin_esES.oprc
del MMPRCPlugin_frFR.oprc
del MMPRCPlugin_itIT.oprc
del MMPRCPlugin_ptBR.oprc
del MMSDCard.bprc
del MMSDCard_deDE.oprc
del MMSDCard_enUS.oprc
del MMSDCard_esES.oprc
del MMSDCard_frFR.oprc
del MMSDCard_itIT.oprc
del MMSDCard_ptBR.oprc
del MMServers_BRAH.pdb
del MMSmartAdd.bprc
del MMSmartAdd_deDE.oprc
del MMSmartAdd_enUS.oprc
del MMSmartAdd_esES.oprc
del MMSmartAdd_frFR.oprc
del MMSmartAdd_itIT.oprc
del MMSmartAdd_ptBR.oprc
del MMTextPlugin.bprc
del MMTextPlugin_deDE.oprc
del MMTextPlugin_enUS.oprc
del MMTextPlugin_esES.oprc
del MMTextPlugin_frFR.oprc
del MMTextPlugin_itIT.oprc
del MMTextPlugin_ptBR.oprc
del MMUnzipPlugin.bprc
del MMUnzipPlugin_deDE.oprc
del MMUnzipPlugin_enUS.oprc
del MMUnzipPlugin_esES.oprc
del MMUnzipPlugin_frFR.oprc
del MMUnzipPlugin_itIT.oprc
del MMUnzipPlugin_ptBR.oprc
del MMUpgrade.bprc
del MMUpgrade_deDE.oprc
del MMUpgrade_enUS.oprc
del MMUpgrade_esES.oprc
del MMUpgrade_frFR.oprc
del MMUpgrade_itIT.oprc
del MMUpgrade_ptBR.oprc
del MMVCal.bprc
del MMVCal_deDE.oprc
del MMVCal_enUS.oprc
del MMVCal_esES.oprc
del MMVCal_frFR.oprc
del MMVCal_itIT.oprc
del MMVCal_ptBR.oprc
del MMVCardPlugin.bprc
del MMVCardPlugin_deDE.oprc
del MMVCardPlugin_enUS.oprc
del MMVCardPlugin_esES.oprc
del MMVCardPlugin_frFR.oprc
del MMVCardPlugin_itIT.oprc
del MMVCardPlugin_ptBR.oprc
del MMWave.bprc
del MMWave_deDE.oprc
del MMWave_enUS.oprc
del MMWave_esES.oprc
del MMWave_frFR.oprc
del MMWave_itIT.oprc
del MMWave_ptBR.oprc
del MMWizard.bprc
del MMWizard_deDE.oprc
del MMWizard_enUS.oprc
del MMWizard_esES.oprc
del MMWizard_frFR.oprc
del MMWizard_itIT.oprc
del MMWizard_ptBR.oprc
del MMWordPlugin.bprc
del MMWordPlugin_deDE.oprc
del MMWordPlugin_enUS.oprc
del MMWordPlugin_esES.oprc
del MMWordPlugin_frFR.oprc
del MMWordPlugin_itIT.oprc
del MMWordPlugin_ptBR.oprc
del MultiMail.bprc
del MultiMail_deDE.oprc
del MultiMail_enUS.oprc
del MultiMail_esES.oprc
del MultiMail_frFR.oprc
del MultiMail_itIT.oprc
del MultiMail_ptBR.oprc
echo "DocsToGo:"
del DGraphConverter.prc
del DocsToGo.bprc
del DocsToGo_deDE.oprc
del DocsToGo_enUS.oprc
del DocsToGo_esES.oprc
del DocsToGo_frFR.oprc
del DocsToGo_itIT.oprc
del DocsToGo_ptBR.oprc
del DSLib.prc
del DSlideLib.prc
del DTTFonts.pdb
del DvzSSFonts.pdb
del DXTGAttachmentPlugin.bprc
del DXTGAttachmentPlugin_deDE.oprc
del DXTGAttachmentPlugin_enUS.oprc
del DXTGAttachmentPlugin_esES.oprc
del DXTGAttachmentPlugin_frFR.oprc
del DXTGAttachmentPlugin_itIT.oprc
del DXTGAttachmentPlugin_ptBR.oprc
del SheetToGo.bprc
del SheetToGo_deDE.oprc
del SheetToGo_enUS.oprc
del SheetToGo_esES.oprc
del SheetToGo_frFR.oprc
del SheetToGo_itIT.oprc
del SheetToGo_ptBR.oprc
del SlideshowToGo.bprc
del SlideshowToGo_deDE.oprc
del SlideshowToGo_enUS.oprc
del SlideshowToGo_esES.oprc
del SlideshowToGo_frFR.oprc
del SlideshowToGo_itIT.oprc
del SlideshowToGo_ptBR.oprc
del WordToGo.bprc
del WordToGo_deDE.oprc
del WordToGo_enUS.oprc
del WordToGo_esES.oprc
del WordToGo_frFR.oprc
del WordToGo_itIT.oprc
del WordToGo_ptBR.oprc
del WTGFontPackage.pdb
echo "DocsToGo samples:"
del deDE_BeispielBesprechungsnot.PDB
del deDE_BeispielErfolgreichesB.PDB
del deDE_BeispielKostenabrechnun.PDB
del enUS_SampleExpenseReport.PDB
del enUS_SampleMeetingNotes.PDB
del enUS_SampleSuccessfulBrains.PDB
del esES_EjemploNotasdelareunio.PDB
del esES_EjemploReportajedegast.PDB
del esES_EjemploSesiondebusqueda.PDB
del frFR_demonotesdereunion.PDB
del frFR_demorapportdedepenses.PDB
del frFR_demoTrouveruneideede.PDB
del itIT_EsempioEscogitareconSu.PDB
del itIT_EsempioNoteDuranteRiun.PDB
del itIT_EsempioRapportoDiSpese.PDB
del ptBR_AmostraAnotacoesdeReuni2.PDB
del ptBR_AmostraRelatoriodeDes.PDB
del ptBR_AmostraSessaodeDebates.PDB


で追加するソフトだが・・・これは個人の好みによるが・・・

・日本語化ソフト(CJKOS)
なぜか、レジストした状態でいれれないorz
Japonはやってないが、ここら辺参考にできるかな?

CJKOS.prc
cManager.prc
UCS_JapaneseJIS.prc
10,12,16,24の4種類のフォントファイル


・日本語入力(ATOK)
ジャストシステムとミニーさんのパッチ宛て済みのやつ。ラージ辞書。

ATDCKtoE.pdb
ATDCLarg.pdb
ATIPAlph.prc
ATIPCALC.PRC
ATIPCode.prc
ATIPDate.prc
ATIPFace.prc
ATIPFavr.prc
ATIPHAND.PRC
ATIPHira.prc
ATIPKata.prc
ATIPSymb.prc
ATIPTime.prc
ATOK.prc
ATOKHelp.prc
ATOKPROP.PRC
ATPPConv.prc
ATPPDICS.PRC
ATPPMain.prc
ATPPPNLS.PRC
ATPPSupr.prc
ATUTFace.prc
ATUTFavr.prc
LibATOK.prc


・Fep切替(FepSwitch)
TXの場合これが一番スマートかと・・・

FEPSwitch.prc


これでいきたいところだけど、これだと、サイズが小さすぎるので、C:\Work\files\dmitrygrから、いろいろ拝借。ここはグレーなので、説明は抜き・・・

・ドライブモード

DriveModeApp.bprc
DriveModeApp_*.oprc
DriveModeLib.prc


・NetFront

NetFront3.prc
MaxX.prc
HalfFontExtn.prc
HDDHalfFonts.prc
HRFontSel.prc
HRFontSel_deDE.prc
HRFontSel_frFR.prc
HRLib.prc



あと、個人的に追加したもの

TCPMP.PRC
TCPMP_AAC_plugin.PRC
TCPMP_AMR_plugin.PRC
TCPMP_Camera_plugin.PRC
TCPMP_FFMPEG_plugin.PRC
TCPMP_Matroska_plugin.PRC
TCPMP_MP3_plugin.PRC
TCPMP_MPC_plugin.PRC
TCPMP_MPEG1_plugin.PRC
TCPMP_MPEG4_plugin.PRC
TCPMP_Sony_HHE_plugin.PRC
TCPMP_Vorbis_HQ_plugin.PRC
Off_Flush.PRC
NVBackup.prc
Filez.PRC
HomeWithFind.prc
GoogleMaps.prc


ちなみに、Javaはいれてもなぜか出てこなかった・・・GogleMapsは一度インストールしたものを取り出したファイルでやりました。

・カスタムROM作成
コマンドプロンプトをあげる。
>c:\
>cd C:\TXUpdate
>_newdesc.bat
>cd C:\TXUpdate
>_newarc.bat
で、C:\TXUpdate\Palm\TXUpdate内に
overflow.zip.a.pdb
overflow.zip.b.pdb
overflow.zip.c.pdb
overflow.zip.d.pdb
overflow.zip.e.pdb
が作成される。
作成されていない場合は、コマンドプロンプトの最後で、

Wrong overflow.zip.
File size must be more then 8388608 and less then 10485760 bytes.

というエラーメッセージが出てるはず。要するにC:\TXUpdate\Files内のファイルを元に作成されるROMのサイズが大きすぎるか少なすぎるかなので、削除するファイルを増やすなり、追加するファイルを増やすなりして、エラーメッセージのファイルサイズに収まるようにする。
ただ、やみくもにやってても効率が悪いので、C:\TXUpdate\_newarc.batを開いて、最後の行の
del overflow.zip


rem del overflow.zip

などとして無効化すると、C:\TXUpdate\Palm\TXUpdate内に作成された、overflow.zipが残るので、このzipファイルのサイズをみて調整していく。ちょっとだけ足りないとかいった場合には、適当にjpegファイルとか追加してもいいかもしれない。できたらいじったBatファイルを戻しておく。

・ROMアップデート!!(危険!!)
なんとかROM作成がクリアできたら焼いてみよう!C:\TXUpdate\PalmフォルダをフォーマットしたSDカードのルートにコピーする。そして、TXにSDカードを差込み、「TX_Updater」を起動すると、何回か再起動した後に、オリジナルTXが出来上がったはず!感動!!

安定しているかどうかはこれから使っていってみないと分からない。DBCacheは増えているような気がする。

・元にもどすとか、焼いたROMがミスっていた場合・・・
元に戻すときは、C:\Work\TX_Security_Upgrade\Palmフォルダをさっきやった様に、SDのルートにコピーして、同様にしてアップデートすれば、元にもどる(正確には若干Wifi部分で違う)。ここで、アップデートしようとすると「このデバイスはTXではない」などというエラーが出る場合は、CJKOSを無効にしてから削除して、実行すると多分アップデート可能になる。Japonはわからない・・・これには最初冷や汗かいた・・・(^^;


これからの検証項目は
・安定性
・Netfront
・ドライブモード
かな?うまくいけば、TXはWifiも付いていることだし、Webブラウズには結構威力を発揮できるかも!

ちなみにこの作業はdmitrygrのROMだけでも可能です。ただその場合元には戻せません・・・
2007/8/7追記:(もしかしたら、事前にNVBackupでバックアップとっておけば戻るかも・・・→未検証)

そうそう、誰かCJKOSのレジストリ済みでの焼き方分かったら教えてください・・・

7/12 追記

日本語化の記事を書いたときに計測したメモリとの比較・・・

http://gtbleds.seesaa.net/article/22796945.html

Totalメモリが以前は9mbぐらいだったのが、12.8mbに増えている。そして、CJKOS+Atok使用時にソフトリセット後OffFlushで掃除した値を比べてみると・・・

以前
5.4mb 2.8mb CJKOS+ATOK

カスタムROM
7.8mb 5.1mb CJKOS+ATOK

その差歴然ですな!!

その後、追加するファイルで、
HomeWithFind.prc

HomeNoGoLCD.prc
に変更。単なるミスです。あと、NetFrontには
HalfFontExtn.prc
HDDHalfFonts.prc
HRFontSel.prc
HRFontSel_deDE.prc
HRFontSel_frFR.prc
HRLib.prc
が必要だった。。。(dmitrygrさんのから拝借)
ただ、これらはJaponだと、いらないかもしれない。
http://tk109.matrix.jp/blog/archives/001782.html
ここら辺が参考になる?ならない?わからないです。
Javaは
J9 Exchanger.prc
J9 Java Launcher.prc
J9 Java VM.prc
J9 MIDP Bundle.prc
J9JavaVMMidp20_ja.prc
j9keystore.prc
j9secpol.prc
JavaVMCheck_jpJP.prc
これらをいれてみたけどメニューに現れず。。。なんで?まぁ、JavaいれてもOperaMiniぐらいだし、ネフロが動けばOperaもいらないかな?
しかし、ネフロ・・・相当完璧に近い。HalNaviEnablerでJOGモードにしてると、ほとんどハードキーだけで閲覧できる。スモールフォントもきれいに出るし・・・ここら辺はCJKOSの強みかな?半角カナのみかな~問題は・・・まぁ、またDELEGATEの登場かな?半角カナ→全角カナ変換だけならあんまり負荷かからんだろうし!
HRCapt20070710172327L.jpg
7/11 追記
Netfrontで、Yahooのトップページからニュースを開くと文字化けした・・・個人的にはあまり見ないからいいけど、痛い人には痛いかも・・・でも、結構使ってても、一度もフリーズやリセットはなしで安定してます。
と思ったら、CJKOSの「Smart Detect Char Set」にチェック入れるの忘れてた。これチェック入れたら文字化け直りました。

[X01HT] 無線LAN時のみメールの定期受信(の続き)

以前「無線LAN時のみメールの定期受信」ってのを書いたけど、やっぱり戻し忘れが発生・・・orz

と言うことで、戻し忘れても自動で戻るように改造・・・

ChangeOpenDummy2.mscr

基本は自分で戻す。で万一忘れても5分後にもとに戻るようにしてます。

2007年7月20日金曜日

疲れがとれない

友達の結婚式で1日無理しただけだが、ダルさが今日まで残ってる・・・歳かな~。

2007年7月13日金曜日

明日から3連休!

明日から三連休。チビの幼稚園の祭りに知り合いの結婚式と中身の詰まった休みです。

が・・・なんか台風が直撃しそうですね~。広島まで車で行って帰ってこれるかな?

2007年7月12日木曜日

[TX] CJKOS+NetFront用Delegate

例のNetFrontがかなり使い勝手がいい!普通にshift_jis,euc-jp,utf-8の表示ができる。

ただ、残念なのは、携帯電話向けのページなどで半角カタカナが多いこと・・・表示文字数を増やすためとはいえ、インターネットに半角カナを流すとは何事じゃ!とはいえ、今半角カナが表示できない環境は殆んどなから仕方ないか・・・

と言うことで、文字コードはそのままで、半角カナを全角カナにするだけのプロキシをDelegateで立ててみた!

まぁ、セットアップ方法などは、手前味噌ですが・・・ここら辺を・・・

で、delegateの起動スクリプトはこんな感じ・・・


if [ -f /usr/sbin/delegated ]
then
/usr/sbin/delegated -P18080 -r -S \
SERVER=http \
CHARCODE=guess \
OWNER=delegate/delegate \
DGROOT=/var/spool/delegate \
CACHE="do" \
EXPIRE=2d \
CRON="5 5 * * * -expire 3" \
FTOCL=/var/spool/delegate/netfront.cfi \
HTTPCONF=acc-encoding: -thrugzip \
HTTPCONF=gen-encoding:gzip \
RELIABLE="-A/パスワード" \
STLS="mitm" \
RELAY=vhost,proxy \
AUTH=viagen:- \
> /var/spool/delegate/start.msg 2>&1
fi


キモは


RELIABLE="-A/パスワード" \


ここです。制限かけないとオープンになるし、といって、IPアドレスで制限かけると使える所が限られる。

そこで、"-A/"を使う。これユーザエージェントで制限をかけるもので、NetFrontの場合UAを好きな文字列に偽装できる。なので、個々にパスワード的な文字列を埋め込めば、制限がかかるし、場所によって接続できないこともない。

で、/var/spool/delegate/netfront.cfiの中身だが、


#!cfi

Content-Type: SHIFT
++
Content-Type: Shift
++
Content-Type: shift
Body-Filter: /usr/bin/nkf -Sxe | /usr/bin/nkf -s
--
Content-Type: euc
++
Content-Type: EUC
++
Content-Type: Euc
Body-Filter: /usr/bin/nkf -Ee
--
Content-Type: utf
++
Content-Type: UTF
++
Content-Type: Utf
Body-Filter: /usr/bin/nkf -Ww
--
Content-Type: iso-2022-jp
++
Content-Type: ISO-2022-JP
Body-Filter: /usr/bin/nkf -Jj
--
Content-Type: text/html
Output/Content-Type: text/html; charset=Shift_JIS
Body-Filter: /usr/bin/nkf -s
--
Content-Type: application/xhtml+xml
Output/Content-Type: application/xhtml+xml; charset=Shift_JIS
Body-Filter: /usr/bin/nkf -s


こんな感じ。用はContent-Typeの文字コードをみて、それに合わせて、nkfで変換かけてる。nkfは変換時に半角カナ→全角カナ変換をデフォルトでやってくれる。
最後の2つは保険みたいなもの。万一文字コード指定が無かったら、全部Shift_JISで出力。これで化けたらしようがない。一応、今のところ。これで一度も化けてない。

禁断ROM+CJKOSを使ってる人なんて殆んどいないし、その中でこのブログ見てくれてる人なんて数人いるかいないかだろうから、テスト的に使ってみたい人がいたら、コメントいただけたらメールでパスワード教えますよ。

2007年7月9日月曜日

[TX]禁断のカスタムROMの作成

まえから、1srcで他人の押し付けROMが出回っていたのは知っていたが、Treo650みたいに自由度がないのと、日本語化ソフトをいれれないので、あまり意味がないと敬遠してきましたが、どうも、自由度は高くないがある程度のカスタマイズが可能になった感じ。

http://www.1src.com/forums/showthread.php?t=112779&page=17&pp=15

で、早速やってみた!(^^;
以下俺流の独り言、真似してどうなっても自己責任!

・ROMツールダウンロードする。
http://palmtx.da.ru/system/TXUpdate.zip

・解凍して、Cドライブのルートにコピー
C:\TXUpdate

・dmitrygrさんのカスタムROMをダウンロードする。
http://www.palmpowerups.com/file/TX2.ROM.zip?uniq=56

・ワークディレクトリを適当に作って解凍
C:\Work\Palm

・純正ROM(Wifiのセキュリティアップデート用)をダウンロードする。(有料!$5.99)
Wi-Fi Enterprise Security Update for the Palm® TX handheld

・さっき作ったワークディレクトリに解凍
C:\Work\TX_Security_Upgrade

・C:\Work\Palm\TXUpdate内の
overflow.zip.a.pdb
overflow.zip.b.pdb
overflow.zip.c.pdb
overflow.zip.d.pdb
overflow.zip.e.pdb
を、C:\TXUpdate\Inputにコピー。

・ファイル抽出
コマンドプロンプトをあげる。
>c:\
>cd C:\TXUpdate
>_disarc.bat
で、C:\TXUpdate\Files内に展開される。

・C:\Work\files\dmitrygrを作成し、C:\TXUpdate\Files内のファイルすべてを"移動"する。

・C:\Work\TX_Security_Upgrade\Palm\TXUpdate内の
overflow.zip.a.pdb
overflow.zip.b.pdb
overflow.zip.c.pdb
overflow.zip.d.pdb
overflow.zip.e.pdb
を、C:\TXUpdate\Inputにコピー。

・ファイル抽出
コマンドプロンプトをあげる。
>c:\
>cd C:\TXUpdate
>_disarc.bat
で、C:\TXUpdate\Files内に展開される。

・C:\TXUpdate\Files内のファイルをC:\TXUpdate\Doc\2DELETE.TXTを参考に削除する。これらは最低限消しても大丈夫らしい。個人的にはDocsToGoやVersaMailもいらなかったので、1srcを参考に消した。

・C:\TXUpdate\Files内に追加したいファイルを追加していく。


が、この削除と追加が難しい。何でもかんでも削除すればいい訳でなく、追加してもいい訳でなく、しかも、出来上がりのファイルサイズの制限が上下ともにあるので、ファイルが少なすぎても多すぎてもいけない。。。


以下私の削除したファイルリスト。バッチファイルにしてたので、そのまま掲載。VersaMailに迷いがあるのはご愛嬌・・・(remの行は削除してない)


echo "delete file from TX ROM update"
echo "Video & audio demos:"
del 100.asf__512k_a
del 100.asf__512k_b
del 100.asf__512k_c
del Disko.pdb
del Lamasbonita.pdb
echo "Wallpapers:"
del 1.jpg
del 2.jpg
del 3.jpg
del 4.jpg
echo "AddIt & components:"
del AddItDV.prc
del AdditSync.prc
del AddItVault.bprc
del AddItVault_deDE.oprc
del AddItVault_enUS.oprc
del AddItVault_esES.oprc
del AddItVault_frFR.oprc
del AddItVault_itIT.oprc
del AddItVault_ptBR.oprc
del deDE_AddIt_data.pdb
del deDE_AddItMyDV-Content.pdb
del deDE_AdditNewsDV-Content.pdb
del deDE_AdditShopDV-Content.pdb
del deDE_AddItStart-Content.pdb
del deDE_AdditTryBuy-Content.pdb
del enUS_AddIt_data.pdb
del enUS_AddItMyDV-Content.pdb
del enUS_AdditNewsDV-Content.pdb
del enUS_AdditShopDV-Content.pdb
del enUS_AddItStart-Content.pdb
del enUS_AdditTryBuy-Content.pdb
del esES_AddIt_data.pdb
del esES_AddItMyDV-Content.pdb
del esES_AdditNewsDV-Content.pdb
del esES_AdditShopDV-Content.pdb
del esES_AddItStart-Content.pdb
del esES_AdditTryBuy-Content.pdb
del frFR_AddIt_data.pdb
del frFR_AddItMyDV-Content.pdb
del frFR_AdditNewsDV-Content.pdb
del frFR_AdditShopDV-Content.pdb
del frFR_AddItStart-Content.pdb
del frFR_AdditTryBuy-Content.pdb
del itIT_AddIt_data.pdb
del itIT_AddItMyDV-Content.pdb
del itIT_AdditNewsDV-Content.pdb
del itIT_AdditShopDV-Content.pdb
del itIT_AddItStart-Content.pdb
del itIT_AdditTryBuy-Content.pdb
del ptBR_AddIt_data.pdb
del ptBR_AddItMyDV-Content.pdb
del ptBR_AdditNewsDV-Content.pdb
del ptBR_AdditShopDV-Content.pdb
del ptBR_AddItStart-Content.pdb
del ptBR_AdditTryBuy-Content.pdb
echo "T-Mobile & components:"
del arrow.gif
del back_arrow.gif
del btn_ready2sign.gif
del btn_signup.gif
del hdr_tmobile.gif
del hdr_tmobile_new.gif
del next_arrow.gif
del tmobile.css
del tmobile_benefits.html
del tmobile_benefits.jpg
del tmobile_hotspots.html
del tmobile_index.html
del tmobile_lady.jpg
del tmobile_lady2.jpg
del tmobile_lady3.jpg
del tmobile_man.jpg
del tmobile_man1.jpg
del tmobile_rooftop.jpg
del tmobile_signup.html
del tmobile_singup.jpg
del tmobile_singup1.jpg
del tmobile_support.html
del tmobile_support.jpg
del tmobile_support2.jpg
del tmobile_uses.html
echo "Tutorials:"
del Tutorial.bprc
del Tutorial_deDE.oprc
del Tutorial_enUS.oprc
del Tutorial_esES.oprc
del Tutorial_frFR.oprc
del Tutorial_itIT.oprc
del Tutorial_ptBR.oprc
del TutorialApp.bprc
del TutorialApp_deDE.oprc
del TutorialApp_enUS.oprc
del TutorialApp_esES.oprc
del TutorialApp_frFR.oprc
del TutorialApp_itIT.oprc
del TutorialApp_ptBR.oprc
echo "VersaMail:"
rem AirSAM.bprc
rem AirSAM_deDE.oprc
rem AirSAM_enUS.oprc
rem AirSAM_esES.oprc
rem AirSAM_frFR.oprc
rem AirSAM_itIT.oprc
rem AirSAM_ptBR.oprc
rem AirSAMprv.bprc
rem AirSAMprv_deDE.oprc
rem AirSAMprv_enUS.oprc
rem AirSAMprv_esES.oprc
rem AirSAMprv_frFR.oprc
rem AirSAMprv_itIT.oprc
rem AirSAMprv_ptBR.oprc
rem MIAttachLib.bprc
rem MIAttachLib_deDE.oprc
rem MIAttachLib_enUS.oprc
rem MIAttachLib_esES.oprc
rem MIAttachLib_frFR.oprc
rem MIAttachLib_itIT.oprc
rem MIAttachLib_ptBR.oprc
rem MIDataLib.bprc
rem MIDataLib_deDE.oprc
rem MIDataLib_enUS.oprc
rem MIDataLib_esES.oprc
rem MIDataLib_frFR.oprc
rem MIDataLib_itIT.oprc
rem MIDataLib_ptBR.oprc
del MMConduit.bprc
del MMConduit_deDE.oprc
del MMConduit_enUS.oprc
del MMConduit_esES.oprc
del MMConduit_frFR.oprc
del MMConduit_itIT.oprc
del MMConduit_ptBR.oprc
del MMConfigFPI.bprc
del MMConfigFPI_deDE.oprc
del MMConfigFPI_enUS.oprc
del MMConfigFPI_esES.oprc
del MMConfigFPI_frFR.oprc
del MMConfigFPI_itIT.oprc
del MMConfigFPI_ptBR.oprc
del MMHtmlPlugin.bprc
del MMHtmlPlugin_deDE.oprc
del MMHtmlPlugin_enUS.oprc
del MMHtmlPlugin_esES.oprc
del MMHtmlPlugin_frFR.oprc
del MMHtmlPlugin_itIT.oprc
del MMHtmlPlugin_ptBR.oprc
del MMMailTo_deDE.oprc
del MMMailTo_enUS.oprc
del MMMailTo_esES.oprc
del MMMailTo_frFR.oprc
del MMMailTo_itIT.oprc
del MMMailTo_ptBR.oprc
del MMNotify.bprc
del MMNotify_deDE.oprc
del MMNotify_enUS.oprc
del MMNotify_esES.oprc
del MMNotify_frFR.oprc
del MMNotify_itIT.oprc
del MMNotify_ptBR.oprc
del MMPhotos.bprc
del MMPhotos_deDE.oprc
del MMPhotos_enUS.oprc
del MMPhotos_esES.oprc
del MMPhotos_frFR.oprc
del MMPhotos_itIT.oprc
del MMPhotos_ptBR.oprc
del MMPluginMGR.bprc
del MMPluginMGR_deDE.oprc
del MMPluginMGR_enUS.oprc
del MMPluginMGR_esES.oprc
del MMPluginMGR_frFR.oprc
del MMPluginMGR_itIT.oprc
del MMPluginMGR_ptBR.oprc
del MMPRCPlugin.bprc
del MMPRCPlugin_deDE.oprc
del MMPRCPlugin_enUS.oprc
del MMPRCPlugin_esES.oprc
del MMPRCPlugin_frFR.oprc
del MMPRCPlugin_itIT.oprc
del MMPRCPlugin_ptBR.oprc
del MMSDCard.bprc
del MMSDCard_deDE.oprc
del MMSDCard_enUS.oprc
del MMSDCard_esES.oprc
del MMSDCard_frFR.oprc
del MMSDCard_itIT.oprc
del MMSDCard_ptBR.oprc
del MMServers_BRAH.pdb
del MMSmartAdd.bprc
del MMSmartAdd_deDE.oprc
del MMSmartAdd_enUS.oprc
del MMSmartAdd_esES.oprc
del MMSmartAdd_frFR.oprc
del MMSmartAdd_itIT.oprc
del MMSmartAdd_ptBR.oprc
del MMTextPlugin.bprc
del MMTextPlugin_deDE.oprc
del MMTextPlugin_enUS.oprc
del MMTextPlugin_esES.oprc
del MMTextPlugin_frFR.oprc
del MMTextPlugin_itIT.oprc
del MMTextPlugin_ptBR.oprc
del MMUnzipPlugin.bprc
del MMUnzipPlugin_deDE.oprc
del MMUnzipPlugin_enUS.oprc
del MMUnzipPlugin_esES.oprc
del MMUnzipPlugin_frFR.oprc
del MMUnzipPlugin_itIT.oprc
del MMUnzipPlugin_ptBR.oprc
del MMUpgrade.bprc
del MMUpgrade_deDE.oprc
del MMUpgrade_enUS.oprc
del MMUpgrade_esES.oprc
del MMUpgrade_frFR.oprc
del MMUpgrade_itIT.oprc
del MMUpgrade_ptBR.oprc
del MMVCal.bprc
del MMVCal_deDE.oprc
del MMVCal_enUS.oprc
del MMVCal_esES.oprc
del MMVCal_frFR.oprc
del MMVCal_itIT.oprc
del MMVCal_ptBR.oprc
del MMVCardPlugin.bprc
del MMVCardPlugin_deDE.oprc
del MMVCardPlugin_enUS.oprc
del MMVCardPlugin_esES.oprc
del MMVCardPlugin_frFR.oprc
del MMVCardPlugin_itIT.oprc
del MMVCardPlugin_ptBR.oprc
del MMWave.bprc
del MMWave_deDE.oprc
del MMWave_enUS.oprc
del MMWave_esES.oprc
del MMWave_frFR.oprc
del MMWave_itIT.oprc
del MMWave_ptBR.oprc
del MMWizard.bprc
del MMWizard_deDE.oprc
del MMWizard_enUS.oprc
del MMWizard_esES.oprc
del MMWizard_frFR.oprc
del MMWizard_itIT.oprc
del MMWizard_ptBR.oprc
del MMWordPlugin.bprc
del MMWordPlugin_deDE.oprc
del MMWordPlugin_enUS.oprc
del MMWordPlugin_esES.oprc
del MMWordPlugin_frFR.oprc
del MMWordPlugin_itIT.oprc
del MMWordPlugin_ptBR.oprc
del MultiMail.bprc
del MultiMail_deDE.oprc
del MultiMail_enUS.oprc
del MultiMail_esES.oprc
del MultiMail_frFR.oprc
del MultiMail_itIT.oprc
del MultiMail_ptBR.oprc
echo "DocsToGo:"
del DGraphConverter.prc
del DocsToGo.bprc
del DocsToGo_deDE.oprc
del DocsToGo_enUS.oprc
del DocsToGo_esES.oprc
del DocsToGo_frFR.oprc
del DocsToGo_itIT.oprc
del DocsToGo_ptBR.oprc
del DSLib.prc
del DSlideLib.prc
del DTTFonts.pdb
del DvzSSFonts.pdb
del DXTGAttachmentPlugin.bprc
del DXTGAttachmentPlugin_deDE.oprc
del DXTGAttachmentPlugin_enUS.oprc
del DXTGAttachmentPlugin_esES.oprc
del DXTGAttachmentPlugin_frFR.oprc
del DXTGAttachmentPlugin_itIT.oprc
del DXTGAttachmentPlugin_ptBR.oprc
del SheetToGo.bprc
del SheetToGo_deDE.oprc
del SheetToGo_enUS.oprc
del SheetToGo_esES.oprc
del SheetToGo_frFR.oprc
del SheetToGo_itIT.oprc
del SheetToGo_ptBR.oprc
del SlideshowToGo.bprc
del SlideshowToGo_deDE.oprc
del SlideshowToGo_enUS.oprc
del SlideshowToGo_esES.oprc
del SlideshowToGo_frFR.oprc
del SlideshowToGo_itIT.oprc
del SlideshowToGo_ptBR.oprc
del WordToGo.bprc
del WordToGo_deDE.oprc
del WordToGo_enUS.oprc
del WordToGo_esES.oprc
del WordToGo_frFR.oprc
del WordToGo_itIT.oprc
del WordToGo_ptBR.oprc
del WTGFontPackage.pdb
echo "DocsToGo samples:"
del deDE_BeispielBesprechungsnot.PDB
del deDE_BeispielErfolgreichesB.PDB
del deDE_BeispielKostenabrechnun.PDB
del enUS_SampleExpenseReport.PDB
del enUS_SampleMeetingNotes.PDB
del enUS_SampleSuccessfulBrains.PDB
del esES_EjemploNotasdelareunio.PDB
del esES_EjemploReportajedegast.PDB
del esES_EjemploSesiondebusqueda.PDB
del frFR_demonotesdereunion.PDB
del frFR_demorapportdedepenses.PDB
del frFR_demoTrouveruneideede.PDB
del itIT_EsempioEscogitareconSu.PDB
del itIT_EsempioNoteDuranteRiun.PDB
del itIT_EsempioRapportoDiSpese.PDB
del ptBR_AmostraAnotacoesdeReuni2.PDB
del ptBR_AmostraRelatoriodeDes.PDB
del ptBR_AmostraSessaodeDebates.PDB


で追加するソフトだが・・・これは個人の好みによるが・・・

・日本語化ソフト(CJKOS)
なぜか、レジストした状態でいれれないorz
Japonはやってないが、ここら辺参考にできるかな?

CJKOS.prc
cManager.prc
UCS_JapaneseJIS.prc
10,12,16,24の4種類のフォントファイル


・日本語入力(ATOK)
ジャストシステムとミニーさんのパッチ宛て済みのやつ。ラージ辞書。

ATDCKtoE.pdb
ATDCLarg.pdb
ATIPAlph.prc
ATIPCALC.PRC
ATIPCode.prc
ATIPDate.prc
ATIPFace.prc
ATIPFavr.prc
ATIPHAND.PRC
ATIPHira.prc
ATIPKata.prc
ATIPSymb.prc
ATIPTime.prc
ATOK.prc
ATOKHelp.prc
ATOKPROP.PRC
ATPPConv.prc
ATPPDICS.PRC
ATPPMain.prc
ATPPPNLS.PRC
ATPPSupr.prc
ATUTFace.prc
ATUTFavr.prc
LibATOK.prc


・Fep切替(FepSwitch)
TXの場合これが一番スマートかと・・・

FEPSwitch.prc


これでいきたいところだけど、これだと、サイズが小さすぎるので、C:\Work\files\dmitrygrから、いろいろ拝借。ここはグレーなので、説明は抜き・・・

・ドライブモード

DriveModeApp.bprc
DriveModeApp_*.oprc
DriveModeLib.prc


・NetFront

NetFront3.prc
MaxX.prc
HalfFontExtn.prc
HDDHalfFonts.prc
HRFontSel.prc
HRFontSel_deDE.prc
HRFontSel_frFR.prc
HRLib.prc



あと、個人的に追加したもの

TCPMP.PRC
TCPMP_AAC_plugin.PRC
TCPMP_AMR_plugin.PRC
TCPMP_Camera_plugin.PRC
TCPMP_FFMPEG_plugin.PRC
TCPMP_Matroska_plugin.PRC
TCPMP_MP3_plugin.PRC
TCPMP_MPC_plugin.PRC
TCPMP_MPEG1_plugin.PRC
TCPMP_MPEG4_plugin.PRC
TCPMP_Sony_HHE_plugin.PRC
TCPMP_Vorbis_HQ_plugin.PRC
Off_Flush.PRC
NVBackup.prc
Filez.PRC
HomeWithFind.prc
GoogleMaps.prc


ちなみに、Javaはいれてもなぜか出てこなかった・・・GogleMapsは一度インストールしたものを取り出したファイルでやりました。

・カスタムROM作成
コマンドプロンプトをあげる。
>c:\
>cd C:\TXUpdate
>_newdesc.bat
>cd C:\TXUpdate
>_newarc.bat
で、C:\TXUpdate\Palm\TXUpdate内に
overflow.zip.a.pdb
overflow.zip.b.pdb
overflow.zip.c.pdb
overflow.zip.d.pdb
overflow.zip.e.pdb
が作成される。
作成されていない場合は、コマンドプロンプトの最後で、

Wrong overflow.zip.
File size must be more then 8388608 and less then 10485760 bytes.

というエラーメッセージが出てるはず。要するにC:\TXUpdate\Files内のファイルを元に作成されるROMのサイズが大きすぎるか少なすぎるかなので、削除するファイルを増やすなり、追加するファイルを増やすなりして、エラーメッセージのファイルサイズに収まるようにする。
ただ、やみくもにやってても効率が悪いので、C:\TXUpdate\_newarc.batを開いて、最後の行の
del overflow.zip


rem del overflow.zip

などとして無効化すると、C:\TXUpdate\Palm\TXUpdate内に作成された、overflow.zipが残るので、このzipファイルのサイズをみて調整していく。ちょっとだけ足りないとかいった場合には、適当にjpegファイルとか追加してもいいかもしれない。できたらいじったBatファイルを戻しておく。

・ROMアップデート!!(危険!!)
なんとかROM作成がクリアできたら焼いてみよう!C:\TXUpdate\PalmフォルダをフォーマットしたSDカードのルートにコピーする。そして、TXにSDカードを差込み、「TX_Updater」を起動すると、何回か再起動した後に、オリジナルTXが出来上がったはず!感動!!

安定しているかどうかはこれから使っていってみないと分からない。DBCacheは増えているような気がする。

・元にもどすとか、焼いたROMがミスっていた場合・・・
元に戻すときは、C:\Work\TX_Security_Upgrade\Palmフォルダをさっきやった様に、SDのルートにコピーして、同様にしてアップデートすれば、元にもどる(正確には若干Wifi部分で違う)。ここで、アップデートしようとすると「このデバイスはTXではない」などというエラーが出る場合は、CJKOSを無効にしてから削除して、実行すると多分アップデート可能になる。Japonはわからない・・・これには最初冷や汗かいた・・・(^^;


これからの検証項目は
・安定性
・Netfront
・ドライブモード
かな?うまくいけば、TXはWifiも付いていることだし、Webブラウズには結構威力を発揮できるかも!

ちなみにこの作業はdmitrygrのROMだけでも可能です。ただその場合元には戻せません・・・

そうそう、誰かCJKOSのレジストリ済みでの焼き方分かったら教えてください・・・

7/12 追記

日本語化の記事を書いたときに計測したメモリとの比較・・・

http://gtbleds.seesaa.net/article/22796945.html

Totalメモリが以前は9mbぐらいだったのが、12.8mbに増えている。そして、CJKOS+Atok使用時にソフトリセット後OffFlushで掃除した値を比べてみると・・・

以前
5.4mb 2.8mb CJKOS+ATOK

カスタムROM
7.8mb 5.1mb CJKOS+ATOK

その差歴然ですな!!

その後、追加するファイルで、
HomeWithFind.prc

HomeNoGoLCD.prc
に変更。単なるミスです。あと、NetFrontには
HalfFontExtn.prc
HDDHalfFonts.prc
HRFontSel.prc
HRFontSel_deDE.prc
HRFontSel_frFR.prc
HRLib.prc
が必要だった。。。(dmitrygrさんのから拝借)
ただ、これらはJaponだと、いらないかもしれない。
http://tk109.matrix.jp/blog/archives/001782.html
ここら辺が参考になる?ならない?わからないです。
Javaは
J9 Exchanger.prc
J9 Java Launcher.prc
J9 Java VM.prc
J9 MIDP Bundle.prc
J9JavaVMMidp20_ja.prc
j9keystore.prc
j9secpol.prc
JavaVMCheck_jpJP.prc
これらをいれてみたけどメニューに現れず。。。なんで?まぁ、JavaいれてもOperaMiniぐらいだし、ネフロが動けばOperaもいらないかな?
しかし、ネフロ・・・相当完璧に近い。HalNaviEnablerでJOGモードにしてると、ほとんどハードキーだけで閲覧できる。スモールフォントもきれいに出るし・・・ここら辺はCJKOSの強みかな?半角カナのみかな~問題は・・・まぁ、またDELEGATEの登場かな?半角カナ→全角カナ変換だけならあんまり負荷かからんだろうし!
HRCapt20070710172327L.jpg
7/11 追記
Netfrontで、Yahooのトップページからニュースを開くと文字化けした・・・個人的にはあまり見ないからいいけど、痛い人には痛いかも・・・でも、結構使ってても、一度もフリーズやリセットはなしで安定してます。
と思ったら、CJKOSの「Smart Detect Char Set」にチェック入れるの忘れてた。これチェック入れたら文字化け直りました。

2007年7月4日水曜日

風邪

最初医者に行っても改善しなかったけど、薬を変更してもらってから何とか快方へ・・・相変わらず偶に咳は出るけど、体調は大分マシになった。

しかし長いな~。もうカレコレ3週間近く体調悪かったもんな~。よかったよかった!秊

[X01HT] 無線LAN時のみメールの定期受信

最近あんまりこっちのネタ書いてなかったな~。

最近はX01HTをWM6にアップグレードした"気になって"使っています。
あくまでその気で使ってるだけです。あくまで・・・

まぁその気になれば結構安定してたりいい事尽くめな"気がします"。(^^;

で、今までは、E-Mailの受信は無線LAN時に手動でやって、外出時に必要なときだけ、Open使う事にしてました。
これによって、パケし放題の基本料のみかプラスαぐらいでの運用にしています。貧乏人なので・・・さすがに1万オーバーはキツイ・・・

でも、家でアダプタに挿して無線LANしてるときはメールは自動受信して欲しい。でも外出時は手動でOpenに接続したい・・・

この設定標準では出来ないんですよね~。Outlookで自動受信にしてると、無線LAN時はWifiで、そうでないときは勝手にOpenに繋ぎにいっちゃうんです。

では、デフォルトの接続先をOpenではない、ダミーの接続を作って、そちらにしてると、何とかうまくいくけど、今度はOpenに切り替えるときにいちいち設定かえるの面倒くさい・・・

「インターネット接続」を社内LANにすり替えたり色々しても、なんかうまくいかない。片手落ちになる・・・

普段は、ダミーの接続をデフォルトにしておいて、必要時のみワンアクションでOpen指定で接続できるソフト探したけどなかなか見つかんない。

ちょっと惜しいソフトで、「KcsChangeConnection」ってのがあるんだけど、ちょっと主旨が違う・・・接続名を指定して接続するだけでいいのだ・・・

もう少し調べて、こんなページを見つけた。

http://www7a.biglobe.ne.jp/~bobby/x01ht_002.html#006

要するに、デフォルトの接続先を変更すると言うのは、レジストリの一部の値を、0と1に相互入れ替えするだけなのだ・・・

と言うわけで、それぞれ

Open接続用レジストリファイル
REGEDIT4

[HKEY_LOCAL_MACHINE\Comm\ConnMgr\Providers\{7C4B7A38-5FF7-4bc1-80F6-5DA7870BB1AA}\Connections\SoftBank]
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\Comm\ConnMgr\Providers\{7C4B7A38-5FF7-4bc1-80F6-5DA7870BB1AA}\Connections\ダミー接続名]
"Enabled"=dword:00000000


ダミー接続用レジストリファイル
REGEDIT4

[HKEY_LOCAL_MACHINE\Comm\ConnMgr\Providers\{7C4B7A38-5FF7-4bc1-80F6-5DA7870BB1AA}\Connections\SoftBank]
"Enabled"=dword:00000000

[HKEY_LOCAL_MACHINE\Comm\ConnMgr\Providers\{7C4B7A38-5FF7-4bc1-80F6-5DA7870BB1AA}\Connections\ダミー接続名]
"Enabled"=dword:00000001


を用意して、実行すれば言いわけです。これで何とかなりそう・・・と思ったけど、ハードキーに割り付けて使おうとすると、これも片手落ち・・・戻すときはいちいちレジストリファイル叩かなきゃならん・・・むぅ。

どうにかトグル操作でデフォルト接続先を変更できんものか?

・・・!!要はこのレジストリ捜査をするソフトを作ればいいんだ!・・・でも俺には開発環境がないし、そもそもそれだけの為にな~。

しばしネットを放浪・・・

MortScript
http://home.att.ne.jp/wave/deox_pop/mortscript.html

こんなのあるんだ!なになに・・・よしレジストリも弄れそうだぞ!

とりあえずダウンロード&インストール

http://www.sto-helit.de/index.php?module=download&action=view&entry=65

マニュアルを流し読み・・・

で、もう何年もIf文なんて書いたこと無かったので、ベタ過ぎるスクリプトだが、いいのだ!どうせ単純制御なんだし・・・で、出来たのがこれ、使う人いないと思うけど一応公開しときます。まぁ万一使うときは自己責任で・・・

ChangeOpenDummy.mscr
ChangeOpenDummy.mscr

D_Nameを作成したダミー接続名に適当に変更すればOK。

接続名:Dummy
アクセスポイント名:Dummy
パスワード:Dummy

とかで適当に作ってれば、勝手に接続しようとしても勝手に失敗してくれます。

このスクリプトを私の場合は、メモボタンの長押しに割り当てて、Open接続とダミー接続をトグルしてます。戻し忘れが怖いけど、まぁ、一応注意喚起のメッセージを入れましたんで・・・大丈夫だろう・・・

これで、Outlook側で私の場合15分おきに自動受信の設定をしておけば、家で、ActiveSync接続もしくはアダプタに挿して無線LAN接続してるときはメールは自動受信してくれますし、外出時は、ダミー接続に繋ぎにいってくれるので課金はされない。バッテリーは少々不安だが、私の使い方では問題ない。

外でやむを得ずメールを送受信したいときや、ネットをするときは、インターネットに接続したい直前でメモボタンを長押しすればOK。終われば忘れずもういちどメモボタンを長押し!

ちなみにOutlookでは、メールの送信のみが出来ないが、Outlookは送信してから受信なので、ステータスバーのメッセージをよく見ておき送信が終了し、受信が始まった瞬間に送受信を停止すれば、無駄なメールのダウンロードを防ぐことができます。

まぁ、誰かの参考になれば・・・ならんか・・・