2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Première adresse :https://mp.weixin.qq.com/s/1e8er_amC94DTVCaNbSuUw
Le but de cette chose n'est pas de jouer à des jeux ou quoi que ce soit, mais d'être moins dépendant du téléphone mobile lors de la rétro-ingénierie de l'APP. Après tout, les étapes pour flasher un téléphone mobile sont assez ennuyeuses, et il peut facilement devenir bloqué si vous ne faites pas attention.
Par exemple, certaines applications qui ne sont pas strictes en matière de tests environnementaux peuvent être testées, ce qui facilite également la modification du code source du système et le flashage de la machine ultérieurement. Mais il est dommage que le noyau ne puisse pas être personnalisé (redroid et Waydroid utilisent tous deux des solutions de conteneurs et partagent le noyau avec l'hôte). Si vous souhaitez personnaliser le noyau, vous ne pouvez utiliser que seiche ou avd de Google, mais ceux-ci ont un support limité. sur le bras et peut être exécuté. Mais il n'y a pas d'accélération GPU, j'essaierai donc la seiche plus tard.
Je n'entrerai pas dans le processus de mise à jour d'Ubuntu avec Orange Pie. Si vous êtes intéressé, veuillez lire l'article précédent :Orange Pie 5plus démarre Ubuntu à partir du SSD . Si vous flashez ce système, vous n’avez pas besoin d’installer ou de configurer quoi que ce soit pour exécuter Redroid. Cependant, si vous souhaitez utiliser le WIFI virtuel ou ebpf, vous devez toujours modifier les paramètres du noyau et compiler le noyau Linux vous-même. Ce prochain article parlera spécifiquement du processus de compilation.
Tutoriel officiel :https://github.com/remote-android/redroid-doc
grep binder /proc/filesystems
grep ashmem /proc/misc
Si rien n'est imprimé, vous devrez peut-être le démarrer manuellement (j'utilise simplement les deux commandes suivantes sur une machine sur laquelle Ubuntu Kunpeng 920 est installé. Bien que cette machine dispose d'une carte graphique AMD, elle ne peut pas appeler directement le GPU)
sudo modprobe ashmem_linux
sudo modprobe binder_linux devices=binder,hwbinder,vndbinder
Si ces deux commandes signalent une erreur ou n'ont aucun effet, il se peut que le noyau Linux actuel n'active pas ces deux fonctions. Vous devez vous référer aux instructions d'entrepôt suivantes pour installer un noyau pris en charge ou compiler un noyau pour activer ces deux fonctions. :https://github.com/remote-android/redroid-modules
Il peut être démarré en utilisant l'image docker officielle, mais il n'y a pas d'accélération GPU et la vidéo est décodée en douceur (simulation CPU), donc l'opération est relativement lente dans github.problème[1]Recherchez rk3588 et vous pourrez voir plusieurs commentaires sur l’accélération GPU.
Mais personne n'a encore expliqué comment compiler une image avec l'accélération GPU. Les commentaires ne peuvent que tirer une conclusion quelque peu utile : obtenez des fichiers de pilotes liés à l'accélération GPU à partir du code source officiel du SDK d'Orange Pi et placez-les dans Android Compilés ensemble dans le code source. Ou copiez ces fichiers directement dans le conteneur Docker et redémarrez le conteneur.
Cette conclusion est trop vague et doit comporter de nombreux pièges, c’est pourquoi je ne l’ai pas essayée.Jusqu'à ce qu'un grand type publie un message completProcessus de compilation et code source[2]:
Le didacticiel est écrit de manière très détaillée. Vous pouvez le compiler une fois et le transmettre en suivant les étapes. en outre,Et le patron[3]Une chose a été ajoutée en fonction de cette image.
Alors utilise ça iciImage miroir du patron[4], avant cela, jetez un œil aux dépendances qu'il a mentionnées (version du noyau 5.10.160 et mali ddk g18p0) :
Cela ne devrait poser aucun problème. Il a également mentionné qu’il le ferait.mali_csffw.bin
Fichier copié vers/lib/firmware/
Ensuite, j'ai vérifié et il y a ce fichier dans ce dossier.
La valeur par défaut est liéeg15p0
, nous supprimons donc ce lien symbolique et créons un nouveau lien versg18p0
.Cependant, après test, utilisezg15p0
Le conteneur de la version Redroid peut également utiliser le GPU normalement.
Le test de brossage des vidéos est correct. Je peux seulement dire qu'il n'est ni bloqué ni fluide. Après tout, la configuration actuelle du téléphone mobile est déjà très élevée et elle est beaucoup plus fluide que cette carte de développement.
sudo apt install docker.io -y
sudo usermod -aG docker $USER
sudo chmod a rw /var/run/docker.sock
Les deux dernières lignes de commandes permettent aux utilisateurs ordinaires d'exécuter Docker sans ajouter sudo.
Tirez ensuite l'image : 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
Utilisez ensuite adb pour vous connecter à ce port (adb connect 192.168.31.208:5555
) peut être utiliséQtScrcpy
Voir le bureau de ce conteneur
Installez d'abord aida64 pour voir si les appels de la carte graphique sont normaux :
Si vous utilisez la carte graphique mali-G610 pour le rendu, il n'y aura aucun problème, et le taux de rafraîchissement sera de 60hz. Si vous utilisez une solution logicielle, le taux de rafraîchissement ne sera que de 15hz.
Lorsque ce conteneur est démarré, il apporte unandroidboot.redroid_magisk=1
Activez simplement Magisk pour voir que Magisk fonctionne normalement après avoir allumé l'ordinateur. La première fois que vous cliquez dessus, vous devrez peut-être redémarrer l'utilisation.docker restart redroid
Il peut être utilisé normalement après le redémarrage.
Ouvrez d'abord zygisk dans magisk, puis utilisez la commande adb push pour pousser le package d'installation lsposed dans le conteneur. Installez-le ensuite dans Modules, puis redémarrez et vous verrez que lsposed fonctionne également normalement.
Installez simplement un module xposed et vous pourrez accéder à l'interface des paramètres lsposed.
C'est officielDidacticiel[5]Expliquez comment compiler une image Docker avec Gappps. Cependant, même avec Gappps, elle ne peut pas passer Google.safetynet
Vérification, de nombreuses applications ne peuvent pas être utilisées.
Quelqu'un a également demandé dans le problème, mais il n'y a pas de solution :https://github.com/remote-android/redroid-doc/issues/378
. Les images téléchargées incluent le Google Store.
Après avoir lu le problème, si vous ne configurez pas le WIFI virtuel, certains logiciels détermineront qu'il n'y a pas de réseau même s'il existe un réseau, comme QQ. Parce qu'ils détectent uniquement le WIFI et le trafic, qui ne sont pas tous deux disponibles dans le conteneur Docker. Cependant, mon test a révélé que de nombreux logiciels avec WIFI virtuel montreront qu'il n'y a pas de réseau, mais Internet sera normal sans activer le WIFI virtuel, il est donc recommandé de ne pas l'activer, sachez simplement qu'une telle chose existe .
Nous avons donc besoin d'un WIFI virtuel dans le conteneur, nous avons besoinPrise en charge du noyau[6]
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
basculer versip6tables-legacy
Après cela, Docker doit redémarrer le servicesudo systemctl restart docker
, redémarrer la machine ne sert à rien et le conteneur sera déconnecté d'Internet.
Le noyau du système installé n'active pas ce paramètre.zcat /proc/config.gz | grep CONFIG_MAC80211_HWSIM
Le code du noyau fourni par github est très simple à compiler et peut être compilé en une seule étape. Malheureusement, il n'existe aucune option pour modifier les paramètres du noyau, et lorsque vous modifiez le fichier de configuration du noyau, il sera modifié lors de la compilation.
Après avoir lutté pendant quelques jours, j'ai parcouru toutes les questions du problème et je n'ai pas trouvé de réponse. Je n'ai pas eu d'autre choix que de regarder le script de compilation moi-même. Ce processus spécifique sera abordé dans le prochain article. le noyau est fourni ici.
Adresse de téléchargement du package deb du noyau, utilisée par le systèmeUbuntu22[7]:https://www.123pan.com/s/ihEKVv-TbOx.html
Code d'extraction :AZ3A
. En plus des paramètres ci-dessus, j'ai également ajouté des paramètres liés à ebpf, qui seront abordés plus tard.
D'abord avecuname -a
Vérifiez les informations actuelles du noyau
Tout d'abord, transférez le fichier du noyau compilé sur la machine, puis exécutezsudo dpkg -i *.deb
, il y a cinq fichiers deb au total. Le premier contient les informations de construction et n'a pas besoin d'être installé.
Utilisez ensuitesudo reboot
Redémarrez et vérifiez les informations du noyau.
Les paramètres du noyau sont également activés normalement :
Après la mise à jour du noyau et le redémarrage, le conteneur initialement créé est déconnecté d'Internet et seuls les conteneurs créés ultérieurement peuvent accéder normalement à Internet. Au début, je pensais qu'il y avait un problème avec le noyau, j'ai donc dû actualiser le système et recompiler le noyau.
Bien qu'il y ait une connexion Internet, la vidéo de la station B ne peut pas être actualisée. Je ne peux actualiser que la page d'accueil et le navigateur ne peut pas accéder à la page Web. (Remarque : vous devez d'abord accéder aux paramètres pour vous connecter au WIFI virtuel avant de pouvoir vous connecter à Internet)
Selon les instructions contenues dans ceci :https://github.com/CNflysky/redroid-rk3588/issues/2
Connexion sans fil garantie uniquement ?Même si je ne comprends pas ce que cela signifie. Se pourrait-il qu’il ne puisse y avoir qu’un seul itinéraire ?ip route
Par défaut, il existe deux itinéraires
Le second est le WIFI virtuel. Que diriez-vous de supprimer le premier et d'essayer : ip route del 192.168.200.0/24 dev radio0 proto kernel scope link src 192.168.200.2
J'ai constaté que parfois, lorsqu'il y a une connexion Internet, la vidéo peut être lue. La plupart du temps, elle est bloquée et le chargement de la vidéo prend un certain temps. Cependant, l'actualisation de la page d'accueil est très rapide et les commentaires sont également très rapides. rapide. Changer le DNS n'aide pas non plus. J'essaierai d'autres logiciels plus tard pour voir si la même chose se produit.
Vous pouvez vous référer à :https://github.com/CNflysky/redroid-rk3588/issues/5
, je ne l'essaierai pas. Selon les instructions de Redroid, vous pouvez également spécifier l'agent au démarrage. Si vous définissez VPN globalement, adb peut se déconnecter.
Cela peut échouer, essayez encore quelques fois.
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