新訳:ADB Helperをハックしてみた(install.rdf,main.js)

この記事は『Firefox OS / B2G OS Advent Calendar 2016』 10日目の記事です。
Firefox OS で、使用されている「ADB Helper」を再度まとめ直してみました。

目次

前回、新訳:ADB Helperをハックしてみた(前篇)に引き続き、adb-helperをハックしていきたいと思います

  1. フォルダ内のファイル構成
  2. install.rdf
  3. main.js
  4. 今回のまとめ
  5. 関連記事
  6. 今年のAdvent Calendar
フォルダ内のファイル構成

 

[ 解凍フォルダ内のjsファイル群 ]
windows
mac
linux

install.rdf

main.js

adb.js

adb-client.js

adb-running-checker.js

adb-socket.js

bootstrap.js

scanner.js

device.js
※1
※1
※1

devtools-import.js
※1
※1
※1

devtools-require.js
※1
※1
※1

fastboot.js
※1
※1
※1

subprocess.js
※2
※2
※2

subprocess_worker_win.js
※3
※3
※3

subprocess_worker_unix.js
※4
※4
※4

 
※1 : version 0.7.1 時点では無かったファイル
※2 : version 0.7.1 時点で有ったファイル
※3 : version 0.7.1 時点で有ったファイル、Windows用ファイル
※4 : version 0.7.1 時点で有ったファイル、mac,linux用ファイル

OS毎に使用されるファイルが有る事が確認できます。

install.rdf

 
rdfファイル
Resource Description Framework (リソース・ディスクリプション・フレームワーク、RDF) とは、
ウェブ上にある「リソース」を記述するための統一された枠組
weblioより抜粋

ご覧の通り、中身はXMLファイルでした。

並びはWindos,mac,Linuxの順番です。

各OSとの差異は無いか比較してみると・・・・・。

トピックは、versionタグとupdateURLタグです。
updateURLタグは、ご覧の通り各OSのURLへ繋がるようになっていますね。

2014.11.06 時点から、かなりバージョンアップしているのが分かります。

main.js

 
次は、main.jsを見たいと思います。

2014.11.06 時点から、かなりバージョンアップしているのが分かります。

こちらは、ご覧の通り、各OSでの差異はありません。
関数がどの程度有るか調べると・・・・・・・

拡大すると下記画像になります。

 

関数名
処理概要

ファイル先頭部
  • defineLazyGetter 定義
  • events 定義
  • system 定義
  • Devices 定義
  • gDevToolsBrowser 定義
  • defineLazyGetter を用いて、adb.js 取得
  • defineLazyGetter を用いて、fastboot.js 取得
  • defineLazyGetter を用いて、device.js 取得

onADBStart()
  • devtools/client/webide/modules 内の runtimes を読み込み
  • runtimes のインスタンス Runtimes が存在する時

    • scanner.js を読み込み
    • scanner.js を登録
  • adb.js が開始された時、trackDevices() 実行

onADBStop()
adb.js を停止します。

onFastbootStart()
fastboot.js の startPolling() を実行

onFastbootStop()
fastboot.js の stopPolling() を実行

onConnected(deviceId)
Device のインスタンス device を引数 deviceId 用いて登録

onDisconnected(deviceId)
Device のインスタンス device を引数 deviceId 用いて登録解除

 

アドオンの main.js コードは、アドオンが読み込まれるとすぐに実行されます。
※ADD-ON SDKより抜粋

参考リンク
  • アドオンのロードとアンロードのリッスン
    https://dev.mozilla.jp/addon-sdk-docs/dev-guide/tutorials/load-and-unload.html
  • Lifecycle – Add-on SDK (Jetpack SDK) – あすかぜ・ねっと
    http://www.asukaze.net/etc/jetpack/105.html
  • Device.jsm
  • 今回のまとめ

     
    数年ぶりに同じアドオン/ xpi ファイルをハックしてみると
    ソースの読み方やバージョンアップによる改変の度合いが良くわかります

    コードの見え方も変わっているのを感じます。
    引き続きハックしていきたいと思います。

    関連記事

    今年のAdvent Calendar

    去年のAdvent Calendar

    Add a Comment

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です