Skip to content

Instantly share code, notes, and snippets.

@z80oolong
Last active May 29, 2019 07:58
Show Gist options
  • Save z80oolong/3e353bd8f0b44f415880d047b4dad4af to your computer and use it in GitHub Desktop.
Save z80oolong/3e353bd8f0b44f415880d047b4dad4af to your computer and use it in GitHub Desktop.
Debian noroot 環境において dropbear の動作に不具合が生じる問題を修正するための差分ファイル

Debian noroot 環境において dropbear の動作に不具合が生じる問題を修正するための差分ファイル

告知 (2019/05/28)

これまで、本稿の Gist にて公開しておりました dropbear において、 Debian noroot 環境にて正常に動作させる為の差分ファイルについて、差分ファイルの分量が多くなったことに伴い、今後は以下の Github のリポジトリにて dropbearDebian noroot 対応差分ファイルを公開することと致します。

なお今後、本 Gist には本稿のみを残しておきますので、差分ファイルにつきましては上記 URL より取得して下さいますよう御願い致します。以上誠に勝手ながらどうか御了承下さいますよう御願い致します。

概要

これらの差分ファイルは、軽量な SSH サーバである dropbear のうち、安定版の dropbear 及び github 上の dropbear において、一部 bug fix を行い、 Debian noroot 環境において正常に動作させる為の差分ファイルです。

これらの差分ファイルでは、 Android OS 5.0 以降 における Debian noroot 環境において、擬似端末デバイスファイルである /dev/pts/* の所有権及び権限の変更が出来ない制約を回避し、また、システムコール link(2) の実行を回避しています。

差分ファイルの適用とコンパイル

dropbear のソースコードに差分ファイルを適用するには、安定版の dropbear には、差分ファイル dropbear-x.y-fix.diff (ここに、 x.y は安定版のバージョン番号) を、github 上の dropbear には、差分ファイル dropbear-HEAD-xxxxxxxx-fix.diff (ここに、 xxxxxxxx は、リビジョン番号) をそれぞれ適用して下さい。

例えば、安定版の dropbear のソースコードに dropbear-x.y-fix.diff を適用するには、安定版の dropbear のソースコードが置かれているディレクトリより、以下のようにして差分ファイル dropbear-x.y-fix.diff を適用します。

 $ patch -p1 < /path/to/dropbear-x.y-fix.diff
 (ここに、/path/to/diff は、 dropbear-x.y-fix.diff が置かれたディレクトリのパス名)

そして、 github 上の dropbear のソースコードに dropbear-HEAD-xxxxxxxx.diff を適用するには、 github 上の dropbear のソースコードが置かれているディレクトリより、以下のようにして差分ファイル dropbear-HEAD-xxxxxxxx.diff を適用します。

 $ patch -p1 < /path/to/dropbear-HEAD-xxxxxxxx.diff
 (ここに、/path/to/diff は、 dropbear-HEAD-xxxxxxxx.diff が置かれたディレクトリのパス名)

なお、これらの差分ファイルを適用した dropbear のソースコードを Debian noroot 環境においてコンパイルするには、./configure コマンドの実行時に以下のようにして、環境変数 CFLAGS-DDEBIAN_NOROOT を設定する必要があります。

 $ CFLAGS="-DDEBIAN_NOROOT" ./configure --prefix=...  # (以下、適宜オプションを設定すること。)

謝辞

なお、これらの差分ファイルの作成に当たっては、 termux の開発コミュニティ による差分ファイルを参考にしました。 termux の開発コミュニティの皆様には心より感謝致します。

追記

2017/08/27 の追記

安定版の dropbear である dropbear-2017.75 の差分ファイルに誤りがありましたので、訂正を行いました。

2018/02/03 の追記

github 上の dropbear の HEAD の commit である 8ffa8f72 に対応した差分ファイル dropbear-HEAD-8ffa8f72-fix.diff を追加し、 obsolute となった差分ファイル dropbear-HEAD-a5ec3aca-fix.diffを削除しました。どうか御了承下さい。

2018/03/23 の追記

github 上の dropbear の HEAD の commit である d740dc54 に対応した差分ファイル dropbear-HEAD-d740dc54-fix.diff を追加しました。これに伴い、差分ファイル dropbear-HEAD-8ffa8f72-fix.diffを削除しました。どうか御了承下さい。

2017/04/13 の追記

安定版の dropbear である dropbear-2018.76 に対応した差分ファイル dropbear-2018.76-fix.diff を追加しました。

2018/10/06 の追記

github 上の dropbear の HEAD の commit である 6f6ef483 に対応した差分ファイル dropbear-HEAD-6f6ef483-fix.diff を追加しました。これに伴い、差分ファイル dropbear-HEAD-d740dc54-fix.diffを削除しました。どうか御了承下さい。

2019/03/19 の追記

github 上の dropbear の HEAD の commit である cb945f9f に対応した差分ファイル dropbear-HEAD-cb945f9f-fix.diff を追加しました。これに伴い、差分ファイル dropbear-2017.75-fix.diff, dropbear-HEAD-6f6ef483-fix.diffを削除しました。どうか御了承下さい。

2019/04/19 の追記

github 上の dropbear の HEAD の commit である cb945f9f に対応した差分ファイル dropbear-HEAD-cae6e6af-fix.diff を追加しました。これに伴い、差分ファイル dropbear-HEAD-cb945f9f-fix.diffを削除しました。どうか御了承下さい。

2019/04/20 の追記

安定版の dropbear である dropbear-2019.78 に対応した差分ファイル dropbear-2018.76-fix.diff を追加しました。これに伴い、差分ファイル dropbear-2018.76-fix.diffを削除しました。どうか御了承下さい。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment