Как стать автором
Обновить

Комментарии 42

НЛО прилетело и опубликовало эту надпись здесь
Судя по статье, менять ядро не нужно — всё остаётся штатным. Недостающая функциональность подгружается модулем — это не требует никаких действий с ядром на телефоне.
Всё верно. Ядро остаётся какое было. Только модуль добавляется отдельным файлом.
НЛО прилетело и опубликовало эту надпись здесь
Я согласен с тем, что способ сложный, запарный, не-факт-что-получится, требует затрат времени и рута. Но я же не заставляю :) Есть старый способ, он тоже работает, просто не такой универсальный.

Мне хотелось, чтобы я мог прийти в любое место и раздать интернет первому попавшемуся под руку ноутбуку. Я своей цели добился.
А как можно пользоваться устройством без root прав? )
НЛО прилетело и опубликовало эту надпись здесь
Настроить под себя!
Как раз таки на Хабре сидят не миллионы лемингов, которые, как всем известно, не могут ошибаться (потому что ничего не делают). А отдельные сводолюбивые хомячки, которые ошибаются, тестят свои ошибки, дебажат и так делают что то новое.

Так что здесь доля root прав на Хабре повышена.
Убрать совершенно всю рекламу, включая ту, что в приложениях не пожирая цпу проксей, например. Еще можно удалять всякий мусор от вендора, если прошивка родная, а еще можно перенастроить разгон процессора, много чего можно делать. Ах да, еще и звонки записывать позволяет, и в тор ходить всем приложениям, а не только тем, которые умеют с прокси работать. Список можно продолжать очень долго.
уж где-где, а на хабре концентрация юзеров с рутоваными девайсами одна из высочайших
интересно, а как вы без adaway живете? рекламу смотрите? :D
Спорный момент. Как по мне, лучше 1 раз решить проблему кардинально и серьёзно, чем потом на каждом устройстве что-то подкручивать (что в итоге может занять больше времени, чем описанный автором вариант).
Ядро заменять не нужно, только модуль добавить.
да, я прекрасно всё понял. Я наоборот выступил в защиту вашего способа.
В таком случае, благодарю Вас :)
Напомнило:
image
image
Супер! Такой способ, как я понимаю, подойдет и для добавления драйверов произвольных устройств в Андроид без пересборки ядра?
Купил как-то китайский адаптер ethernet to usb otg, якобы работающий с android устройствами. Китайцы в качестве андроид драйвера приложили исходники на Си:) Устройство на смартфоне не определяется (вполне возможно они имели в виду планшеты а не смартфоны).
«Произвольных» — не получится: многие драйвера требуют-таки правок в ядро. Но процент успеха велик, процентов 90, можно попробовать.
Бывает :)
Да, этот способ должен подойти.
Примечание. Некоторые технические детали: ядро мы всё же пересобираем, просто не используем то, что получилось. Только модули. Просто если вообще не собирать ядро, то модули или не соберутся, или будут кривые, скорее всего.

Я рекомендую сразу не пихать китайские исходники в ядро, а поискать в menuconfig, нет ли там уже нужного пункта.
По поводу сборок чего-либо разными тулчейнами, считаю нужным предупредить:
Хорошо, когда собираете ядро, там лишних хедеров не нужно, это вещь в себе. Компилятор совместимый — и хорошо. Но при компиляции чего-либо для userspace не ругайте Android NDK за несовместимости и глюки. NDK совершенно не предназначен для системного ПО, используйте встроенную билд систему, тулчейны и sysroot от AOSP. Да, это долго, но гораздо более совместимо.
Говорят, если раздавать интренет в WiFi с помощью ClockworkMod Tether, то и root не нужен, и TTL сам правится.
Я читал, что для этого нужно настраивать специальное ПО на компе.
Да, так и есть. Это написано в описании приложения на Play Market прямо по ссылке, которую Вы скинули.
Чувствую себя нарушителем «закона о блогерах», разместившим непроверенную информацию :(
Ну, для начала — эта штука не умеет раздавать WiFi, интернет гоняет только по USB. Во вторых — ей нужен клиент на ПК. В третьих TTL оно не правит, оно просто создает тоннель через ADB, вот TTL и остается таким, будто все отправляется с телефона. А root да, не нужен. Нужен только ADB.
Живой человек, который собирает ядра под андроид! У меня к вам вопрос. Имею Galaxy Note 2 s amoled дисплеем. И мне не совсем нравится то, как работает механизм управления яркостью дисплея. Дело в том, что для понижения яркости драйвер просто заставляет пиксели включаться и выключаться. Чем больше паузы — тем ниже яркость. Но это создает эффект мерцания, от которого у меня и некоторых других пользователей болят глаза/голова. На первых прошивках мерцания не наблюдалось при яркости 42.7% и при значениях больше 85%. Соответственно я пользовался лишь этими двумя настройками. Но потом с обновлениями все поменялось, и не мерцает лишь при яркости более 85%.

Можно ли как-то заставить драйвер не мерцать дисплеем?

Я качал исходники ядра и тщетно пытался отыскать нужный кусок кода (я не умею ни читать ни писать код). Что нужно делать, подскажите пожалуйста?
Для такой безысходной ситуации у меня есть ответ: Вам нужно приобрести комплект стёкол разной мутности (или тонированности). И вместо регуляции подсветки выставить её на 100 и класть поверх дисплея стекло с подходящей мутностью :)

