моя контактная информация
Почтамезофия@protonmail.com
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Первый адрес:https://mp.weixin.qq.com/s/1e8er_amC94DTVCaNbSuUw
Цель этой штуки — не играть в игры или что-то в этом роде, я просто хочу меньше зависеть от мобильного телефона при обратном проектировании приложения. В конце концов, шаги по прошивке мобильного телефона довольно раздражают, и он может легко заблокироваться, если вы не будете осторожны.
Например, на нем можно протестировать некоторые приложения, не требующие строгих требований к экологическому тестированию, что также упрощает изменение исходного кода системы и последующую прошивку компьютера. Но жаль, что ядро нельзя настроить (Redroid и Waydroid используют контейнерные решения и разделяют ядро с хостом. Если вы хотите настроить ядро, вы можете использовать только каракатицу от Google или avd, но они имеют ограниченную поддержку). на руке и можно запустить, но ускорения графического процессора нет, поэтому каракатицу попробую позже.
Я не буду вдаваться в процесс обновления Ubuntu с помощью Orange Pie. Если вам интересно, прочтите предыдущую статью:Orange Pie 5plus запускает Ubuntu с SSD . Если вы прошьете эту систему, вам не нужно ничего устанавливать или настраивать для запуска redroid. Однако, если вы хотите использовать виртуальный WIFI или ebpf, вам все равно придется изменить параметры ядра и скомпилировать ядро Linux самостоятельно. В следующей статье будет конкретно рассмотрен процесс компиляции.
Официальный учебник:https://github.com/remote-android/redroid-doc
grep binder /proc/filesystems
grep ashmem /proc/misc
Если ничего не печатается, возможно, вам придется запустить его вручную (я просто использую следующие две команды на машине с установленной Ubuntu Kunpeng 920. Хотя на этой машине установлена видеокарта AMD, она не может напрямую вызывать графический процессор)
sudo modprobe ashmem_linux
sudo modprobe binder_linux devices=binder,hwbinder,vndbinder
Если эти две команды сообщают об ошибке или не оказывают никакого эффекта, возможно, текущее ядро Linux не поддерживает эти две функции. Вам необходимо обратиться к следующим инструкциям хранилища, чтобы установить поддерживаемое ядро или скомпилировать ядро, чтобы включить эти две функции. :https://github.com/remote-android/redroid-modules
Его можно запустить, используя официальный образ докера, но ускорение графического процессора отсутствует, а видео декодируется программно (симуляция процессора), поэтому в github операция выполняется относительно медленно.проблема[1]Найдите rk3588, и вы увидите несколько комментариев об ускорении графического процессора.
Но никто раньше не рассказывал, как скомпилировать изображение с ускорением графического процессора. В комментариях можно сделать лишь несколько полезный вывод: получите несколько файлов драйверов, связанных с ускорением графического процессора, из официального исходного кода SDK Orange Pi и поместите их в Android. исходный код. Или скопируйте эти файлы прямо в докер-контейнер и перезапустите контейнер.
Этот вывод слишком расплывчатый и здесь должно быть много подводных камней, поэтому я не пробовал его.Пока большой парень не выдал полныйПроцесс компиляции и исходный код[2]:
Учебник написан очень подробно. Вы можете скомпилировать его один раз и пройти, следуя инструкциям. кроме того,И босс[3]На основе этого изображения была добавлена одна вещь.
Так что используйте это здесьЗеркальное отражение босса[4], перед этим взгляните на упомянутые им зависимости (версия ядра 5.10.160 и mali ddk g18p0):
Это не должно быть проблемой. Он также упомянул, что будет.mali_csffw.bin
Файл скопирован в/lib/firmware/
Далее я проверил а есть ли в этой папке этот файл.
Значение по умолчанию связаноg15p0
, поэтому мы удаляем эту мягкую ссылку и создаем новую ссылку наg18p0
.Однако после тестирования используйтеg15p0
Контейнер версии redroid также может нормально использовать графический процессор.
Тест чистки видео прошел нормально. Могу только сказать, что оно не застревает и не плавное. В конце концов, текущая конфигурация мобильного телефона уже очень высокая, и она намного более плавная, чем эта плата для разработки.
sudo apt install docker.io -y
sudo usermod -aG docker $USER
sudo chmod a rw /var/run/docker.sock
Последние две строки команд предназначены для запуска docker обычными пользователями без добавления sudo.
Затем вытащите изображение: docker pull cnflysky/redroid-rk3588:12.0.0-latest
。
docker run -d --privileged
-p 5555:5555
-v ~/redroid-data:/data
--name redroid
cnflysky/redroid-rk3588:12.0.0-latest androidboot.redroid_height=1920 androidboot.redroid_width=1080 androidboot.redroid_magisk=1 androidboot.redroid_virt_wifi=1
Затем используйте adb для подключения к этому порту (adb connect 192.168.31.208:5555
) может быть использованQtScrcpy
Посмотреть рабочий стол этого контейнера
Сначала установите aida64, чтобы проверить, нормально ли выполняются вызовы видеокарты:
Если вы используете для рендеринга видеокарту mali-G610, проблем не будет, а частота обновления составит 60 Гц. Если вы используете программное решение, частота обновления будет всего 15 Гц.
Когда этот контейнер запускается, он выдаетandroidboot.redroid_magisk=1
Просто включите magisk, чтобы вы могли видеть, что magisk работает нормально после включения компьютера. При первом входе вам может потребоваться перезагрузка.docker restart redroid
Его можно использовать в обычном режиме после перезапуска.
Сначала откройте zygisk в magisk, а затем с помощью команды adb push поместите установочный пакет lspose в контейнер. Затем установите его в «Модули», затем перезапустите, и вы увидите, что lspose также работает нормально.
Просто установите модуль xposed, и вы сможете войти в интерфейс настроек lspose.
Это официальноРуководство[5]Объясните, как скомпилировать образ докера с помощью гаппсов Однако даже с гаппсами он не может пройти гугл.safetynet
Проверка, многие приложения использовать невозможно.
Кто-то тоже спрашивал в вопросе, но решения нет:https://github.com/remote-android/redroid-doc/issues/378
. Загруженные изображения включают Google Store.
После прочтения вопроса, если вы не настроите виртуальный WIFI, какое-то программное обеспечение определит, что сети нет, даже если сеть есть, например QQ. Потому что они обнаруживают только WIFI и трафик, которые недоступны в контейнере докеров. Однако мой тест показал, что многие программы с виртуальным WIFI покажут, что сети нет, но интернет будет работать нормально без включения виртуального WIFI, поэтому рекомендуется его не включать, просто знайте, что такая штука есть. .
Итак, нам нужно получить виртуальный WIFI в контейнере, нам нужноПоддержка ядра[6]
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
переключить наip6tables-legacy
После этого докеру необходимо перезапустить службу.sudo systemctl restart docker
, перезапускать машину бесполезно, и контейнер отключится от Интернета.
Установленное ядро системы не поддерживает этот параметр.zcat /proc/config.gz | grep CONFIG_MAC80211_HWSIM
Код ядра, предоставленный github, очень прост в компиляции и может быть скомпилирован за один шаг. К сожалению, нет возможности изменить параметры ядра, и когда вы изменяете файл конфигурации ядра, он будет изменен обратно во время компиляции.
После нескольких дней борьбы я просмотрел все вопросы в выпуске и не смог найти ответа. У меня не было другого выбора, кроме как самому просмотреть сценарий компиляции. Этот конкретный процесс будет обсуждаться в следующей статье. ядро представлено здесь.
Адрес загрузки пакета ядра ядра, используемый системойUbuntu22[7]:https://www.123pan.com/s/ihEKVv-TbOx.html
Код извлечения:AZ3A
. В дополнение к вышеуказанным параметрам я также добавил параметры, связанные с ebpf, о которых речь пойдет позже.
Сначала сuname -a
Проверьте текущую информацию о ядре
Сначала перенесите скомпилированный файл ядра на машину, а затем запуститеsudo dpkg -i *.deb
Всего имеется пять файлов deb. Первый представляет собой информацию о сборке и не требует установки.
Затем используйтеsudo reboot
Перезагрузитесь и проверьте информацию о ядре.
Параметры ядра тоже включаются нормально:
После обновления ядра и перезапуска первоначально созданный контейнер отключается от Интернета, и только контейнеры, созданные позже, могут нормально выходить в Интернет. Сначала я подумал, что проблема с ядром, поэтому пришлось обновить систему и перекомпилировать ядро.
Несмотря на наличие подключения к Интернету, видео станции B не может быть обновлено. Я могу обновить только домашнюю страницу, а браузер не может получить доступ к веб-странице. (Примечание: сначала вам необходимо зайти в настройки, чтобы подключиться к виртуальному WIFI, прежде чем вы сможете подключиться к Интернету)
По инструкции здесь:https://github.com/CNflysky/redroid-rk3588/issues/2
Только гарантированное беспроводное соединение?Хотя я не понимаю, что это значит, может быть, маршрут может быть только один? Видите?ip route
По умолчанию есть два маршрута
Второй — виртуальный WIFI. Как насчет того, чтобы удалить первый и попробовать: ip route del 192.168.200.0/24 dev radio0 proto kernel scope link src 192.168.200.2
Я обнаружил, что иногда при наличии подключения к Интернету видео можно воспроизвести. В большинстве случаев оно зависает, и загрузка видео занимает некоторое время. Однако обновление домашней страницы происходит очень быстро, и комментарии тоже очень. быстрый. Изменение DNS тоже не помогает. Позже попробую другое программное обеспечение, чтобы посмотреть, произойдет ли то же самое.
Вы можете обратиться к:https://github.com/CNflysky/redroid-rk3588/issues/5
, не буду пробовать. По инструкции реддроида также можно указать агент при запуске. Если вы установите VPN глобально, adb может отключиться.
Может не получиться, просто попробуйте еще несколько раз.
https://github.com/remote-android/redroid-doc/issues?q=rk3588
https://github.com/redroid-rockchip
https://blog.csdn.net/CNflysky/article/details/136452455
https://github.com/CNflysky/redroid-rk3588
https://github.com/remote-android/redroid-doc/blob/master/android-builder-docker/README.md
https://github.com/redroid-rockchip/vendor_redroid_ext/tree/master/wifi
https://github.com/Joshua-Riek/ubuntu-rockchip/releases