Nowe posty

Autor Wątek: dostęp do iphona  (Przeczytany 2093 razy)

Offline Tomasz Rozalski

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 108
    • Zobacz profil
dostęp do iphona
« dnia: 2018-11-24, 08:59:16 »
W tym artykule: https://gist.github.com/samrocketman/70dff6ebb18004fc37dc5e33c259a0fc jest następujący fragment:
Cytuj
Setup environment

Don't forget to set up your environment before building. I typically build and install packages to my local user at $HOME/usr.

sudo apt-get install -y build-essential git

Here's a peek at my .bashrc settings:

[ ! -d "$HOME/usr/src" ] && mkdir -p "$HOME/usr/src"
export PKG_CONFIG_PATH="${HOME}/usr/lib/pkgconfig:${PKG_CONFIG_PATH}"
export CPATH="${HOME}/usr/include:${CPATH}"

export MANPATH="${HOME}/usr/share/man:${MANPATH}"

export PATH="${HOME}/usr/bin:${PATH}"
export LD_LIBRARY_PATH="${HOME}/usr/lib:${LD_LIBRARY_PATH}"

Notes:

    Important! PATH and LD_LIBRARY_PATH is important because it is the runtime of libimobiledevice and ifuse to fix mounting iOS 10 devices.
    MANPATH is only used when looking up man pages so it's optional (I recommend it).
    PKG_CONFIG_PATH and CPATH is used at compile time to resolve dependencies.

O co chodzi z tą "budową" czy "budowaniem"? Jak rozumieć potrzebę wyznaczenia ww ścieżek? Nie daję rady bo mój angielski jest taki sobie i nieinformatyczny.

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2757
  • 1709
    • Zobacz profil
Odp: dostęp do iphona
« Odpowiedź #1 dnia: 2018-11-25, 00:24:57 »
Cytuj
Nie daję rady bo mój angielski jest taki sobie i nieinformatyczny.
- Ale z google translatorem costam rozumiesz ?  https://translate.google.pl/?hl=pl

Na potrzeby tego tematu zaczne od spamu:
1. Czy wiesz do czego to jest i czy tego potrzebujesz ?
na pewno przeczytales ze:

Cytuj
Dlaczego ten dokument?

Uaktualniłem mój iPhone 5s do iOS 10 i nie mogłem już pobierać z niego zdjęć. Było to dla mnie nie do przyjęcia, więc pracowałem nad odzyskaniem moich zdjęć. Ten dokument to moja historia (w Ubuntu 16.04).

Rozwiązaniem jest skompilowanie libimobiledevice i użycie ze źródła.
Publiczność

Dla kogo przeznaczony jest ten przewodnik ?

Kompilowanie oprogramowania jest tym, co uważam za zaawansowaną umiejętność Linuksa. Jeśli nie jesteś zainteresowany manipulowaniem przy systemie operacyjnym, ten przewodnik może nie być dla Ciebie. Jest wiele pojęć, których nie wyjaśniam lub nie objaśniam zwięźle, aby te instrukcje były krótkie (w porównaniu do wyjaśnienia wszystkiego).

Chociaż starałem się myśleć o początkujących podczas tworzenia tego przewodnika; ten przewodnik nie jest przeznaczony dla osób o słabym sercu. Jeśli wcześniej nie skompilowałeś oprogramowania, zalecam ćwiczenie wewnątrz VirtualBox, zanim spróbujesz tego w swoim prawdziwym systemie. Postępuj zgodnie z tym przewodnikiem na własne ryzyko, ponieważ nie mogę udzielać żadnych gwarancji w oparciu o nieznany indywidualny poziom umiejętności.
https://gist.github.com/samrocketman/70dff6ebb18004fc37dc5e33c259a0fc

2. Odpowiedz na twoje pytanie:
Ja posiadam dystrybucje oparta na rpm ( choc to nie jest zbyt istotne )

Budowanie pakietu rpm ( przykladowo )
wyglada mniej wiecej tak ze uruchamiasz polecenie ktore czyta plik spec

-przykladowy plik rpm.spec
https://github.com/brnt/openresty-rpm-spec/blob/master/openresty.spec

i je wykonuje  je w celu zbudowania pakietu rpm  ( jak jakis skrypt )
w tym pliku spec masz np.
Cytuj
./configure --with-ipv6 --with-pcre-jit --with-http_geoip_module ...
Normalnie w plikach zamiast tego stosuje sie makra
przykladowo moge zobaczyc co robi makro %configure w moim systemie
( polecenie rpm dziala tylko w dystrybucjach opartych o rpm )
$ rpm --eval=%configure

 
 
  CFLAGS="${CFLAGS:--O2  -pipe -Wformat -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables}" ; export CFLAGS ;
  CXXFLAGS="${CXXFLAGS:--O2  -pipe -Wformat -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables}" ; export CXXFLAGS ;
  FFLAGS="${FFLAGS:--O2  -pipe -Wformat -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fomit-frame-pointer -march=i586 -mtune=generic -fasynchronous-unwind-tables}" ; export FFLAGS ;
  LDFLAGS="$LDFLAGS -Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-O1 -Wl,--build-id"; export LDFLAGS ;
  CONFIGURE_TOP="${CONFIGURE_TOP:-.}";
  /usr/lib/rpm/rambo/force-as-needed-for-shared-lib-in-libtool ;
  /usr/lib/rpm/rambo/drop-ld-no-undefined-for-shared-lib-modules-in-libtool ;
  /usr/lib/rpm/rambo/fix-libtool-ltmain-from-overlinking ;
  /usr/lib/rpm/rambo/fix-libtool-from-moving-options-after-libs $CONFIGURE_TOP ;
  /usr/lib/rpm/rambo/fix-dlsearch-path-in-libtool-for-multilib $CONFIGURE_TOP lib ;
  (cd $CONFIGURE_TOP; [ ! -f configure.in -a ! -f configure.ac ] || libtoolize --copy --force);
  [ -f $CONFIGURE_TOP/configure.in -o -f $CONFIGURE_TOP/configure.ac ] &&
  CONFIGURE_XPATH="--x-includes=/usr/include --x-libraries=/usr/lib"
  $CONFIGURE_TOP/configure i586-mandriva-linux-gnu \
--program-prefix= \
  --prefix=/usr \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--sysconfdir=/etc \
--datadir=/usr/share \
--includedir=/usr/include \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
--localstatedir=/var \
--sharedstatedir=/usr/com \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
    $CONFIGURE_XPATH
To sa ustawienia jak ma byc pakiet ( przygotowany / kompilowany ), gdzie zainstalowany.
( przyjrzyj sie zwlaszcza sciezkom, nazwy zmiennych sa podobne )


Duzymi literami sa zazwyczaj wypisane zmienne srodowiskowe.
Przykladowo zmienna srodowiskowa PATH moge sprawdzic tak
$ echo $PATH
/bin:/usr/bin:/sbin:/usr/sbin:/usr/games:/usr/lib/qt4/bin:/usr/lib/qt5/bin:/home/x/bin:/usr/lib/qt5/bin

Powinienes takze wiedziec gdzie system powinien umieszczac jaki plik
http://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html

Ale po co te makra ?
Taki spec by zajmowal duzo miejsca, a z makrami plik rpm.spec jest duzo mniejszy.

Taki przyklad:
Zamiast pisac
/usr/bin/jakis_program
moge napisac
%{_bindir}/jakis_program


Gdybys chcial poczytac o rpm to:
http://ftp.rpm.org/max-rpm/
https://wiki.fedora.pl/wiki/Rpmbuild

