Как заставить работать обратный USB-модем на моем устройстве KitKat? Я уже запустил его на своем устройстве Jellybean

FWIW Обратный USB-модем отлично работает на моем устройстве Jellybean, давайте предположим, что оно имеет серийный номер 0123456789ABCDEF, вот команды, которые я использую для его запуска:

adb -s 0123456789ABCDEF shell su -c 'service call connectivity 33 i32 1'
sleep 5
sudo ifconfig usb0 10.42.0.1 netmask 255.255.255.0
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -j MASQUERADE
adb -s 0123456789ABCDEF shell su -c "ifconfig rndis0 10.42.0.2 netmask 255.255.255.0"
adb -s 0123456789ABCDEF shell su -c "route add default gw 10.42.0.1 dev rndis0"

Я запускаю эти команды на своем Linux-компьютере, к которому подключен телефон, и на моем устройстве с мармеладом браузер загружает веб-сайт, используя данные через USB.

Сейчас у меня есть устройство KitKat, и у меня есть аналогичный скрипт, я использую

"service call connectivity 34 i32 1"

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

Есть ли способ исправить это? Я пробовал пинговать Google с телефона, и пинг работает, поэтому я предполагаю, что это проблема программного обеспечения?

Кому-нибудь удалось это сделать на KitKat? Спасибо

РЕДАКТИРОВАТЬ: я провел еще несколько тестов и думаю, что это проблема DNS. Пингование IP-адресов работает нормально, но пингование имен хостов дает «пинг: неизвестный хост» на устройстве kitkat. Пингование имен хостов отлично работает на устройстве Jellybean, они оба прямо сейчас подключены к одному и тому же компьютеру с Linux, поэтому единственная разница здесь — версии для Android.

У меня есть ощущение, что мне нужно добавить некоторые дополнительные шаги или команды к моему сценарию, поскольку я не могу даже пропинговать имя своего маршрутизатора с устройства Kitkat, в то время как я могу пропинговать IP-адрес без проблем.

Ответы (2)

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

Я добавил их в конец своего скрипта, опубликованного выше, и теперь я могу пинговать Google и возвращать пинги:

adb shell su -c 'ndc resolver setifdns rndis0 "" 192.168.1.1 192.168.1.1'
adb shell su -c 'ndc resolver setdefaultif rndis0'

Замените 192.168.1.1 на IP-адрес вашего маршрутизатора, он использует этот адрес для DNS.

Теперь я собираюсь попробовать google DNS (8.8.8.8) и посмотреть, работает ли он по-прежнему, а также посмотреть, смогу ли я заставить его хорошо работать с моим устройством Jellybean, подключенным к тому же ящику Linux.

Вы пробовали это? http://forum.xda-developers.com/showthread.php?t=1371345 В нем говорится, что он совместим с версиями Android ниже 5.0.

Я не могу использовать это программное обеспечение, потому что машина, которую я использую для доступа к моей телефонной сети, работает под управлением Debian Linux. Боюсь, Windows здесь не вариант. Я прочитаю раздел об устранении неполадок, так как в нем может быть некоторая информация, которая поможет, надеюсь, в нем может быть какая-то информация о настройке DNS-сервера.