HN 日本語サマリー

← 一覧へ戻る
Web開発

Tess's Android Wayland Compositor

Tess's Android Wayland Compositor (github.com)

69 pointsby schmorptron11 コメント

要約

Tess's Android Wayland Compositor (tawc) は、root権限なしでAndroid上でLinuxのCLIおよびグラフィカルプログラムを実行できるプロジェクトです。このシステムは、パフォーマンスの高いPRoot代替であるtawcroot、Waylandコンポジタ、およびUIで構成されており、Linuxディストリビューション(Arch Linux ARMやDebianなど)をAndroidデバイスに展開します。これにより、ネイティブのグラフィックススタックを利用したハードウェアアクセラレーション付きのグラフィカルアプリ実行や、Androidデータとの連携が可能になります。

全文翻訳

Tess's Android Wayland Compositor tawcは、root権限なしでAndroid上でCLIおよびグラフィカルなLinuxプログラムを実行します。グラフィカルアプリは、スマートフォンのネイティブグラフィックススタックによるハードウェアアクセラレーションを取得します。このプロジェクトは、tawcroot(PRootのパフォーマンスの高い代替)、Waylandコンポジタ、およびそれらを統合するUIで構成されています。このプロジェクトはエージェントによって構築されており、主にClaude Codeと最新のAnthropicモデルを使用しています。 機能 * アプリは、使い慣れたターミナルUIのためにTermuxのウィジェットを埋め込んでいます(Termuxアプリ自体は不要です)。 * グラフィカルアプリがインストールされると、tawcのランチャーメニューから実行できます。 * Linuxアプリはスマートフォンのホーム画面に追加でき、Androidアプリと並んでアプリスイッチャーに表示されます。 * XWaylandが含まれており、ハードウェアアクセラレーション付きX11サポートのために配線されています。 * 組み込みのタスクマネージャーにより、実行中のLinuxプロセスを表示および終了できます。 * andoコマンドとストレージバインドにより、必要に応じてLinuxプログラムがAndroidデータと対話できます。 高レベル設計 * Arch Linux ARMやDebianのような標準的なLinuxディストリビューションがダウンロードされ、展開されます。 * ディストリビューションのネイティブパッケージマネージャーを含むLinuxプログラムは、tawcrootを使用してディストリビューションのrootfsの「内部」で実行されます。 * tawcrootは、rootレスAndroidの制限を克服するためにchrootやその他のシステムコールをエミュレートします(PRootに似ていますが、単一プロセスを使用するためより高速です)。 * SmithayベースのWaylandコンポジタがAndroid統合を提供します(通常のAndroidキーボードからの入力の受け渡しなど)。 * libhybrisにより、glibc Linuxプログラムが標準のAndroidグラフィックスドライバーをロードできます。 * アップストリームのlibhybrisは標準のAndroidでは動作しませんが、私たちのフォークは動作します。 制限事項 * Android自身のメカニズムを超えたLinuxアプリの真のサンドボックス化はありません。単一プロセスの設計のため、tawcrootから脱出される可能性があります。 * デスクトップGLサポートはなく、スマートフォンが提供するグラフィックスAPI(一般的にはGLESとVulkan)のみです。 * ゲームはまだテストまたは最適化されていません。 * パフォーマンスは代替手段より優れていますが、ネイティブではありません。 * 現時点ではarm64の公式ビルドのみです。x86用にビルドできますが、libhybrisのトリックはarmに依存しています。 * Android 10以降が必要です。 * 詳細についてはAGENTS.mdを参照してください。 貢献 PRよりもIssueを優先します。バグレポートや機能リクエストは歓迎しますが、特定のタイムラインで対応できる保証はありません。IssueにLLMで書かれたコンテンツが含まれている場合は、それを明確にマークしてください(理想的にはどのLLMが書いたかを示してください)。常に人間が書いた説明を含めてください。アプリのバージョン、スマートフォン、Androidバージョン、ディストリビューション(該当する場合)を含めてください。 TL;DR、良い例: Issueタイトル: program foo crashes tawc v1でPixel 10の標準Android 17を実行していますが、Archを使用しています。pacmanでfoo v1.2をインストールしましたが、起動時にクラッシュします。この問題についてfableに尋ねたところ、次のように言われました。 [CLAUDESLOP] 悪い例: PRタイトル: [CLAUDESLOP] [CLAUDESLOP] Code: UNEXPLAINED CLAUDESLOP ライセンス deps/ 以外のすべてのコードはMIT(LICENSE.MIT)です。ベンダー依存関係(termux-sharedのextra-keysウィジェット)にはGPLv3コードが一部含まれているため、プロジェクト全体としてはGPLv3(LICENSE)です。アプリにバンドルされているすべてのコンポーネントごとの帰属表示は、アプリ内のSettings → About → Licensesにあります。