Значение ттл патч для андроид

/4te.me

Столкнулся с проблемой раздачи интернета с Android-телефона на другие устройства, через мобильную точку доступа, у некоторых операторов. Оператор или вообще запрещает раздавать интернет, или берет за это деньги. Однако есть способы обойти этот запрет. Здесь расскажу, что у меня получилось.

Как оператор узнает, что интернет раздается

Оператор на своей стороне смотрит на значение TTL в заголовках IP-пакетов, приходящих от клиента. Схематично выглядит так:

Если на телефоне открывать в браузере какую-нибудь страничку, то провайдеру от телефона будут приходить пакеты с TTL 64. Такие пакеты он пропускает.

Но если включить мобильную точку доступа, подключиться к ней, например, с планшета, и на планшете открыть страницу, то, проходя через мобильную точку доступа на телефоне TTL будет уменьшаться на 1 и провайдеру будут уходить пакеты с TTL 63, которые он будет отбрасывать. Уменьшение TTL при прохождении через роутер — это стандартизированное поведение роутера, такое поведение предусмотрено стандартом RFC791.

В этой ситуации выхода два — либо на планшете выставлять TTL 65, чтобы, проходя через телефон, провайдеру приходили пакеты с TTL 64, либо на самом телефоне делать так, чтобы он не уменьшал TTL.

Если wi-fi клиент — дектоп-машина с Windows или MacOS, то выставить TTL 65 можно одной командой.

Windows

Создать в реестре ключ

типа REG_DWORD со значением 65 (в десятичной системе)

MacOS

Команда в консоле:

Но если клиент планшет на iOS или другое устройство, где нельзя просто так выставить TTL, то придется воспользоваться вторым способом — заставить телефон не уменьшать TTL для проходящих через него пакетов. Это может быть не совсем просто.

Учим телефон не уменьшать TTL

Этот способ потребует root-права (инструкция) на android-телефоне или jailbreak на iOS. Т.к. я делал это на Android, то опишу как делать для него. Про iOS здесь инструкции не будет.

Для разных устройств, процедура будет отличаться, я постараюсь рассказать в чем будут заключаться эти отличия. В данном примере я использую OnePlus 3 и Android 8.0 Oreo

Итак, у нас есть Android телефон с root-правами. Узнаем, умеет ли ядро системы работать с TTL. Для этого смотрим содержимое двух файлов на телефоне (например с помощью приложения ES Проводник, оно умеет смотреть системные файлы):

В обеих должно быть упоминание TTL. В моем случае в ip_tables_targets упоминания ttl не было. Это значит, что ядро не умеет изменять TTL. Чтобы его научить этому, нам понадобится из исходников собрать модуль ядра и загрузить его в телефон.

Как собрать модуль ядра

  • ОС — Linux или MacOS (можно собрать и на Windows — см.ниже)
  • исходники ядра для конкретного устройства
  • toolchain определенной версии и опредленной архитектуры
Читайте также:  Тюнер для гитары android

Я собирал модуль на Windows, но используя, Ubuntu-подсистему в Windows 10. Как ее включить я писал здесь. Если у вас не Win10, то придется ставить Ubuntu на VirtualBox-машину.

Для своего OnePlus 3 я брал исходники ядра здесь — https://github.com/OnePlusOSS/android_kernel_oneplus_msm8996 (msm8996 — это модель процессора Qualcomm Snapdragon 820 MSM8996). Исходники для Android 8.0 Oreo в ветке QC8996_O_8.0.0

Для других Oneplus-ов можно взять их рядом — https://github.com/OnePlusOSS. Для других моделей телефонов надо искать исходики где-то в интернете или на сайте производителя.

Toolchain — это утилиты для сборки кода под опредленную платформу. Узнать какая именно нужна для вашего телефона можно так:

В моем случае это aarch64 . Из этого вывода также понадобится версия gcc: 4.9 и версия ядра: 3.18.66-perf+

Далее идем сюда — https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/ и скачиваем нужный тулчейн. Версии для MacOS можно найти также по этой ссылке. В моем случае я скачал aarch64-linux-android-4.9 , здесь aarch64 и 4.9 совпадает с теми версиями которые мы узнали выше.

Теперь идем в консоль и готовимся к компиляции. Установим необходимые тулзы и склонируем репы с тулчейном и исходниками ядра в домашнюю папку:

