自動 qinstall パッチツール

だいぶ時間がかかってしまいましたが、自動で qinstall.so にパッチを当てるツールができました。私が該当機種の qinstall.so を持っていなくても qinstall-fix 相当のパッチを自動で当ててくれます。

mokusei さんから、SL-6000 シリーズでも qinstall-fix を使いたいとご要望をいただいたのですが、 SL-6000 シリーズは ROM バージョンもまちまちで、アップデートイメージもSHARPから提供されていないようなので、今までの方法で全てのバージョンに対応することは不可能でした。

今回のツールを使うことで、そのような方でも qinstall-fix 相当が使えるようになるかもしれません。

ただし、自動でバイナリパッチを当てるというのはものすごく危険で、最悪 NAND Restore しないと起動しなくなる可能性がありますので、ご使用になる場合はご自身の責任でお使いください。

qinstall-fixが対応している機種をお持ちの方はqinstall-fixをお使いください。qinstall-fixが対応していない SL-6000 系の方のみお試しください。

ファイル

使い方

1. ザウルスの NAND backup を取ってください。

2. PCでファイルをダウンロードし、SD か CF に展開します。

展開すると readelf と generate-info という2つのファイルが作成されます。これを CF か SD のルートディレクトリに入れてください。

3. ザウルスに SD, CF を挿します。

4. ターミナルソフト (qpe-embeddedkonsole-ja 等) から以下のコマンドを実行します。

$ cd /mnt/card      ※ SD の場合
$ su
# ./generate-info /opt/QtPalmtop/binlib/qinstall.so

ファイルのチェックと自動パッチを行います。成功すると、 /opt/QtPalmtop/binlib/qinstall.so.patched というファイルが作成されます。

実行したときのログは重要な情報源になりますので、コピペして保存しておいてください。

ちなみに私が借りている SL-6000 では以下のようなログになりました。

# ./generate-info /opt/QtPalmtop/binlib/qinstall.so
/opt/QtPalmtop/binlib/qinstall.so
I: .text section found.
D: id: 12 addr:0x00012180 file:0x00012180
I: .rodata section found.
D: id: 14 addr:0x0003318c file:0x0003318c
I: getAvaliableSize symbol found.
D: symbol: 0x00026d78
D: str: /home/namikosi/cvs/c700.daito/qt-master/qt-2.3.2/include/qlistbox.h
D: embed area: 0x0000008c length: 68
I: Code found!! offset = 0x1e0 vaddr = 0x26f60
D: cat /opt/QtPalmtop/binlib/qinstall.so > /opt/QtPalmtop/binlib/qinstall.so.patched
I: ADDR mul:0x26f60 embed code:0x33218
I: File mul:0x26f60 embed code:0x33218
I: mul code: eb0030ae
I: 00026f60:ae3000eb
I: 00033218:2f866f00ffffffff925380e0000050e308509f15000055e300509f450ef0a0e1ffffff7f
I: 1db173a57facb468270cae6f946c751c /opt/QtPalmtop/binlib/qinstall.so
I: 0f4c9360fb875b57659b2c12d2f71ad2 /opt/QtPalmtop/binlib/qinstall.so.patched

5. オリジナルを保存して、qinstall.so.patched に差し替えます。

# mv /opt/QtPalmtop/binlib/qinstall.so /opt/QtPalmtop/binlib/qinstall.so-bak
# mv /opt/QtPalmtop/binlib/qinstall.so.patched /opt/QtPalmtop/binlib/qinstall.so

6. ザウルスを再起動します

7. パッチ当てが成功していれば 2GB を超えるメディアにも ipk をインストールできるはずです。

試してみた方は、以下の内容をコメント欄に張り付けてください。

  • 機種名 (SL-6000Nなど)
  • ROM version
  • 成功か失敗か
  • generate-infoコマンドを実行したときのログ

成功した場合は qinstall-fix にその結果をマージしたいと思います。

少々危険が伴いますが、SL-6000系をお持ちで人柱になってくださる方はご協力をお願いします。

関連した記事:


