Ich versuche, einen Android-Shell-Befehl zu finden, der eine Datei lesen kann, aber die Macht hat, zu überspringen, zum Beispiel 512 Bytes alle 1024 Bytes.
Existiert ein solcher Befehl und ist er für Android-Geräte verfügbar?
Ich habe mir die dd- Dokumentation angesehen , konnte aber nicht herausfinden, ob es möglich ist, dd für diesen Zweck zu verwenden. Sie können dd dazu bringen, Bytes am Anfang der Datei zu überspringen, Sie können X Bytes aus einer Datei lesen, aber ich sehe nicht, wie Sie die von mir beschriebene Funktion erhalten.
BEARBEITEN:
Für meinen Zweck sollte der Befehl/das Skript an stdout ausgegeben werden, und die Verarbeitung liest die Ausgabe wie einen Stream, sodass es nicht so etwas wie "eine Datei kategorisieren, verarbeiten, eine Datei kategorisieren" sein wird. Es ist wie "während wahr; eine Datei cat; fertig | Verarbeitung".
Die Liste der verfügbaren Befehle finden Sie hier: http://www.busybox.net/downloads/BusyBox.html
Sie sollten versuchen, dieses Bash-Skript zu verwenden, das ich für Sie geschrieben habe (benötigt busybox auf Ihrem Android):
Legen Sie das Skript in einer Datei namens script.bash ab (ändern Sie es mit Ihrem eigenen Pfad):
#!/system/xbin/bash
# sputnick 20120928 http://android.stackexchange.com/posts/30069
binfile=<THE PATH OF YOUR BIN FILE>
bytes=$(wc -c < $binfile)
c=0 count=0
while ((count < bytes - (1024+512) )); do
dd 2>/dev/null if=$binfile bs=512 count=2 skip=$c
printf '\n\n'
((count += 1024+512 ))
((c+=3))
done
Jetzt in einem Terminal auf Ihrem Computer (dies ist für Linux, passen Sie es an, wenn Sie Windows verwenden)
adb push script.bash /mnt/sdcard/script.bash
adb shell
bash
chmod +x /mnt/sdcard/script.bash
/mnt/sdcard/script.bash
bearbeiten
Dies ist, was das Skript in Ordnung macht :
dd 2>/dev/null if=/tmp/bin bs=512 count=2 skip=0
dd 2>/dev/null if=/tmp/bin bs=512 count=2 skip=3
dd 2>/dev/null if=/tmp/bin bs=512 count=2 skip=6
dd 2>/dev/null if=/tmp/bin bs=512 count=2 skip=9
(...)
Rui Marken
Gilles Quenot