В исходниках ядра смотрим в папку arch и подбираем нужную архитектуру. В моем случае в этой папке, нет aarch64 , но есть arm64 . Это то же самое, просто называется по другому. Буду использовать эту архитектуру. Указываем ее и путь до бинарей тулчейна в переменных окружения:

Теперь надо создать конфиг для будущей сборки. Возможные варианты конфигов в моем случае лежат в папке с исходниками ядра в arch/arm64/configs (вместо arm64 может быть ваша архитектура). Вспоминая версию ядра, которая установлена в телефоне, выбираю конфиг msm-perf_defconfig :

После того как конфиг создан, нам надо внести в него изменения, чтобы нужный нам модуль для фиксации TTL скомпилировался. Для этого выполняем:

Появится интерактиваная утилита, в которой нужно найти нужный модуль.

Переходя по дереву внутрь, и, найдя TTL Target support , нажать M, чтобы указать, что нужно скомпилировать этот модуль.

Сохраняем конфиг, выходим и собираем ядро с модулями:

Если ошибок не было, то в папке с исходниками должен появится файл net/netfilter/xt_HL.ko

Вот мой скомпилированный файл для OnePlus 3, Android 8.0.0 — xt_HL.ko. Можно сразу взять его, если совпадает модель телефона и версия системы.

Копируем его на телефон, и через adb shell пытаемся включить его (чтобы в adb shell работал su, надо в /system/build.prop добавить строку ro.debuggable=1 , например с помощью ES Проводника):

Если модуль загрузился, можно пробовать зафиксировать TTL:

И наконец, добавляем в автозагрузку телефона скрипт, который будет включать фиксацию TTL:

Такой скрипт я положил в /sdcard/fixttl.sh , и с помощью приложения ScriptManager, добавил в автозагрузку.

Всё! Теперь с этого телефона можно раздавать интернет!

Источник

Особенности замены TTL на Android без root прав

Большинство операторов связи ограничивают раздачу интернета со смартфона. В этом случае трафик либо полностью отсутствует, либо возможен по другой цене (часто сильно увеличен). Обход таких ограничений возможен. Предложенный материал объяснит, как изменить ttl на андроид без root прав и при наличии их.

Читайте также:  Донт старв кораблекрушение андроид

Понятие TTL?

Назначение его – не допустить вечного «блуждания» по просторам интернета пакетов цифровой информации. Показатель «времени жизни» всё время изменяется при перемещении между разными маршрутизаторами.

TTL – это фактически максимальный срок службы пакета с информацией или предельное количество перемещений его между гаджетами (английская аббревиатура — Time to live). Если подробнее, то для компьютерной сети этот показатель соответствует диапазону 0-255.

Большинство гаджетов Android (да и iOS тоже) имеют начальное значение ТТЛ=64. В компьютере на базе ОС Windows значение его будет от 128. Каждый переход по беспроводному каналу значение этого числа будет уменьшаться на единицу. Проведя много скачков между клиентами, этот показатель в определённый момент становится нулевым. В итоге вся информация из этого пакета уничтожается в автоматическом режиме.

Так как показатель TTL каждый раз передаётся провайдеру, то он способен увидеть, проходил ли поток данных через «лишние» маршрутизаторы (т.е. другие устройства).

ТТЛ используется провайдерами с целью ограничить безлимитный интернет, не допустить подключения к нему от нескольких различных источников. После перехода смартфона на базе Андроид в режим раздачи, информация передаётся по трафику при TTL= 64. Получающее пакет данных устройство автоматически снижает базовый уровень на 1. А провайдер получает пакет с пометкой равной 64 и 63. В результате оператор связи производит блокировку этой сети. В основном это не даёт возможности раздавать интернет посредством Wi-Fi.

Зачем нужна замена TTL?

Раздавая интернет при помощи смартфона на базе Андроид, можно отметить, что некоторые приборы легко присоединяются к сети, а при вхождении других сразу поступает предупреждение (сообщение) оператора связи о снижении скорости раздачи либо повышении стоимости услуги. Причиной этих предупреждений являются отличия в показателях ТТЛ у аппаратов (раздающего интернет и принимающих этот сигнал).

При возникновении такой проблемы у пользователя сразу возникает мысль, как поменять ттл на телефоне без рут прав на андроид. Как правило, желающих приобретать более дорогой пакет, не израсходовав всего лимита интернета в предыдущем, будет не много. Простейший способ – поменять ТТЛ на устройстве-приёмнике сигнала, т.е. компьютере. Можно также изменить этот параметр и на гаджете, который раздаёт. Однако это может привести к проблемам с доступом для аппаратов, которые раньше «конектились» беспроблемно.

