adb – Nebula Blogs https://blogs.nebulasrv.net Типо блох Fri, 17 Dec 2021 20:29:39 +0000 en-US hourly 1 https://wordpress.org/?v=6.3.7 https://blogs.nebulasrv.net/wp-content/uploads/2019/01/cropped-favicon_bl-1-32x32.png adb – Nebula Blogs https://blogs.nebulasrv.net 32 32 Удаляем назойливое “меню SIM” https://blogs.nebulasrv.net/2019/07/%d1%83%d0%b4%d0%b0%d0%bb%d1%8f%d0%b5%d0%bc-%d0%bd%d0%b0%d0%b7%d0%be%d0%b9%d0%bb%d0%b8%d0%b2%d0%be%d0%b5-%d0%bc%d0%b5%d0%bd%d1%8e-sim/ Mon, 08 Jul 2019 17:42:00 +0000 https://blogs.nebulasrv.net/?p=832 С момента покупки смартфона, жутчайший бомбеж у меня вызывало всплывающее окно “еле-два“, постоянно вылезающее после перезагрузки телефона, либо вообще в случайное время. Причем вылазило оно настолько невовремя, что у меня даже получалось ненароком подключить парочку платных услуг.

Кроме как паскудством все это дело не назвать, но мне всё было лень изучить вопрос как следует.

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

Расчехляем adb, врубаем отладку по USB и приступаем.

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

adb shell cmd package list packages

Но нам нужен конкретный. Смотрим путь до его apk:

adb shell pm path com.android.stk

На всякий случай бэкапим:

adb pull /путь/из/результата/прошлой/команды.apk /локальный/путь/куда/бэкапить

И удаляем гавно:

adb shell pm uninstall -k --user 0 com.android.stk

Готово. Как пишут в интернетах, может не работать автополучение настроек APN, но и нахер оно не надо, ибо:

  • Можно настроить руками
  • Если все уже давно настроено, то может сбиться только после резета телефона, ну а после этого приложение все равно вернётся.

]]>
Обходим прокси на работе https://blogs.nebulasrv.net/2019/02/my-little-dissident/ Sun, 10 Feb 2019 03:05:56 +0000 https://blogs.nebulasrv.net/?p=117 Данный способ не несет в себе каких-то открытий, по-сути являет собой всего лишь использование универсальных средств. К тому же в вашем распоряжении должно быть некое очень редкое устройство!

Итак, что мы имеем?

  • Компуктер на шиндовс 10, без прав админа.
  • Выход в интернет через корпоративный прокси, естественно, жестко ограниченный (как и те, кто это ограничение придумал)

Что нам нужно?

  • Возможность подключаться по ssh к домашним серверам.
  • Возможность заходить на веб-интерфейс своих серверов.
  • Как следствие возможность загрузки и выгрузки файлов домой (не связанных с работой, зачем нам головняки)
  • Ну и неограниченный интернет как бонус 🙂

Собственно напрашивается самый простой вариант – почему бы не принести с собой обычный 3Г-модем? Но тут нас должно остановить несколько вещей:

  • Сразу становится понятно зачем мы его приперли на работу.
  • В системе он будет видеться, в том числе, как сетевой интерфейс и это тоже палево.
  • Чтобы соединения через него могли работать, должны быть изменены настройки сети в системе, маршруты. А сие нельзя делать без прав админа.

Хорошо, но что нам тогда вообще остается, если нам недоступны сетевые настройки? Но это не тупик.

Так уж случилось, что благодаря хорошему другу у меня в распоряжении оказался nexus 5 hammerhead прошитый в ОС под названием Ubuntu Touch. Её раньше пыталась пилить Cannonical, но когда оной стало плохо, перешла сообществу. Голубая мечта иметь полноценный линукс на телефоне стала совсем близка. Этим надо пользоваться.

Единственный способ, как мы можем увязать в нашей ситуации ПК и смартфон – это кабель USB. Cобственно, в Ubuntu touch для Nexus 5 используется ядро под андроид, вернее Cyanogenmod (ныне известный как lineage OS):

phablet@ubuntu-phablet:~$ uname -r
3.4.0-cyanogenmod-g2669fa0

Это все потому что в нем болтаются проприетарные блобы, позволяющие работать всяческим устройствам под которые нету свободных драйверов, например Bluetooth или Wi-Fi.

Поэтому успешно используем ADB – Android Device Bridge, позволяющий общаться с вашим устройством посредством USB – подключения.

Но славный adb оказывается не простенькой утилитой для получения доступа к shell на телефоне или для передачи на него файлов: это реальный комбайн, легко и просто работающий (без прав админа, да!).

PS C:\%path-to-adb% > adb.exe forward tcp:6100 tcp:22

Таким нехитрым образом, мы как бы соединяем удаленный порт на устройстве (телефон) и локальный порт на системе (виндовс) поверх USB-подключения.

> netstat -a | Select-String 6100
 TCP    127.0.0.1:6100         %COMPUTERNAME%:0        LISTENING

В системе открывается порт (в данном случае 6100), подключившись на который по ssh, adb нас перебросит на 22 порт телефона. Сам телефон нас не впустит, потому что он настроен пускать только по ключу. Это можно поменять, а можно сгенерировать ключ в puttygen и добавить в known-hosts на смартфоне. Есть в мануале.

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

Точек монтирования, внимание, оказалось 85 (!) штук.

phablet@ubuntu-phablet:~$ mount | wc -l
85

Корень и еще пачка путей смонтированы в рид-онли, скорее всего для сохранения целостности вашей ОС.

Разработчики предлагают следующий вариант установки ПО в ваш телефон: если для нужной вам программы есть специальная сборка и ее можно найти в местном магазине приложений OpenStore, то она ставится в вашу основную систему и, интегрируясь в оболочку, вроде как, успешно работает. Но если появляется потребность в неадаптированной программе, то ее установку следует устанавливать в специальный chroot-контейнер, избегая неожиданного поведения вашей системы.

Поэтому я зашел в shell на трубке, создал там контейнер и установил самый обычный прокси-сервер сквид.

# Создаем контейнер
libertine-container-manager create -i squid -n "squid proxy"
# Ставим в него кальмара (параметр -i Containername опущен, т.к. без него будет использоваться контейнер по умолчанию, а он у нас в принципе всего один).
libertine-container-manager install-package -p squid
# Заходим в консоль контейнера 
libertine-container-manager exec -c "/bin/bash"
# И стартуем squid
root@ubuntu-phablet:/# squid

На самом деле, этим вполне себе можно ограничиться, squid запустится и будет слушать запросы на порту 3128 и проксировать их вовне, будь то wi-fi или мобильная сеть (в моем случае вообще в openvpn).

Дело осталось за малым, как-то сделать так, чтобы браузер мог достучаться до этого самого порта и отправить запрос.

Тот же adb нам помощник:

.\adb.exe forward tcp:12345 tcp:3128

Скачиваем портабельный браузер и настраиваем на нем прокси на 127.0.0.1, порт 12345.

Пользуемся.

Как бонус, с помощью ssh туннеля можно нагло подключаться по VNC к домашнему компу (опять же, у меня был настроен openvpn):

phablet@ubuntu-phablet:~$ ssh -L 5900:127.0.0.1:5900 192.168.100.11 -l user "x11vnc"

На рабочем ПК:

.\adb.exe forward tcp:5900 tcp:5900

Через TightVNC подключаемся:

Собственно, такой вот способ диссиденствовать на работе!

]]>