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」にチェック入れるの忘れてた。これチェック入れたら文字化け直りました。

0 件のコメント:

コメントを投稿