10 comments

  1. mokuseiです。
    無事成功です!
    ありがとうございます!正直ご対応いただけるか心配だったのですが、こんなに早く対応していただけるとは。感激です。
    とりあえず、報告事項です。
    ・機種名:SL-6000L
    ・ROM Version:1.08 JP
    ・成功!
    ・generate-infoコマンドを実行したときのログ
    # ./generate-info /opt/QtPalmtop/binlib/qinstall.so
    /opt/QtPalmtop/binlib/qinstall.so
    I: .text section found.
    D: id: 12 addr:0x00012174 file:0x00012174
    I: .rodata section found.
    D: id: 14 addr:0x00033180 file:0x00033180
    I: getAvaliableSize symbol found.
    D: symbol: 0x00026d6c
    D: str: /home/matty/6000L/qt-master/qt-2.3.2/include/qlistbox.h
    D: embed area: 0x0000008c length: 56
    I: Code found!! offset = 0x1e0 vaddr = 0x26f54
    D: cat /opt/QtPalmtop/binlib/qinstall.so > /opt/QtPalmtop/binlib/qinstall.so.patched
    I: ADDR mul:0x26f54 embed code:0x3320c
    I: File mul:0x26f54 embed code:0x3320c
    I: mul code: eb0030ae
    I: 00026f54:ae3000eb
    I: 0003320c:2f866f00ffffffff925380e0000050e308509f15000055e300509f450ef0a0e1ffffff7f
    I: 9ac516c0fb4cda738386febf3fcd395b /opt/QtPalmtop/binlib/qinstall.so
    I: a60462c4223cc40160668cbcffa4a670 /opt/QtPalmtop/binlib/qinstall.so.patched

    これでzaurus生活が快適になります。本当にありがとうございます!

  2. 興奮気味のmokuseiです。相変わらずわかっていないので、確認させてください。
    今回の方法で大容量SDカードにインストール可能になりましたが、どこまで有効な状態なのでしょうか。具体的には、本体を完全初期化した場合は無効になると考えてよろしいのでしょうか。
    ちなみに今回、試すにあたっては、完全初期化後にqpe-embeddedkonsole-jaとzaurus-sd-driver-update_2.0-for-6000_arm.ipkのみをインストールし、ご指示とおりにパッチを当てました。その後、試しにbunkoviewer_3.0.07V_arm.ipkとaBookReader_0.9.1_arm.ipkをSDHCカード(東芝製16GB)にインストールして動作確認を行いました。
    前回、大容量SDカードを使用可能にしていただいたのですが、SDにアプリケーションのインストールが可能になるかどうかで、運用方法を考えているところでした。ご対応に重ね重ね感謝いたします。

    • mokusei さん、早速試していただきありがとうございました。
      一応私の SL-6000 や他の SL-C1000 などでも動作確認はしたものの、
      他の方の機器でもちゃんと動くかちょっと心配だったのですが、
      ちゃんと動いてくれたようで、安心しました。

      この修正は完全初期化で元に戻ってしまいます。
      毎回パッチ当てを実行するのは面倒だと思いますので、mokusei さんのログを元に、qinstall-fix パッケージを修正して qinstall-fix のインストールでパッチが当たるようにしたいと思います。
      もう少し他機種の情報も待って、まとめて対応しようと思いますので、もうしばらくお待ちください。

      • mokuseiです。知人のSL-6000N(たしか、ROM1.07JP)でも試してみる予定です。後日、結果報告いたします。

        • 私の周りには SL-6000 系を持っている人がいないので、貴重な情報になります。
          よろしくお願いします。

  3. mokuseiです。
    別の機体でSDHC(16GB)へのインストール、動作確認いたしましたので、ご報告いたします。

    ・機種名:SL-6000N
    ・ROM Version:1.07 JP
    ・成功!
    ・generate-infoコマンドを実行したときのログ

    # ./generate-info /opt/QtPalmtop/binlib/qinstall.so
    /opt/QtPalmtop/binlib/qinstall.so
    I: .text section found.
    D: id: 12 addr:0x00012178 file:0x00012178
    I: .rodata section found.
    D: id: 14 addr:0x00033184 file:0x00033184
    I: getAvaliableSize symbol found.
    D: symbol: 0x00026d70
    D: str: /home/matty/master/qt-master/qt-2.3.2/include/qlistbox.h
    D: embed area: 0x0000008c length: 57
    I: Code found!! offset = 0x1e0 vaddr = 0x26f58
    D: cat /opt/QtPalmtop/binlib/qinstall.so > /opt/QtPalmtop/binlib/qinstall.so.patched
    I: ADDR mul:0x26f58 embed code:0x33210
    I: File mul:0x26f58 embed code:0x33210
    I: mul code: eb0030ae
    I: 00026f58:ae3000eb
    I: 00033210:2f866f00ffffffff925380e0000050e308509f15000055e300509f450ef0a0e1ffffff7f
    I: ff979cb07963d5f8a0e8e9fdf3b7f70a /opt/QtPalmtop/binlib/qinstall.so
    I: a3ad28e5fedf9140219c85442a879fae /opt/QtPalmtop/binlib/qinstall.so.patched

    順調なようですね~。

    • ご友人の機体でも試していただいてありがとうございました。
      これで SL-6000D,N,L とだいぶ揃いましたね。
      もう少し他の方の情報も待って qinstall-fix にマージします。
      貴重な情報ありがとうございました!

  4. サーバーのメンテナンスお疲れ様でした。大変だったようですが、短時間で復帰したようで良かったです。
    さて、また素人な質問で恐縮なのですが、仮にSL-6000にスペシャルカーネルを導入する場合、qinstall パッチはどうしたらよろしいですか。スペカ導入後にご案内いただいている手順で再度qinstall パッチをあてればよろしいでしょうか。すぐにスペカを入れるということでもないのですが、「zaurus で radiko を聴く!」を読んでいたら入れようかなと。。。

    • mokusei さん、こんばんわ。

      qinstall はカーネルとは関係なく、カーネルに依存していないので、既にパッチが当たっている状態で、スペシャルカーネルに書き換えてもそのまま使えます。
      radiko の mplayer ですが、もしかしたらスペシャルカーネルにしなくても実用的な速度にできるかもしれませんので、もうしばらく待って頂ければと思います。

  5. #成功したようです。無事動いています。
    qinstall-fixすらインストール出来ない状態になってしまいましたので
    qinstall-toolをあてました。

    #機種名 SL-C3000改 Trancend 64GB-CF x400
    #ROM version –.–
    (downloads.conics.net/pda/zaurus-sl-c700/service-menus/original-backups/に保管されていたROM)

    #generate-infoコマンドを実行したときのログ
    /opt/QtPalmtop/binlib/qinstall.so
    I: .text section found.
    D: id: 12 addr:0x000121a4 file:0x000121a4
    I: .rodata section found.
    D: id: 14 addr:0x00032f64 file:0x00032f64
    I: getAvaliableSize symbol found.
    D: symbol: 0x00026d80
    D: str: /home/namikosi/cvs/build3/qt-master/qt-2.3.2/include/qlistbox.h
    D: embed area: 0x0000008c length: 64
    I: Code found!! offset = 0x168 vaddr = 0x26ef0
    D: cat /opt/QtPalmtop/binlib/qinstall.so > /opt/QtPalmtop/binlib/qinstall.so.patched
    I: ADDR mul:0x26ef0 embed code:0x32ff0
    I: File mul:0x26ef0 embed code:0x32ff0
    I: mul code: eb003040
    I: 00026ef0:403000eb
    I: 00032ff0:2f866f00ffffffff925380e0000050e308509f15000055e300509f450ef0a0e1ffffff7f
    I: cd2629a9cd451bcd3e5198f933bb0c33 /opt/QtPalmtop/binlib/qinstall.so
    I: 0d8424ef2dbf8e897043daa5ece79024 /opt/QtPalmtop/binlib/qinstall.so.patched

    ありがとうございました。助かりました!

コメントを残す

メールアドレスが公開されることはありません。


*