Проверка прав суперпользователя на смартфоне

Для изменения значения «времени жизни» у андроид-устройства, необходимо получить права администратора (root-права). Поможет в этом дополнительный софт, который бесплатно можно скачать на Google Play. Позволят определить имеющиеся права суперпользователя популярные приложения – Root Checker или Terminal Emulator. Интерфейс первого приложения очень прост и позволяет произвести проверку интуитивно. При пользовании же второй необходимо ввести в командной строке «SU», что поможет определить наличие root-прав. Показанные значки # либо $ подтвердят положительный результат.

Изменение TTL с root-правами

Лучший метод изменения показателя ТТЛ (не зависимо – принимает это устройство или раздаёт) — использовать специальное приложение. Все такие программы могут использоваться исключительно при наличии root-прав. Соответственно, аппарат нужно заранее рутировать.

Читайте также:  Кодеки для андроид приставки

Лучшие помощники в этом – это программы TTL Master и ES Проводник. Работа с ними отличается простотой и удобством.

Приложение TTL Master

TTL Master (Yota Tether TTL) – это программа, помогающая заменить «родной» TTL на другой, позволяя обойти ограничения провайдера. Программа помогает в работе с любым оператором связи. Можно автоматически сменить TTL, проведя перезагрузку устройства.

Главное преимущество TTL Master – элементарность. Действия просты:

  1. Нужно зайти в Гугл Плэй, найти приложение и произвести установку его на гаджет, на котором будет изменяться показатель TTL.

  1. Запустив Мастер, пользователю станет доступно настоящий показатель TTL и графа, куда нужно внести изменённый показатель. Меняем.

  1. Затем нужно перезагрузить устройство.

Эти нехитрые действия помогут снять все лимиты скорости. Напоминаем, что использовать ttl master без root прав не получится.

Приложение ES проводник

Поменять ТТЛ при помощи ЕS Проводника будет дольше по времени, нежели используя предыдущую программу. Для это нужно:

  1. Выключить все сетевые соединения на аппарате, активировав режим «Полёт» (в некоторых гаджетах – «В самолёте»).

  1. Включить ES Проводник и набрать следующую комбинацию – proc / sys / net / ipv4 / ip_default_ttl.

  1. Конечный файл открыть с помощью удобного текстовика, и произвести замену указанного показателя ttl на другой. После этого закрыть файл, сохраняя изменения.

  1. Отключить «Полёт» и активировать раздачу.

Можно ли редактировать TTL без root-прав

Поменять TTL без этих прав можно, однако не на всяком устройстве под управлением Андроид. Следует произвести установку приложения Terminal Emulator for Android на гаджет.

После инсталляции программки необходимо:

  1. Активировать приложение и набрать следующую комбинацию – cat / proс / sys / nеt / ipv4 / ip_dеfаult_ttl.

  1. Если модель аппарата позволяет внести коррективы без прав администратора, то исходный показатель ТТЛ станет доступным. Нужно увеличить его на единицу. Такое же изменение требуется внести во всех аппаратах, подсоединяемых в сеть.

  1. Произвести перезагрузку всей техники, после чего оценить результат.

Хотя указанный способ и работает, но действенен он в редких случаях. Поэтому надёжнее будет получить рут-права и гарантированно обойти ограничения трафика провайдером.

Возможные ошибки

Перечень возможных ошибок и неисправностей, которые могут возникнуть при замене TTL на Android с root правами и без них, довольно обширен. Описать их все – физически не возможно. Они зависят от производителя и модели девайса, провайдера, характеристик устройства, на которое осуществляется раздача, и т.д. Причин может быть много, и предусмотреть их все довольно трудно.

Рекомендовать можно следующее:

  1. Если у пользователя есть понимание рассматриваемого вопроса, и он не опасается навредить устройству, то стоит обратиться за помощью на один из специализированных сайтов или форумов. Например – https://4pda.ru/ .
  2. Если же знаний в данной области не хватает, и есть риск сделать что-то не так, то лучшим решением будет обратиться за помощью к специалисту.

Подводя итог, выразим надежду, что вышеизложенный материал окажется полезным, и поможет обходить ограничения операторов сотовой связи, существенно сэкономив «кровно заработанные».

Источник

Оцените статью