Ну а если серьёзно, то предположим, что Вы немножко научились читать код. Тогда я предлагаю действовать не в лоб — читать код ядра и всё понимать (с ядром такое обычно не прокатывает) — а использовать аналитический метод: скачать исходники ядра новой версии и исходники ядра старой версии. После этого либо найти нужные файлы и сравнить по содержимому, либо, если совсем туго, то сравнить всё массово. А дальше, изучать отличия. Успехов! :)
А вы уверены, что соответствующие драйвера имеются в исходниках? Обычно все, что касается конкретных девайсов, проприетарное и поставляется в бинарных модулях.
Обычно, это делается простым управлением PWM-генератором, который имеется на борту чипа и ядро про это знает. Другое дело, что возможно это управление вынесено в user space. Но чисто интуитивно, мне кажется, что найти проблему в ядре можно.

Описываемае проблема похожа на следующий эффект: допустим нам нужно уменьшить яркость экрана на 50%, для этого PWM программируется так, чтобы половину времени выдавать 0, а вторую половину — 1. Но вот эта самая половина может быть распределена по разному. Можно так: 0,5 секунды — 0, 0,5 секунды — 1. Частота мецания будет — 1Гц. А можно сделать то же самое, но с частотой 1КГц. В первом случае будет очень заметно, во втором — нет.

Почему я думаю, что проблема в ядре? Потому что такую тонкую регулировку скважности обычно не выносят в юзерспейс. Но это ИМХО, основанное на ковырянии ещё в ядре 2.4 под один промышленный АРМ-контроллер когда-то очень давно.
Я, как автор предыдущей статьи, хочу внести свои 5 копеек.
Во-первых, плюсую за проделанную работу, вы очень молодец!
Во-вторых, я сделал решение на коленке, для себя, на время отсутствия проводного интернета.
В-третьих, йота жадничает мобильный интернет, от этого и был такой мой посыл и из-за этого родился мой пост. Я по большей части пользуюсь этим оператором, т.к. у них нет роуминга по стране и пакеты минут распространяются на звонки по территории РФ.

P.S. Вы действительно хотите раздавать интернет с телефона на офис?
Спасибо, что оценили мои труды.

Да, тогда я Вас понимаю, насчёт жадности йоты. Ведь там вроде такой же интернет, но для компа, стоит в 4 с лишним раза дороже…

У меня в офисе вроде как и проводной интернет хороший, но сам факт наличия возможности раздавать им всем интернет греет мне душу :)
Не могу не отписаться. Это традиционный способ определить раздачу инета. Ещё есть способ по tcp seq id, если они сильно отличаются от пакета к пакету — то атата. Только это немного сложней определить =) Ну и количество ложных срабатываний может быть больше. Но аналитическим образом можно с 100% вероятностью определить. Так же есть метод определения по user-agent. Практически никогда не бывает одинаковых юзерагентов на разных тачках, только если специально не настроить, но это уже если есть DPI у оператора.

Ещё рекомендую настроить iptables -I FORWARD 1 -m conntrack --ctstate INVALID -j DROP.В МТСе была проблема даже на штатных роутерах, дропалось PDP, если пролетало больше 10 невалидных пакетов. Что именно считается невалидным в рамках оборудования МТС я не знаю, но пакет прилетевший не с выданного ИП адреса в трубу 3G считался невалидным. У меня такие пакеты пролетали в результате несрабатывания NAT по каким-то неизвестным мне причинам. В итоге поправили на стороне оператора, хотя с моей стороны временное решение в виде правила выше тоже работало, но я решил пойти дальше, т.к. проблема проявлялась даже на официальных 3g-wifi роутерах.
Ну по юзерагенту это совсем уж убогий способ, на мой взгляд. Во-первых, только http (даже не https), а во-вторых — всякие приложения для вк, твиттера и другие — они же все работают в основном через http и у каждого свой юзерагент. Йота запарится прописывать их в разрешённые.

За инфу, в целом, спасибо! :)
И кстати ещё один способ возможный — поднять openvpn — пролезет даже через йоту (которая вроде gre режет) и наплевать на все ограничения. Даже не IOS не нужен джейл для опена. Единственный нюанс — нужен сам openvpn сервер.
Если для личных нужд, то VPS стартуют от 5 долларов в месяц.
вообще-то, от 3 евро в год…
Йота же VPN режет, недавно об этом писали. Как openvpn при этом пролезет, можно поподробнее?
Йота gre режет, openvpn не использует gre. Openvpn можно даже через закрытый корпоративный прокси пустить, подняв сервак на 443 порту и всё будет работать. Я так никогда не сидел с ограниченным инетом на работе =) Щас тупо LTE-свисток, т.к. рабочий инет совсем грустный.
Спасибо!
Ваш собранный модуль прекрасно работает и на 157й прошивке sony Z1 compact.
Пожалуйста! Я и сам когда-то на 157 перешёл. Досаждает только то, что после обновы опять заново рутовать надо :(
Всем, кто заинтересован: в конце статьи добавлен скомпилированный модуль для Xperia V.
Ещё одно обновление: в конце статьи добавил модуль под 5-ый Android для Xperia Z1 Compact.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории