τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Πρώτη διεύθυνση:https://mp.weixin.qq.com/s/1e8er_amC94DTVCaNbSuUw
Ο σκοπός αυτού του πράγματος δεν είναι να παίζω παιχνίδια ή τίποτα, απλώς θέλω να είμαι λιγότερο εξαρτημένος από το κινητό τηλέφωνο κατά την αντίστροφη μηχανική της εφαρμογής. Εξάλλου, τα βήματα για να φλας ένα κινητό τηλέφωνο είναι αρκετά ενοχλητικά και μπορεί εύκολα να γίνει τούβλο αν δεν προσέξεις.
Για παράδειγμα, ορισμένες εφαρμογές που δεν είναι αυστηρές σχετικά με τις περιβαλλοντικές δοκιμές μπορούν να δοκιμαστούν σε αυτήν, γεγονός που διευκολύνει επίσης την αλλαγή του πηγαίου κώδικα του συστήματος και το φλας του μηχανήματος αργότερα. Αλλά είναι κρίμα που ο πυρήνας δεν μπορεί να προσαρμοστεί (το redroid και το Waydroid χρησιμοποιούν λύσεις κοντέινερ και μοιράζονται τον πυρήνα με τον κεντρικό υπολογιστή, εάν θέλετε να προσαρμόσετε τον πυρήνα, μπορείτε να χρησιμοποιήσετε μόνο τις σουπιές ή το avd της Google, αλλά αυτά έχουν περιορισμένη υποστήριξη). στο μπράτσο και μπορεί να τρέξει αλλά δεν υπάρχει επιτάχυνση GPU, οπότε θα δοκιμάσω σουπιές αργότερα.
Δεν θα μπω στη διαδικασία ενημέρωσης του Ubuntu με το Orange Pie Εάν ενδιαφέρεστε, διαβάστε το προηγούμενο άρθρο:Το Orange Pie 5plus ξεκινά το Ubuntu από το ssd . Εάν κάνετε flash αυτό το σύστημα, δεν χρειάζεται να εγκαταστήσετε ή να διαμορφώσετε τίποτα για να εκτελέσετε το redroid. Ωστόσο, εάν θέλετε να χρησιμοποιήσετε εικονικό WIFI ή ebpf, θα πρέπει να τροποποιήσετε μόνοι σας τις παραμέτρους του πυρήνα και να μεταγλωττίσετε τον πυρήνα του Linux Αυτό το επόμενο άρθρο θα μιλήσει συγκεκριμένα για τη διαδικασία μεταγλώττισης.
Επίσημο σεμινάριο:https://github.com/remote-android/redroid-doc
grep binder /proc/filesystems
grep ashmem /proc/misc
Εάν δεν εκτυπώνεται τίποτα, ίσως χρειαστεί να το ξεκινήσετε χειροκίνητα (απλώς χρησιμοποιώ τις ακόλουθες δύο εντολές σε ένα μηχάνημα με εγκατεστημένο το Ubuntu Kunpeng 920. Αν και αυτό το μηχάνημα διαθέτει κάρτα γραφικών AMD, δεν μπορεί να καλέσει απευθείας την GPU)
sudo modprobe ashmem_linux
sudo modprobe binder_linux devices=binder,hwbinder,vndbinder
Εάν αυτές οι δύο εντολές αναφέρουν ένα σφάλμα ή δεν έχουν αποτέλεσμα, μπορεί ο τρέχων πυρήνας Linux να μην ενεργοποιεί αυτές τις δύο λειτουργίες. Πρέπει να ανατρέξετε στις ακόλουθες οδηγίες αποθήκης για να εγκαταστήσετε έναν υποστηριζόμενο πυρήνα ή να μεταγλωττίσετε έναν πυρήνα για να ενεργοποιήσετε αυτές τις δύο λειτουργίες. :https://github.com/remote-android/redroid-modules
Μπορεί να ξεκινήσει με τη χρήση της επίσημης εικόνας docker, αλλά δεν υπάρχει επιτάχυνση GPU και το βίντεο είναι απαλό αποκωδικοποιημένο (προσομοίωση cpu), επομένως η λειτουργία είναι σχετικά καθυστερημένη στο githubθέμα[1]Αναζητήστε το rk3588 και μπορείτε να δείτε πολλά σχόλια σχετικά με την επιτάχυνση της GPU.
Αλλά κανείς δεν έχει κοινοποιήσει τον τρόπο μεταγλώττισης μιας εικόνας με επιτάχυνση GPU Τα σχόλια μπορούν να βγάλουν μόνο ένα κάπως χρήσιμο συμπέρασμα: Λάβετε ορισμένα αρχεία προγράμματος οδήγησης που σχετίζονται με την επιτάχυνση GPU από τον επίσημο πηγαίο κώδικα SDK του Orange Pi και τοποθετήστε τα μαζί στο Android Compiled. πηγαίος κώδικας. Ή αντιγράψτε αυτά τα αρχεία απευθείας στο κοντέινερ docker και επανεκκινήστε το κοντέινερ.
Αυτό το συμπέρασμα είναι πολύ ασαφές και πρέπει να υπάρχουν πολλές παγίδες, οπότε δεν το έχω δοκιμάσει.Μέχρι που ένας μεγάλος τύπος εξέδωσε ένα πλήρεςΔιαδικασία μεταγλώττισης και πηγαίος κώδικας[2]:
Το σεμινάριο είναι γραμμένο με μεγάλη λεπτομέρεια Μπορείτε να το μεταγλωττίσετε μία φορά και να το περάσετε ακολουθώντας τα βήματα. επιπλέον,Και το αφεντικό[3]Ένα πράγμα έχει προστεθεί με βάση αυτή την εικόνα.
Οπότε χρησιμοποιήστε αυτό εδώΚαθρέφτης του αφεντικού[4], πριν από αυτό ρίξτε μια ματιά στις εξαρτήσεις που ανέφερε (έκδοση πυρήνα 5.10.160 και mali ddk g18p0):
Αυτό δεν θα έπρεπε να είναι πρόβλημα. Ανέφερε επίσης ότι θα το έκανεmali_csffw.bin
Το αρχείο αντιγράφηκε σε/lib/firmware/
Στη συνέχεια, έλεγξα και υπάρχει αυτό το αρχείο σε αυτόν τον φάκελο.
Η προεπιλογή είναι συνδεδεμένηg15p0
, επομένως διαγράφουμε αυτόν τον μαλακό σύνδεσμο και δημιουργούμε έναν νέο σύνδεσμο προςg18p0
.Ωστόσο, μετά τη δοκιμή, χρησιμοποιήστεg15p0
Το κοντέινερ έκδοσης redroid μπορεί επίσης να χρησιμοποιήσει την GPU κανονικά.
Η δοκιμή του βουρτσίσματος των βίντεο είναι εντάξει. Μπορώ μόνο να πω ότι δεν έχει κολλήσει ή είναι ομαλή, η τρέχουσα διαμόρφωση του κινητού τηλεφώνου είναι ήδη πολύ υψηλή και είναι πολύ πιο ομαλή από αυτήν την πλακέτα ανάπτυξης.
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 Hz.
Όταν ξεκινά αυτό το δοχείο, φέρνει έναandroidboot.redroid_magisk=1
Απλώς ενεργοποιήστε το magisk, ώστε να μπορείτε να δείτε ότι το magisk λειτουργεί κανονικά μετά την ενεργοποίηση του υπολογιστήdocker restart redroid
Μπορεί να χρησιμοποιηθεί κανονικά μετά την επανεκκίνηση.
Πρώτα ανοίξτε το zygisk στο magisk και, στη συνέχεια, χρησιμοποιήστε την εντολή push adb για να ωθήσετε το πακέτο εγκατάστασης lsposed στο κοντέινερ. Στη συνέχεια, εγκαταστήστε το στο Modules, κάντε επανεκκίνηση και θα δείτε ότι το lsposed λειτουργεί επίσης κανονικά.
Απλώς εγκαταστήστε μια μονάδα xposed και μπορείτε να εισέλθετε στη διεπαφή ρυθμίσεων lsposed.
Είναι επίσημοΦροντιστήριο[5]Εξηγήστε πώς να μεταγλωττίσετε μια εικόνα docker με gapps, ωστόσο, ακόμη και με gapps, δεν μπορεί να περάσει το Google.safetynet
Επαλήθευση, πολλές εφαρμογές δεν μπορούν να χρησιμοποιηθούν.
Κάποιος ρώτησε και στο θέμα, αλλά δεν υπάρχει λύση:https://github.com/remote-android/redroid-doc/issues/378
. Οι εικόνες που κατεβάσατε περιλαμβάνουν το Google Store.
Αφού διαβάσετε το ζήτημα, εάν δεν ρυθμίσετε το εικονικό WIFI, κάποιο λογισμικό θα καθορίσει ότι δεν υπάρχει δίκτυο ακόμα και αν υπάρχει δίκτυο, όπως το QQ. Επειδή ανιχνεύουν μόνο WIFI και κίνηση, τα οποία δεν είναι διαθέσιμα στο κοντέινερ του docker. Ωστόσο, η δοκιμή μου διαπίστωσε ότι πολλά λογισμικά με εικονικό WIFI θα δείξουν ότι δεν υπάρχει δίκτυο, αλλά το Διαδίκτυο θα είναι κανονικό χωρίς να ενεργοποιηθεί το εικονικό WIFI, επομένως συνιστάται να μην το ενεργοποιήσετε, απλά να ξέρετε ότι υπάρχει κάτι τέτοιο .
Πρέπει λοιπόν να πάρουμε ένα εικονικό WIFI στο κοντέινερ, χρειαζόμαστεΥποστήριξη πυρήνα[6]
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
μετάβαση σεip6tables-legacy
Μετά από αυτό, το docker πρέπει να επανεκκινήσει την υπηρεσίαsudo systemctl restart docker
, η επανεκκίνηση του μηχανήματος είναι άχρηστη και το κοντέινερ θα αποσυνδεθεί από το Διαδίκτυο.
Ο εγκατεστημένος πυρήνας του συστήματος δεν ενεργοποιεί αυτήν την παράμετρο.zcat /proc/config.gz | grep CONFIG_MAC80211_HWSIM
Ο κώδικας του πυρήνα που παρέχεται από το github είναι πολύ απλός στη μεταγλώττιση και μπορεί να μεταγλωττιστεί σε ένα βήμα Δυστυχώς, δεν υπάρχει επιλογή τροποποίησης των παραμέτρων του πυρήνα και όταν τροποποιείτε το αρχείο διαμόρφωσης του πυρήνα, θα αλλάξει ξανά κατά τη μεταγλώττιση.
Αφού ταλαιπωρήθηκα για λίγες μέρες, πέρασα από όλες τις ερωτήσεις στο τεύχος και δεν μπορούσα να βρω την απάντηση, από το να κοιτάξω μόνος μου το σενάριο της συλλογής Ο πυρήνας παρέχεται εδώ.
Διεύθυνση λήψης πακέτου Kernel deb, που χρησιμοποιείται από το σύστημαUbuntu22[7]:https://www.123pan.com/s/ihEKVv-TbOx.html
Κωδικός εξαγωγής:AZ3A
. Εκτός από τις παραπάνω παραμέτρους, πρόσθεσα και παραμέτρους που σχετίζονται με το ebpf, οι οποίες θα συζητηθούν αργότερα.
Πρώτα μεuname -a
Ελέγξτε τις τρέχουσες πληροφορίες πυρήνα
Πρώτα, μεταφέρετε το μεταγλωττισμένο αρχείο πυρήνα στο μηχάνημα και, στη συνέχεια, εκτελέστε τοsudo dpkg -i *.deb
, υπάρχουν συνολικά πέντε αρχεία deb Το πρώτο είναι οι πληροφορίες κατασκευής και δεν χρειάζεται να εγκατασταθεί.
Στη συνέχεια χρησιμοποιήστεsudo reboot
Κάντε επανεκκίνηση και ελέγξτε τις πληροφορίες του πυρήνα.
Οι παράμετροι πυρήνα ενεργοποιούνται επίσης κανονικά:
Μετά την ενημέρωση του πυρήνα και την επανεκκίνηση, το κοντέινερ που δημιουργήθηκε αρχικά αποσυνδέεται από το Διαδίκτυο και μόνο τα κοντέινερ που δημιουργήθηκαν αργότερα μπορούν να έχουν κανονική πρόσβαση στο Διαδίκτυο. Στην αρχή νόμιζα ότι υπήρχε πρόβλημα με τον πυρήνα, οπότε έπρεπε να ανανεώσω το σύστημα και να μεταγλωττίσω ξανά τον πυρήνα.
Παρόλο που υπάρχει σύνδεση στο Διαδίκτυο, το βίντεο του σταθμού Β δεν μπορεί να ανανεωθεί. Μπορώ να ανανεώσω μόνο την αρχική σελίδα και το πρόγραμμα περιήγησης δεν μπορεί να έχει πρόσβαση στην ιστοσελίδα. (Σημείωση: Πρέπει πρώτα να μεταβείτε στις ρυθμίσεις για να συνδεθείτε στο εικονικό WIFI για να μπορέσετε να συνδεθείτε στο Internet)
Σύμφωνα με τις οδηγίες σε αυτό: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
, δεν θα το δοκιμάσω. Σύμφωνα με τις οδηγίες του redroid, μπορείτε επίσης να καθορίσετε τον πράκτορα κατά την εκκίνηση. Εάν ρυθμίσετε το 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