2015-04-23 27 views
25

Jak uruchomić to polecenie w systemie OSX?Błąd: "zlib" jest nieprawidłowym poleceniem

dd if=mybackup.ab bs=24 skip=1|openssl zlib -d > mybackup.tar

Gdy uruchomię to uzyskać następujące błędy

$ dd if=mybackup.ab bs=24 skip=1|openssl zlib -d > mybackup.tar 
dd: mybackup.ab: No such file or directory 
openssl:Error: 'zlib' is an invalid command. 

Standard commands 
asn1parse  ca    ciphers  crl   crl2pkcs7  
dgst   dh    dhparam  dsa   dsaparam  
ec    ecparam  enc   engine   errstr   
gendh   gendsa   genrsa   nseq   ocsp   
passwd   pkcs12   pkcs7   pkcs8   prime   
rand   req   rsa   rsautl   s_client  
s_server  s_time   sess_id  smime   speed   
spkac   verify   version  x509   

Message Digest commands (see the `dgst' command for more details) 
md2   md4   md5   mdc2   rmd160   
sha   sha1   

Cipher commands (see the `enc' command for more details) 
aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc  
aes-256-ecb base64   bf    bf-cbc   bf-cfb   
bf-ecb   bf-ofb   cast   cast-cbc  cast5-cbc  
cast5-cfb  cast5-ecb  cast5-ofb  des   des-cbc   
des-cfb  des-ecb  des-ede  des-ede-cbc des-ede-cfb  
des-ede-ofb des-ede3  des-ede3-cbc des-ede3-cfb des-ede3-ofb 
des-ofb  des3   desx   rc2   rc2-40-cbc  
rc2-64-cbc  rc2-cbc  rc2-cfb  rc2-ecb  rc2-ofb   
rc4   rc4-40   rc5   rc5-cbc  rc5-cfb   
rc5-ecb  rc5-ofb  seed   seed-cbc  seed-cfb  
seed-ecb  seed-ofb  
+1

przepełnienie stosu jest witryną dla pytań programowania i rozwoju. To pytanie wydaje się być nie na temat, ponieważ nie chodzi o programowanie czy rozwój. Zobacz [Jakie tematy mogę tu zadać] (http://stackoverflow.com/help/on-topic) w Centrum pomocy. Być może lepszym kandydatem byłoby [Superużytkownik] (http://superuser.com/) lub [Apple Stack Exchange] (http://apple.stackexchange.com/). – jww

Odpowiedz

34

OpenSSL na mac jest skompilowany bez obsługi zlib. Alternatywna metoda opisana w this article działa na moim Yosemite:

dd if=backup.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" | tar -xvf - 

Rozszerzone wersje, jeśli po prostu chcesz, aby przekształcić go w archiwum tar:

dd if=backup.ab bs=1 skip=24 | python -c "import zlib,sys;sys.stdout.write(zlib.decompress(sys.stdin.read()))" > backup.tar 

pomija on pierwsze 24 bajtów Android nagłówka, a następnie rozpakowuje zlib dane .

+2

Najwyraźniej nie jest to takie łatwe, kolejność plików w archiwum tar jest ważna na przykład, czytaj http://nelenkov.blogspot.com/2012/06/unpacking-android-backups.html – baf

+1

zrozumiałem ".. upewnij się, że określasz pliki do uwzględnienia we właściwej kolejności, tworząc listę plików kopii zapasowych i przekazując do tar za pomocą opcji -T. " –

5

Wystarczy naprawić

Pobierz najnowszą wersję ze OpenSSL Official Repo.

$ wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz 
$ tar -zxvf openssl-1.1.0e.tar.gz 
$ cd openssl-1.1.0e 

Konfiguracja OpenSSL z obsługą zlib

$ ./config zlib 
$ make 
$ sudo make install 

Szczęśliwe dni

$ which openssl 
/usr/local/bin/openssl