minhas informações de contato
Correspondência[email protected]
2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Primeiro endereço:https://mp.weixin.qq.com/s/1e8er_amC94DTVCaNbSuUw
O objetivo disso não é jogar nem nada, mas sim ficar menos dependente do celular na hora de fazer engenharia reversa do APP. Afinal, as etapas para atualizar um telefone celular são bastante irritantes e podem facilmente travar se você não tomar cuidado.
Por exemplo, alguns aplicativos que não são rigorosos quanto aos testes ambientais podem ser testados nele, o que também torna mais fácil alterar o código-fonte do sistema e atualizar a máquina posteriormente. Mas é uma pena que o kernel não possa ser personalizado (redroid e Waydroid usam soluções de contêiner e compartilham o kernel com o host. Se você quiser personalizar o kernel, você só pode usar o choco ou avd do Google, mas estes têm suporte limitado). no braço e pode ser executado, mas não há aceleração de GPU, então tentarei o choco mais tarde.
Não entrarei no processo de atualização do Ubuntu com Orange Pie. Se você estiver interessado, leia o artigo anterior:Orange Pie 5plus inicia Ubuntu a partir de SSD . Se você atualizar este sistema, não precisará instalar ou configurar nada para executar o redroid. No entanto, se você quiser usar WIFI virtual ou ebpf, você ainda terá que modificar os parâmetros do kernel e compilar você mesmo o kernel do Linux. O próximo artigo falará especificamente sobre o processo de compilação.
Tutorial oficial:https://github.com/remote-android/redroid-doc
grep binder /proc/filesystems
grep ashmem /proc/misc
Se nada for impresso, pode ser necessário iniciá-lo manualmente (eu apenas uso os dois comandos a seguir em uma máquina com Ubuntu Kunpeng 920 instalado. Embora esta máquina tenha uma placa gráfica AMD, ela não pode chamar diretamente a GPU)
sudo modprobe ashmem_linux
sudo modprobe binder_linux devices=binder,hwbinder,vndbinder
Se esses dois comandos relatarem um erro ou não tiverem efeito, pode ser que o kernel Linux atual não habilite essas duas funções. Você precisa consultar as instruções do warehouse a seguir para instalar um kernel suportado ou compilar um kernel para habilitar essas duas funções. :https://github.com/remote-android/redroid-modules
Ele pode ser iniciado usando a imagem oficial do docker, mas não há aceleração de GPU e o vídeo é decodificado suavemente (simulação de CPU), portanto a operação é relativamente lenta no GitHub.emitir[1]Pesquise rk3588 e você verá vários comentários sobre aceleração de GPU.
Mas ninguém compartilhou como compilar uma imagem com aceleração de GPU antes. Os comentários só podem tirar uma conclusão útil: Obtenha alguns arquivos de driver relacionados à aceleração de GPU do código-fonte oficial do SDK do Orange Pi e coloque-os no Android compilados juntos no. Código fonte. Ou copie esses arquivos diretamente para o contêiner do docker e reinicie o contêiner.
Esta conclusão é muito vaga e deve haver muitas armadilhas, por isso não tentei.Até que um cara grande emitiu um completoProcesso de compilação e código-fonte[2]:
O tutorial é escrito detalhadamente. Você pode compilá-lo uma vez e passá-lo seguindo as etapas. além disso,E o chefe[3]Uma coisa foi adicionada com base nesta imagem.
Então use isso aquiImagem espelhada do chefe[4], antes disso dê uma olhada nas dependências que ele mencionou (versão do kernel 5.10.160 e mali ddk g18p0):
Isso não deveria ser problema. Ele também mencionou que faria isso.mali_csffw.bin
Arquivo copiado para/lib/firmware/
Em seguida, verifiquei e existe este arquivo nesta pasta.
O padrão está vinculadog15p0
, então excluímos esse link virtual e criamos um novo link parag18p0
.No entanto, após o teste, useg15p0
A versão redroid container também pode usar a GPU normalmente.
O teste de escovação de vídeos está bom, só posso dizer que não está travado nem liso. Afinal, a configuração atual do celular já é muito alta e é muito mais suave que esta placa de desenvolvimento.
sudo apt install docker.io -y
sudo usermod -aG docker $USER
sudo chmod a rw /var/run/docker.sock
As duas últimas linhas de comandos são para usuários comuns executarem o docker sem adicionar sudo.
Em seguida, puxe a imagem: 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
Em seguida, use adb para conectar-se a esta porta (adb connect 192.168.31.208:5555
) pode ser usadoQtScrcpy
Veja a área de trabalho deste contêiner
Primeiro instale o aida64 para ver se as chamadas da placa gráfica estão normais:
Se você usar a placa gráfica mali-G610 para renderização, não haverá problema e a taxa de atualização será de 60 Hz. Se você usar uma solução suave, a taxa de atualização será de apenas 15 Hz.
Quando este contêiner é iniciado, ele traz umandroidboot.redroid_magisk=1
Basta ativar o magisk para ver que o magisk está funcionando normalmente após ligar o computador. Na primeira vez que você clicar nele, pode ser necessário reiniciar.docker restart redroid
Ele pode ser usado normalmente após reiniciar.
Primeiro abra o zygisk no magisk e, em seguida, use o comando adb push para enviar o pacote de instalação lsposed para o contêiner. Em seguida, instale-o em Módulos, reinicie e você verá que o lsposed também está funcionando normalmente.
Basta instalar um módulo xposed e você poderá entrar na interface de configurações do lsposed.
É oficialTutorial[5]Explique como compilar uma imagem docker com gapps. No entanto, mesmo com gapps, ela não pode passar pelo Google.safetynet
Verificação, muitos aplicativos não podem ser usados.
Alguém também perguntou na questão, mas não há solução:https://github.com/remote-android/redroid-doc/issues/378
. As imagens baixadas incluem a Google Store.
Depois de ler o problema, se você não configurar o WIFI virtual, algum software determinará que não há rede, mesmo que haja uma rede, como o QQ. Porque eles detectam apenas WIFI e tráfego, ambos não disponíveis no contêiner do docker. Porém, meu teste descobriu que muitos softwares com WIFI virtual mostrarão que não há rede, mas a Internet ficará normal sem ligar o WIFI virtual, por isso é recomendável não ligá-lo, apenas saiba que existe tal coisa .
Então precisamos de um WIFI virtual no contêiner, precisamosSuporte ao kernel[6]
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
troque paraip6tables-legacy
Depois disso, o docker precisa reiniciar o serviçosudo systemctl restart docker
, reiniciar a máquina é inútil e o contêiner será desconectado da Internet.
O kernel do sistema instalado não habilita este parâmetro.zcat /proc/config.gz | grep CONFIG_MAC80211_HWSIM
O código do kernel fornecido pelo github é muito simples de compilar e pode ser compilado em uma única etapa. Infelizmente, não há opção para modificar os parâmetros do kernel e, quando você modifica o arquivo de configuração do kernel, ele será alterado novamente durante a compilação.
Depois de lutar por alguns dias, analisei todas as perguntas da edição e não consegui encontrar a resposta. Não tive escolha a não ser examinar eu mesmo o script de compilação. Este processo específico será discutido no próximo artigo. kernel é fornecido aqui.
Endereço de download do pacote deb do kernel, usado pelo sistemaUbuntu22[7]:https://www.123pan.com/s/ihEKVv-TbOx.html
Código de extração:AZ3A
. Além dos parâmetros acima, também adicionei parâmetros relacionados ao ebpf, que serão discutidos mais adiante.
Primeiro comuname -a
Verifique as informações atuais do kernel
Primeiro, transfira o arquivo do kernel compilado para a máquina e, em seguida, executesudo dpkg -i *.deb
, existem cinco arquivos deb no total. O primeiro é a informação de compilação e não precisa ser instalado.
Então usesudo reboot
Reinicie e verifique as informações do kernel.
Os parâmetros do kernel também são ativados normalmente:
Após atualizar o kernel e reiniciar, o contêiner originalmente criado é desconectado da Internet e somente os contêineres criados posteriormente podem acessar a Internet normalmente. A princípio pensei que havia um problema com o kernel, então tive que atualizar o sistema e recompilar o kernel.
Embora haja uma conexão com a Internet, o vídeo da estação B não pode ser atualizado. Só consigo atualizar a página inicial e o navegador não consegue acessar a página da web. (Observação: você deve primeiro acessar as configurações para se conectar ao WIFI virtual antes de poder se conectar à Internet)
De acordo com as instruções contidas neste:https://github.com/CNflysky/redroid-rk3588/issues/2
Somente conexão sem fio garantida?Embora eu não entenda o que isso significa. Será que só pode haver uma rota?ip route
Por padrão, existem duas rotas
O segundo é o WIFI virtual. Que tal excluir o primeiro e tentar: ip route del 192.168.200.0/24 dev radio0 proto kernel scope link src 192.168.200.2
Descobri que às vezes, quando há uma conexão com a Internet, o vídeo pode ser reproduzido na maioria das vezes, fica travado e demora um pouco para carregar o vídeo. Porém, atualizar a página inicial é muito rápido e os comentários também são muito. rápido. Alterar o DNS também não ajuda. Tentarei outro software mais tarde para ver se acontece a mesma coisa.
Você pode consultar:https://github.com/CNflysky/redroid-rk3588/issues/5
, não vou tentar. De acordo com as instruções do redroid, você também pode especificar o agente na inicialização. Se você definir VPN globalmente, o adb poderá se desconectar.
Pode falhar, basta tentar mais algumas vezes.
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