Ciekawa strona wraz z lista makr byla i znikla wraz z bankructwem i upadkiem Mandrivy Linux :(
Strona chyba nie byla na serwerze Mandrivy, ale ktos chyba jej uzywal.
Strona byla fajna po pokazywala roznice w makrach miedzy trzema najwiekszymi dystrybucjami rpm.
Po zatym nie musialem sprawdzac w terminalu, co dane makro robi, a chodzi glownie o sciezki.

Czyli ze jak ?
Czyli ten gosciu o ktorego pisales ustawil sobie zmienne gdzie ma zainstalowac sie jego program.


PS: Mam nadzieje ze choc odrobine to co napisalem ma sens i nie pisalem nie potrzebnie.

Edytowane
Jak szukac zmiennych środowiskowych potrzebnych do zmiany instalacji danego pliku ?
- Wszystko zalezy jakiego narzedzia uzywasz do budowania / kompilowania programu
./configure --help
make --help
qmake --help
cmake --help
...

Wiecej o zmiennych srodowiskowych
http://pl.docs.pld-linux.org/konfiguracja_zmienne_srodowiskowe.html

Edytowane
taki przykladowy fragment z pliku kadu.spec ( z OpenSuse ) pokazujacy uzyte zmienne / opcje do kompilacji przy pomocy narzedzia cmake.
cmake \
%if %{_lib} == "lib64"
      -DLIB_SUFFIX=64 \
%endif
      -DCMAKE_BUILD_TYPE=RelWithDebInfo \
      -DCMAKE_INSTALL_PREFIX=%{_prefix} \
      -DWITH_ENCHANT=ON

Jeszcze cos
Cytuj
Jak rozumieć potrzebę wyznaczenia ww ścieżek?
W tekscie ktory wkleiles pisze
Cytuj
Ważne! Zdefiniowanie PATH i LD_LIBRARY_PATH jest wazne, ponieważ jest to środowisko uruchomieniowe libimobiledevice
... do naprawy montowania urządzeń iOS 10.
https://translate.google.pl/?hl=pl

Od siebie dodam ze definiowanie PATH jest troche niebezpieczne.
PATH to zmienna gdzie system szuka binarek.
Czyli zamiast uruchamiac w terminalu synaptic w ten sposob
/usr/bin/synaptic
moge poprostu uruchomic wten sposob
synaptic
Nadpisanie PATH moze wiec spowodowac ze niektore programy z menu i niektore skrypty w systemie przestana dzialac.


Edytowane
bardziej konkretnie o zmiennej srodowiskowej PATH   https://www.cyberciti.biz/faq/unix-linux-adding-path/
Ta zmienna jest juz ustalana przy starcie systemu.
Edytujac plik  .bashrc w katalogu uzytkownika mozesz dla tego uzytkownika ( i tylko dla niego ) dodac kolejne sciezki gdzie system ma szukac binarek.
Np.
export PATH="${HOME}/usr/bin:${PATH}"
Zostala utworzona zmienna PATH = nowa sciezka ${HOME}/usr/bin + stare / poprzednie ustawione sciezki $PATH
Dzieki temu system wie ze binarki moze takze znalesc w katalogu domowym ${HOME}/usr/bin/

Edytowane
Na samym poczatku sie pomylilem,
To co podal autor, nie chodzi o miejsce instalacji, ale zeby system odpowiednio te pliki znalazl.
Normalnie tego nie trzeba robic. On to zrobil bo zainstalowal program w katalogu domowym.
Bez tego, jego system nie znajdzie np.  programu bez podania sciezki.
Widze to po podanym ${HOME} w jego sciezkach.
Miejsce docelowe instalacji mogl zmienic zmieniajac opcje np. prefix
Masz taka sama opcje w makro %configure.
i tak jak wspomnialem, te zmienne znajdziesz np, w ./configure --help

Natomiast zmienne ujete wyzej w .bashrc ,
pokazuja systemowi gdzie ma szukac dany plik.

PKG_CONFIG_PATH = miejsca w ktorym sa pliki konfiguracyjne
CPATH = miejsca w ktorym sa naglowki ( pliki *.h ) potrzebne do kompilacji programow
MANPATH = miejsca w ktorym sa  manual-e
PATH = miejsca w ktorym sa  binarki
LD_LIBRARY_PATH  = miejsca w ktorym sa  biblioteki
« Ostatnia zmiana: 2018-11-26, 01:10:22 wysłana przez 1709 »
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.

Offline pavbaranov

  • Users
  • Guru
  • *****
  • Wiadomości: 878
    • Zobacz profil
Odp: dostęp do iphona
« Odpowiedź #2 dnia: 2018-11-25, 15:09:49 »
@Tomasz Rozalski - Konkretnie to co chcesz osiągnąć? "Dostęp" nie wiele mówi, a ogólnie "dostęp" do IPhone jest możliwy bez kompilowania czegokolwiek. Dlaczego akurat to co chcesz skompilować jest Ci potrzebne?

Offline Tomasz Rozalski

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 108
    • Zobacz profil
Odp: dostęp do iphona
« Odpowiedź #3 dnia: 2018-11-29, 08:06:13 »
Mam dokładnie taki sam telefon jak autor wskazanego przeze mnie posta i te same systemy na telefonie i komputerze. Ubuntu 16 wykrywa co prawda iphona ale nie widzi co ma w środku. Problem ten rozwiązałem tak, że po prostu zmałpowałem cytowane wpisy do .bashrc. Po ponownym odpaleniu kompa udało się dokończyć "naprawę synchronizacji" jak to jest nazwane i mogę już swobodnie przerzucać pliki ale tylko do katalogu ze zdjęciami. Akurat na tym najmniej mi zależało. Muzykę czy ebooki muszę i tak przewalać przez chmurę o czym z resztą doczytałem w poradniku
« Ostatnia zmiana: 2018-11-29, 13:06:43 wysłana przez Tomasz Rozalski »