На всех устройствах Андроид можно достаточно просто настроить раздачу интернета. Такая задача решается при помощи одной программы или функционала самого устройства. Но не всегда это одно нажатие по телефону. Многие операторы давно раскусили фишку с тем, что пользователи могут обмениваться данными и своим трафиком, при этом иметь с этого хорошую выгоду.
Чтобы такого не было, придумали смену TTL. Что это такое и как её изменить на Android без дополнительных рутированные прав? Стоит подробнее в этом разобраться.
Что такое TTL
TTL, полно «Time to Live», дословно переводится как время жизни. В данном случае имеется в виду время жизни пакета данных интернет-трафика. Дело в том, что любая операция в интернете связана с теми или иными данными (трафик в том числе). Причем регистрация на сайте, обмен сообщений, проходы на те или иные сайты – все происходит при помощи данных, которые сначала разделяются на части, каждая из которых содержит определенную информацию.
смена ttl на андроид устройствах
TTL в данном случае играет роль обменника – подушки, которая избавляет сеть от дополнительных загрузок данными. Он устанавливает число мест, которые по-другому называются «сетевые узлы». В это число мест не могут поселять другие данные. Таким образом сохраняется стабильный перенос данными.
Для простого примера: TTL=54, из этого выходит, что в пакете всего 54 места для определенной информации.
При транспорте данных с одного устройства на другое TTL снижается на одно место. Если же ТТЛ приобретает нулевое значение, то это значит, что данные не могут передаваться в дальнейшем. Если бы такой системы не было, то данные просто так бы гуляли по сети, были бы перегрузы информацией, появились бы мошенники и возобновились большие вирусные атаки.
Мобильные операторы активно сейчас пользуются ТТЛ для того, чтобы прекратить раздачу интернета у смартфона. Если пользователь обнаруживал, что не может делиться своим интернетом с одного устройства на другое, то дело в ТТЛ.
При создании тех или иных запросов пакет образуется с заданным ТТЛ. Если пользователь решил зайти на тот или иной сайт, то смартфон создает запрос на вход, который в дальнейшем будет представлять собой определенный пакет информации. Данный пакет имеет автоматическое число ТТЛ, он передаётся через оператора, который уже имеет информацию о количестве. Если ТТЛ совпадает, то оператор может разрешить такое действие, происходит вход на страницу.
Это происходит только в том случае, если пакет уже был создан, при этом он посетил какое-то место. Стоит вспомнить о том, как в целом пользователь получает доступ в сети – происходит все через пакет данных с число ТТЛ. В данном случае оно становится меньше того значения, которое сформировано с пакетом. Оператор это видит и сразу понимает, что раздача идет с другого устройства. Таким образом пресекается передача интернета с одного устройства на другое.
Как узнать TTL на Андроиде
Если пользователь хочет узнать, какое число ТТЛ есть на его телефоне Андроид, то он может использовать такие действия:
- Для начала необходимо найти и скачать утилите под названием «Terminal Emulator», скачать её можно через официальный магазин приложений Google Play;
- После этого откроется консоль. В неё вводим информацию под командой «cat /proc/sys/net/ipv4/ip_default_ttl»;
- Далее система автоматически выведет пользователю то число ТТЛ, которое есть на его Андроид устройстве.
Если приложение работает некорректно или же выдает результат «0», то необходимо его переустановить.
Если пользователь знает число ТТЛ, то ему будет в дальнейшем намного проще работать.
Когда стоит менять TTL
Если пользователь хочет обойти процесс раздачи мобильного интернета с одного телефона на другой, то он может использовать смену ТТЛ, потому что именно такие моменты показывают провайдеру о том, что происходит раздача интернета с другого устройства.
Если сменить значения ТТЛ, то пользователь может спокойно осуществлять раздачу без доплат средств. Так можно раздачу сделать абсолютно бесплатной, а оператор об этом ничего не узнает. Данный параметр очень легко меняется, потому что существуют полезные программы, более подробно о которых можно узнать далее.
Как сменить TTL без на Андроиде без рут-прав
Стоит сразу сказать о том, что у пользователя не получится поменять TTL без root-прав, потому что они являются основным ключиком к системе телефона. При смене ттл происходит также смена системного файла, его начинки. Подобные файлы можно найти только в секретной директории, она же располагается в разделе внутренней памяти (по-другому, корневой). Доступ будет получен только в том случае, если присутствуют рутированные права. Если же их нет, то доступ к системе будет полностью закрыт и заблокирован для пользователя.
Обратите внимание! Стоит помнить о том, что при установке рут-прав некоторые программы могут слетать. Также может быть задета система телефона в целом. С этим стоит быть аккуратным.
Как получить рут-права
Получение рут-прав зависит от операционной версии телефона. Если версия Андроид достаточно старая (4.4 и ниже), то можно просто установить одну из программы и кликнуть на кнопку «получить рут-права). Если версия Андроид молодая (5.0 и выше), то необходимо дополнительно использовать компьютер (Windows, MacOS).
Существуют методы, которые помогают получить любому устройству на системе Андроид рут-права. Система общая:
- Подготовка. Для начала необходимо войти в настройки телефона и найти пункт «Для разработчиков». Включаем в нем откладку по USB, также убеждаемся в том, что карта памяти на устройстве находится в оптимальном и рабочем состоянии;
- Далее необходимо скачать материал. Под материалом подразумеваются фалы загрузчика для дальнейшей разблокировки, драйвера ABD и USB-файл для установки кастомизированного рекавери. Также нужно найти файл, который в дальнейшем поможет подобрать ключ к рут-правам;
- Устанавливаем драйверы доступа, данные его параметра, проверяем связь между телефоном и ПК, их IP;
- После этого разблокируем загрузчика, устанавливаем кастомное рекавери и запускаем его;
- Осталось только прошить устройство при помощи файла, который дает доступ к рутированным правам.
Искать материалы можно на просторах интернета, на форумах, на которых люди столкнулись с такой же проблемой, что и пользователь. На них часто выкладывают прошивки и все необходимые для дальнейшей работы файлы.
Как изменить TTL с рут-правами
Если у пользователя удалось активировать рутированные права на своем смартфоне, то он может изменить ТТЛ. Сделать это реально несколькими способами:
- При помощи ручного метода;
- Используя разные программы.
Стоит рассмотреть сначала ручной метод:
- Для начала устанавливаем любой файловый проводник. На данный момент самым популярным является ES Explorer;
- После этого запускаем его, предоставляя доступ к рут-правам, установленные ранее. Переходим в корневую директорию при помощи тапа на «/»;
- Отключаем интернет и любые другие способы передачи данных (в том числе Wi-Fi и мобильный интернет), а также переводим телефон в режим полета;
- Теперь необходимо найти файл, который отвечает за ТТЛ файлы, открываем его и изменяем значение на нужную цифру.
Ручным методом не все пользуются, так как гораздо проще скачать специализированную для этого программу. Такой мобильной программой является TTL Master:
- Скачиваем данную программу при помощи Плей Маркета;
- После этого кликаем нас строчку «Ввод ТТЛ» и вбиваем нужным показатель (например, 64);
- Нажмите на кнопку «ОК».
Таким образом можно легко и просто сменить ТТЛ на телефоне.
Сделать это без помощи прав суперпользователя не получится даже с программой, так как появятся ограничения.
Возможные ошибки и проблемы
На пути смены ТТЛ пользователь может сделать ряд ошибок. Стоит рассмотреть самые распространённые, чтобы их в дальнейшем не совершить. Удобнее их рассмотреть в формате «вопрос-ответ».
Источник: kakoperator.ru
Что такое TTL и как его изменить на Android?
Возможности современных смартфонов позволяют делиться доступом к мобильному интернету с другими устройствами при помощи модуля Wi-Fi, Bluetooth или USB.
Однако не все так просто — жадные операторы сотовой связи, предоставляющие «безлимитные» пакеты услуг, часто ограничивают раздачу интернета. Чтобы обнаружить подключенные устройства, они пользуются значением параметра TTL, который автоматически передается на их основной сервер. В этой статье-инструкции мы разберемся, что такое TTL в телефоне, и как его изменить для обхода ограничений раздачи интернета.
Что такое TTL и зачем он нужен?
TTL (Time to live) — п редельный период времени жизни пакета данных или максимальное количество его переходов от одного устройства к другому. В компьютерных сетях такой параметр является обыкновенным числовым значением в диапазоне от 0 до 255. Основная его цель заключается в том, чтобы не позволять набору цифровой информации бесконечно «блуждать» по сети. Перемещаясь между различными маршрутизаторами, параметр TTL постоянно меняется.
Для большинства мобильных устройств (iOS и Android) начальное значение TTL равно 64, а на Windows-компьютерах он стартует с отметки 128. Каждый переход через беспроводной канал связи уменьшает это число ровно на 1. Когда после множества скачков от одного клиента к другому TTL становится равным 0, все данные в пакете, который он сопровождает, автоматически уничтожаются.
Поскольку значение TTL всегда возвращается изначальному адресанту (провайдеру), он может узнать, был ли пропущен трафик через сторонние маршрутизаторы, то есть другие устройства.
Операторы сотовой связи пользуются TTL для ограничения доступа к безлимитному интернету, когда их клиент подключается к нему с нескольких разных гаджетов. После того, как смартфон на Android переходит в режим модема, он передает через себя трафик с параметром TTL, равным 64. Устройства, которые получают эти сведения, автоматически уменьшают изначальный TTL на 1. В результате, провайдеру приходят пакеты, помеченные временем жизни 64 и 63, после чего он блокирует сеть. В большинстве случаев, это делает невозможным раздачу интернета по Wi-Fi.
Можно ли изменить TTL?
Как уже можно было догадаться, чтобы разблокировать доступ сторонним устройствам к мобильной сети, необходимо должным образом настроить значение TTL. На Android это делается несколькими способами в зависимости от наличия на смартфоне root-прав. Также необходимо выбрать устройство, на котором будут внесены изменения параметра TTL: на раздающем трафик или на получающем его.
Далее мы будем рассматривать исключительно мобильную платформу Android.
Как узнать TTL на телефоне?
Стоит сразу отметить, что получить доступ к неограниченному количеству сторонних подключений к мобильной сети без прав администратора практически невозможно. Чтобы узнать значение TTL на телефоне, следуйте инструкции:
- Сначала нужно установить приложение Terminal Emulator из магазина Google Play.
- После запуска этой небольшой утилиты откроется командная консоль, в которую необходимо ввести следующую строку: cat /proc/sys/net/ipv4/ip_default_ttl
- В результате появится значение TTL.
Как изменить TLL на Android с root-правами?
Получив права администратора (рут) на Android, нужно установить один из файловых менеджеров, например, ES Проводник. Далее потребуется активировать авиарежим на смартфоне, чтобы временно прервать соединение с сетью. Теперь запустите Terminal Emulator и перейдите файлу по адресу: proc/sys/net/ipv4/ip_default_ttl. В нем содержится значение параметра TTL, которое можно изменить по своему усмотрению. Сохранив новое число и перезагрузив телефон, можно спокойно раздавать интернет.
Существует и более комфортный способ настройки множественного подключения к мобильной сети. Для его реализации потребуется загрузить специальное приложение TTL Master. После запуска программы можно сразу увидеть текущее значение данного параметра и настроить его для эффективной раздачи как на мобильные устройства, так и на Windows-компьютеры. После перезагрузки смартфона можно не беспокоится, что сотовый оператор как-то узнает об общем использовании его трафика.
Изменение TLL на Android — простая задача для пользователей смартфонов с рут-правами, которые могут обойти ограничение раздачи интернета в пару кликов. Если же «суперправ» нет, то с высокой долей вероятности ничего не выйдет.
Источник: androidlime.ru
Как поменять ттл на телевизоре андроид
25 Feb 2019, 14:45 android
Столкнулся с проблемой раздачи интернета с Android-телефона на другие устройства через мобильную точку доступа у некоторых операторов. Оператор или вообще запрещает раздавать интернет, или берет за это деньги. Однако есть способы обойти этот запрет. Здесь расскажу что у меня получилось.
Как оператор узнает, что интернет раздается
Оператор на своей стороне смотрит на значение TTL в заголовках IP-пакетов, приходящих от клиента. Схематично выглядит так:
Если на телефоне открывать в браузере какую-нибудь страничку, то провайдеру от телефона будут приходить пакеты с TTL 64. Такие пакеты он пропускает.
Но если включить мобильную точку доступа, подключиться к ней, например, с планшета, и на планшете открыть страницу, то, проходя через мобильную точку доступа на телефоне TTL будет уменьшаться на 1, и провайдеру будут уходить пакеты с TTL 63, которые он будет отбрасывать. Уменьшение TTL при прохождении через роутер — это стандартизированное поведение роутера, такое поведение предусмотрено стандартом RFC791.
В этой ситуации выхода два — либо на планшете выставлять TTL 65, чтобы, проходя через телефон, провайдеру приходили пакеты с TTL 64, либо на самом телефоне делать так, чтобы он не уменьшал TTL.
Если wi-fi клиент — дектоп-машина с Windows или MacOS, то выставить TTL 65 можно одной командой.
Windows
Создать в реестре ключ
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersDefaultTTL
типа REG_DWORD со значением 65 (в десятичной системе)
MacOS
Команда в консоле:
$ sudo sysctl -w net.inet.ip.ttl=65
Но если клиент планшет на iOS или другое устройство, где нельзя просто так выставить TTL, то придется воспользоваться вторым способом — заставить телефон не уменьшать TTL для проходящих через него пакетов. Это может быть не совсем просто.
Учим телефон не уменьшать TTL
Этот способ потребует root-права (инструкция) на android-телефоне или jailbreak на iOS. Т.к. я делал это на Android, то опишу как делать для него. Про iOS здесь инструкции не будет.
Для разных устройств, процедура будет отличаться, я постараюсь рассказать в чем будут заключаться эти отличия. В данном примере я использую OnePlus 3 и Android 8.0 Oreo
Итак, у нас есть Android телефон с root-правами. Узнаем умеет ли ядро системы работать с TTL. Для этого смотрим содержимое двух файлов на телефоне (например с помощью приложения ES Проводник, оно умеет смотреть системные файлы):
/proc/net/ip_tables_matches /proc/net/ip_tables_targets
В обоих должно быть упоминание TTL. В моем случае в ip_tables_targets упоминания ttl не было. Это значит, что ядро не умеет изменять TTL. Чтобы его научить этому, нам понадобится из исходников собрать модуль ядра и загрузить его в телефон.
Как собрать модуль ядра
- ОС — Linux или MacOS (можно собрать и на Windows — см.ниже)
- исходники ядра для конкретного устройства
- toolchain определенной версии и опредленной архитектуры
Я собирал модуль на 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 совпадает с теми версиями которые мы узнали выше.
Теперь идем в консоль и готовимся к компиляции. Установим необходимые тулзы и склонируем репы с тулчейном и исходниками ядра в домашнюю папку:
$ sudo apt install build-essential python-minimal libncurses5-dev libncursesw5-dev $ cd ~ $ git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/ $ git clone —branch=QC8996_O_8.0.0 https://github.com/OnePlusOSS/android_kernel_oneplus_msm8996
В исходниках ядра смотрим в папку arch и подбираем нужную архитектуру. В моем случае в этой папке, нет aarch64 , но есть arm64 . Это то же самое, просто называется по другому. Буду использовать эту архитектуру. Указываем ее и путь до бинарей тулчейна в переменных окружения:
$ export ARCH=arm64 $ export CROSS_COMPILE=/home/fote/aarch64-linux-android-4.9/bin/aarch64-linux-android-
Переменная CROSS_COMPILE именно такая, заканчивается на — . Здесь нет ошибки.
Теперь надо создать конфиг для будущей сборки. Возможные варианты конфигов в моем случае лежат в папке с исходниками ядра в arch/arm64/configs (вместо arm64 может быть ваша архитектура). Вспоминая версию ядра, которая установлена в телефоне, выбираю конфиг msm-perf_defconfig :
$ cd ~/android_kernel_oneplus_msm8996/ $ make msm-perf_defconfig
После того как конфиг создан, нам надо внести в него изменения, чтобы нужный нам модуль для фиксации TTL скомпилировался. Для этого выполняем:
$ make menuconfig
Появится интерактиваная утилита, в которой нужно найти нужный модуль.
Переходя по дереву внутрь, и, найдя TTL Target support , нажать M, чтобы указать, что нужно скомпилировать этот модуль.
Сохраняем конфиг, выходим, и собираем ядро с модулями:
$ make $ make modules
Если эти команды завершились ошибкой, значит, скорее всего неправильно выбран конфиг, toolchain или сами исходники ядра. Определенные исходники можно собрать только подходящим тулчейном и с подходящим конфигом.
Если ошибок не было, то в папке с исходниками должен появится файл 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 Проводника):
C:Usersfote>adb shell OnePlus3:/ $ su OnePlus3:/ # insmod /sdcard/xt_HL.ko
Если insmod возвращает ошибку exec format error , значит, скорее всего, неправильно была выбрана версия исходников ядра или архитектура. В dmesg можно узнать подробности ошибки совместимости, и пересобрать под правильную версию.
Если модуль загрузился, можно пробовать зафиксировать TTL:
# iptables -t mangle -A POSTROUTING -o rmnet+ -j TTL —ttl-set 64
, подключиться через мобильную точку доступа и попробовать открыть какую-нибудь страничку в браузере.
И наконец, добавляем в автозагрузку телефона скрипт, который будет включать фиксацию TTL:
#!/system/bin/sh insmod /sdcard/xt_HL.ko iptables -t mangle -A POSTROUTING -o rmnet+ -j TTL —ttl-set 64
Такой скрипт я положил в /sdcard/fixttl.sh , и с помощью приложения ScriptManager, добавил в автозагрузку.
Всё! Теперь с этого телефона можно раздавать интернет!
Источник: 4te.me