Apesar que venho falando bastante sobre o toybox, para quem não sabe do que se trata toybox é um terminal de comandos desenvolvido especificamente para Linux e hoje está presente no android desde a versão MarshMallow.
Recentemente fiz um vídeo onde demos uma olhada no toybox onde explico como ele foi criado, como configurá-lo, compilá-lo e utilizá-lo.
Na sexta feira (24/02/2018) foi lançada a versão 0.7.6 deste terminal que simplesmente me encanta especificamente pelo seu tamanho (quase quatro vezes menor que o Bash), saída de comandos (bem mais clara que a do Bash) e sua licença que é de domínio publico.
Eu baixei e analisei esta nova versão e a primeira coisa que posso notar é que podemos fazer uma configuração padrão usando tanto o make defconfig mostrado no vídeo quanto o popular "./configure". Fiz o teste com as duas opções e funcionou tudo OK
Eu baixei e analisei esta nova versão e a primeira coisa que posso notar é que podemos fazer uma configuração padrão usando tanto o make defconfig mostrado no vídeo quanto o popular "./configure". Fiz o teste com as duas opções e funcionou tudo OK
Teste com o ./configure e funcionando bem |
Teste com o make defconfig e também funcionando bem. |
Em questão de tamanho final pós-compilação, ambos possuem o mesmo tamanho (320KB). Mas quando de se trata de comandos, seria um sufoco analisar um a um para saber o que mudou olhando desta maneira:
Comparando os comandos entres as versões 0.7.5 e 0.7.6 do toybox de uma forma bem ilógica |
Ok, então resolvi dar uma filtrada usando o comando wc (word counter) com a opção -w (filtrar por quantidade de palavras) e me deparei com isso. A unica mudança foi um comando:
O comando adicinado foi o crc32 que é utilizado para checksum de cada arquivo:
O comando cut recebeu uma reescrita completa tendo adicionado suporte a multiplos ranges, suporte a caracteres utf8/unicode, e novas opções -CDFO. utilize -C para medir colunas ao invés de caracteres (para o dobro de largura de chars), e "cut -DF 3-5" para selecionar palavras (assim como no "awk '{print $3 $4 $5}'").
Adicionaram as seguintes opções aos comando (correções também foram feitas ao comando top),:
A equipe do android adicionou df -i, uptime -p, time -v, and xxd -i -ri, corrigiram id -G para somente a saída do grupo de IDs, corrigiram a combinação xargs -0 -n, adicionaram find -exec + obey ARG_MAX (como no xargs), fizeram killall matar scripts, corrigiram um off no pidof que poderia causar um falso positivo em nomes com 15 caracteres, adicionaram testes ao gzip/gunzip/zcat tests, e o comando file a identificar mais arquivos (ogg, TrueType font, LLVM bitcode, PEM certs, e executáveis PE). O getprop/setprop do android agora permite ro.
Houveram muitas outras melhorias nos comandos, mas aqui estão algumas. Baixem o toybox (seja em forma binária ou de código fonte) e bora testar e ajudar a comunidade ;)
Fiquem também com a história do toybox:
Comparando os comandos entres as versões 0.7.5 e 0.7.6 do toybox de forma filtrada |
Mas essa é a unica diferença? Um comando?A verdade é que não. Dentre as mudanças estão correções nos comandos iconv, logger, setfattr e gzip/gunzip/zcat. Os comandos stty e fmt que estavam em Pendentes foram adicionados como funcionais.
O comando adicinado foi o crc32 que é utilizado para checksum de cada arquivo:
Comando crc32 no toybox 0.7.6 |
Adicionaram as seguintes opções aos comando (correções também foram feitas ao comando top),:
- top -m
- iotop -H
- iconv -c
- Correções no ps -T 1234 para exibir threads pertencentes a qual PID,
A equipe do android adicionou df -i, uptime -p, time -v, and xxd -i -ri, corrigiram id -G para somente a saída do grupo de IDs, corrigiram a combinação xargs -0 -n, adicionaram find -exec + obey ARG_MAX (como no xargs), fizeram killall matar scripts, corrigiram um off no pidof que poderia causar um falso positivo em nomes com 15 caracteres, adicionaram testes ao gzip/gunzip/zcat tests, e o comando file a identificar mais arquivos (ogg, TrueType font, LLVM bitcode, PEM certs, e executáveis PE). O getprop/setprop do android agora permite ro.
Houveram muitas outras melhorias nos comandos, mas aqui estão algumas. Baixem o toybox (seja em forma binária ou de código fonte) e bora testar e ajudar a comunidade ;)
Fiquem também com a história do toybox:
Nenhum comentário:
Postar um comentário
Viu algum erro e quer compartilhar seu conhecimento? então comente aí.
Observação: somente um membro deste blog pode postar um comentário.