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-адрес без проблем.
После некоторых проб и ошибок, кажется, удалось заставить его работать, оказывается, это проблема 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.
гипножаба