禁止ヨータを回避して電話からインターネットを配布したり、Androidカーネルモジュールを収集したりする普遍的な方法

古い方法とその欠点


Yotaが、ある人が電話をモデムモードで使用するかアクセスポイントモードで使用するかをどのように判断するかについて、 2度目 (または3度目 )を読むことに興味がある人はいないと思います。 「なぜ別の記事が必要なのですか?」とあなたは尋ねます。

実際には、リンクによって提供される回避策では電話機を設定できないため、後でデバイスを接続したときに再度設定する必要はありません。 さらに、ユーザーが複数のデバイスを異なるTTLで接続すると、深刻な不便を経験します。 少なくともそれらの1つのTTLを変更する必要があります。

これらの理由から、「インターネットをオフィス全体に無料で配布するにはどうすればよいですか?」という永遠の質問に対する答えを探してさらに掘り下げようと思いました。 そして、私はそのような答えを見つけることができました(アンドロイドの場合のみ、リンゴはありません)。

終了したプログラム


YotaがTTLを監視していることがわかったとき、おそらく他の国にも同じことをしているプロバイダーがいると思いました。 Playマーケットの検索でTTLを入力しようとしています。

私は正しかった: TTLEditorプログラムはすぐそこに見つかりまし 。 無料であるだけでなく、 オープンソースであることは非常に素晴らしいことです。
使用方法は非常に簡単です。インターフェイスを選択し(電話がプロバイダーに接続されるインターフェイスを選択するのが最善です。rmnet0があります)、[OK]をクリックします。 電話の起動時にプログラムを動作させることもできます。



問題が1つだけ発生しました。プログラムが「 TTL更新に失敗しました 」エラーをスローしました。 コメントで著者をscり、Play Marketを差し引く前に、ソースコードを読むことにしました。

ご注意 おそらく、プログラムはお使いの携帯電話モデルですぐに動作します。 あなたはとても幸運で、この記事を閉じて、人生を楽しんでください。

エラーの原因


プログラムの主なアクションは、次のコマンドをルートとして実行することです。
iptables -t mangle -A POSTROUTING -o <インターフェイス> -j TTL --ttl-set <TTL値>
このコマンドが何をするのかを理解するのに多くの頭脳は必要ありません(プログラムでこれについても記述されています):特定のインターフェイスを通過するすべてのパケットにTTL値を設定します(つまり、必要なものだけです)。

コマンドを手動で実行しようとすると、次のエラーが表示されました: iptables:No chain / target / match by that name 。 数分間のグーグル検索では、 iptablesがほとんどすべての不正なパラメーターでこのエラーを出す準備できていることが示されました。 GoogleはTTLに関連して、まだ何かを見つけます 。 見つけた情報がどれほど適切かを調べます。

cat /proc/net/ip_tables_matchesは、 ttlがあるリストを生成します。つまり、カーネルはTTLをチェックできます。 しかし、コマンドcat /proc/net/ip_tables_targetsで指定されたリストにはTTLがないため、カーネルはTTLを変更できません 。 モバイルプロバイダーとメーカーのこのような厚かましい陰謀をあきらめることはありません。そのため、不足しているカーネルモジュールを組み立てます。

この段階では、CyanogenModユーザーはすでに笑っていますが、通常のシステムをそれほど簡単に放棄したくはありませんでしたが、カーネルを交換することなく、新しい機能を追加したかったのです。

リトリート


さらに、読者はLinuxの使用方法を知っており、カーネルとカーネルモジュールが何であるかを理解しており、adbを使用してファイルを転送する方法(adbプッシュ/プル)とコンピューターの電話端末(adbシェル)を開く方法も知っていると思います。 そうでない場合-緊急にグーグルに! その場合は、USBデバッグを有効にしてください。

収集するものとその方法


これが最も難しいステップです。適切なクロスコンパイラとカーネルソースを見つける必要があります。 それ以外の場合は、おそらくそれが機能しないので(そして、これは最後のステップでのみ知られているので)、あなたの電話を特に検索してみてください。 この段階でいくつか失敗し、ミスを犯しました。

携帯電話のモデルはSony Xperia Z1 Compactで、コンピューターのオペレーティングシステムはUbuntu 14.04です。 以下の例では、どのように行動できるかを示します。





セットアップと組み立て


カーネルを初めて組み立てるプロセスに直面している人は、パニックに屈しないでください。Googleでは、私たちは常に神のような存在です。







電話でモジュールを使用する


xt_HL.koモジュールxt_HL.ko電話機に投げて、 insmodコマンドでカーネルに接続しようとします。
このコマンドでエラーが発生した場合は、 dmesg出力で詳細を確認できます(おそらく、カーネルとモジュールのバージョンまたは同様のものとの競合です-これは、誤ったカーネルソースまたはクロスコンパイラが使用されたことを意味します)。

insmodコマンドが成功した場合、モジュールがカーネルに接続できたことを意味します( lsmodコマンドで確認できます)。
その後、TTLEditorが失敗したコマンドを実行しようとします。 エラーは発生しませんか? そのため、ルールがリストに追加されました。 iptables -t mangle -L確認できます:



私たちは、あらゆるデバイスにインターネットを配布し、喜ぶよう努めています。

スタートアップセットアップ


最後の手順は残ります。必要なときにいつでもインターネットを配布できるようにすることです。

次の内容でsetup_ttl_editing.shファイルを作成します。
 #!/system/bin/sh insmod /storage/sdcard0/xt_HL.ko iptables -t mangle -A POSTROUTING -o rmnet+ -j TTL --ttl-set 64 

電話にドロップし、 Script Managerプログラムをインストールして、システムの起動時にrootとしてスクリプトを実行するように設定します。



すべての設定が完了したら、携帯電話からインターネットを配布する問題を忘れることができます!

ご注意 TTLEditorプログラムは必要ありません。 必要なものはすべてスクリプトに既に記述されています。

おわりに


他の多くのモバイルプロバイダーと比較して、まだかなり寛大なのでイオタ、貪欲にならないでください 」とは書きません 。 私は言った方がいいです:イオタ、あなたと同じまま。

このリンクから、Xperia Z1 Compact用に入手しxt_HL.koファイルダウンロードできます
おそらく、同様の電話モデルに適しています。

2015年3月13日からUPD。 Xperia V Android 4.3、ファームウェアバージョン9.2.A.2.5のxt_HL.ko ファイルのユーザーCTE6EJIbに感謝します
2015年8月1日からUPD。 Xperia Z1 Compact for Android 5、ファームウェアバージョン14.5.A.0.270用にコンパイルされています。 ダウンロード

Source: https://habr.com/ru/post/J238625/


All Articles