Niedawno kupiłem Nexusa 4 i chciałbym przenieść na niego moje zdjęcia z poprzedniego urządzenia. Mój poprzedni telefon z Androidem używał standardowej pamięci masowej USB, co dawało 0 problemów z kopiowaniem tam iz powrotem, ale Nexus 4, podobnie jak wiele innych współczesnych telefonów z Androidem, jak sądzę, używa MTP, który ma ciekawą funkcję odmowy kopiowania oryginału daty / znaczniki czasu plików, używając zamiast tego daty, w której pliki są kopiowane.
Jest to oczywiście ogromny kłopot, jeśli chodzi o zdjęcia; nie tylko dlatego, że nie można sprawdzić oryginalnej daty zrobienia zdjęcia podczas przeglądania telefonu, ale także dlatego, że ostatecznie nie są posortowane.
Czy istnieje sposób na przesłanie zdjęć do telefonu z systemem Android Jelly Bean, który nie obsługuje pamięci masowej USB, zachowując oryginalne znaczniki czasu?
Rzeczy, które próbowałem do tej pory:
- Przesyłanie przez USB MTP
- Push ADB (zarówno pełne foldery, jak i pojedyncze pliki)
- Przesyłanie przez SSH (za pomocą SSHDroid + WinSCP)
- Przesyłanie i pobieranie z Dropbox
- Przesyłanie pliku ZIP przez MTP i rozpakowanie pliku w telefonie
- Przesyłanie z drugiego telefonu przez bluetooth
- Funkcja „Fix date” QuickPic
- Lokalna synchronizacja
- Korekta daty zdjęcia
- FTPSyncX
- Znaki dymne
- Krzyczy na telefon
Żaden z nich nie zachował znacznika czasu, co doprowadza mnie do szaleństwa.
(Poza tym nie jestem jeszcze zrootowany, ale jeśli jedyny możliwy sposób wymaga rootowania, również z zadowoleniem przyjąłbym tę odpowiedź.)
Odpowiedzi:
Nie możesz, jest to aktualny problem z uprawnieniami ( tutaj zgłoszenie błędu ) folderu s / sdcard systemu Android 4.0 +, jeśli nie używa FAT32 (ale FUSE).
Powód: Przejście z FAT32 do zunifikowanego przechowywania danych dla aplikacji i danych multimedialnych (przy użyciu ext4) w jednym systemie plików.
Stare właściwości FAT32 są emulowane przy użyciu warstwy FUSE, aby były zgodne z istniejącymi aplikacjami. Ponadto: / data / i / sdcard na urządzeniach Google zaczynających się od Nexusa 7 używają tylko jednej partycji (/ data / media reprezentuje zawartość „sdcard” i jest udostępniana aplikacjom przez warstwę FUSE).
Oto implementacja sterownika FUSE przez CyanogenMod, jeśli chcesz zobaczyć źródło. Wygląda na to, że zaimplementowano ustawienie atrybutów znaczników czasu.
EDYCJA: Działa tylko z rootem.
Dokładny powód: wszystkie pliki są własnością root.sdcard_rw (patrz tutaj ).
Program wywołujący bez uid = 0 nie może wywołać syscall utimensat () , nie działa już w warstwie VFS (EPERM) dla znaczników czasu innych niż bieżący:
źródło
Ostatnio natknąłem się na ten problem na Nexusie 5 i bez powodzenia wypróbowałem większość wymienionych tutaj rozwiązań. W moim przypadku wydaje się, że jest to spowodowane rozpoznanym błędem w standardowym systemie Android ( źródło ).
Moje rozwiązanie było następujące - korzystałem z systemu Windows 8.1, ale bez powodu nie działałoby to w systemie OSX / Linux (root jest wymagany na urządzeniu).
Na komputerze utwórz archiwum .tar.gz wszystkich plików, które chcesz przenieść.
Prześlij archiwum do urządzenia za pomocą FTP, upewniając się, że użyto polecenia MFMT.
Na urządzeniu rozpakuj archiwum w powłoce jako root.
su
polecenia Może być konieczne udzielenie dostępu, jeśli pojawi się SuperSU.cd /sdcard/
tar -xvf ARCHIVE_NAME_HERE.tar.gz
DCIM/Camera
katalogu, zdjęcia w ogóle nie pojawią się w aplikacji galerii zdjęć. Jeśli tak się stanie, sugeruję wyodrębnienie pliku do innego katalogu, a następnie przeniesienie (nie skopiowanie) plików do katalogu aparatu. Podejrzewam, że jest to spowodowane problemem z uprawnieniami. Możesz użyć terminala lub dowolnego menedżera plików, aby przenieść pliki.Dzięki temu wszystkie atrybuty „daty modyfikacji” plików pozostały nienaruszone, a wszystkie zdjęcia pozostały w prawidłowej kolejności, gdy były wyświetlane w aplikacji galerii.
źródło
Sprawdź dane EXIF i sprawdź, czy jest tam znacznik czasu.
Jeśli tak, korekcja daty zdjęcia pozwoli Ci nadpisać znacznik czasu pliku nieszyfrowanego kodem EXIF, przywracając prawidłowe sortowanie.
źródło
To pytanie bardzo mnie niepokoi, gdy spotykam się z urządzeniami, które mają tylko MTP, ale nie tryb pamięci masowej. Mam też obawy związane z tym samym powodem, co Mahn.
Po kilku testach znalazłem rozwiązanie tymczasowe, które może być w stanie zachować znacznik czasu.
Wykorzystuje zewnętrzny czytnik kart sdcard / OTG, a także polecenie cp z opcją -a znacznik czasu będzie mógł zachować. Ale warunkiem jest zrootowanie telefonu.
źródło
Jak wspomniano w innej odpowiedzi, na urządzeniach korzystających z FUSE do emulacji kart SD (takich jak nowoczesne urządzenia Nexus) tylko root może zmieniać znaczniki czasu plików
/sdcard
. Ponieważ rzeczy takie jak MTP i ADB nie działają jako root, nie można zachować znaczników czasu za pomocą tych metod. Jednakże, jeśli urządzenie jest zakorzeniona, to można naprawić timestampów z oddzielnym etapie później.Podczas przywracania pełnej kopii zapasowej
/sdcard
z komputera z systemem Linux na mój tablet użyłem tego polecenia, aby naprawić wszystkie znaczniki czasu po przesłaniu plików za pomocąadb push
:Powinno to zostać uruchomione z katalogu głównego katalogu na komputerze, który odpowiada
/sdcard
na urządzeniu. (Lub, jeśli przesłałeś coś innego niż pełna/sdcard
kopia zapasowa, zmień ścieżkę wtouch
poleceniu pod koniec. Ale powinieneś uruchomić to z dowolnego katalogu na komputerze, który odpowiada katalogowi wtouch
poleceniu.)Działa to tak, że przechodzi przez wszystkie pliki po stronie komputera, pobiera znacznik czasu każdego z nich i uruchamia
touch
polecenie jako root na urządzeniu, aby ustawić tam znacznik czasu odpowiedniego pliku.Zauważ, że uruchomi to osobne
su
polecenie dla każdego pliku. Jeśli masz włączone logowanie w swoim programie głównym (np. SuperSU), możesz chcieć to wyłączyć, aby uniknąć tworzenia dużej liczby wpisów w dzienniku. A jeśli masz skonfigurowane urządzenie tak, aby monitowało o potwierdzenie przy każdymsu
żądaniu, prawdopodobnie zechcesz to zmienić tymczasowo. (Może istnieć możliwość stworzenia wariantu, który potokuje strumieńtouch
poleceń do pojedynczej powłoki root na urządzeniu, ale prosty sposób na zrobienie tego nie zadziałał, gdy go wypróbowałem i nie chciałem wydawać dużo czasu.)Użyłem tego z powodzeniem na Nexusie 10 z Androidem 5.1.
źródło
Mam dokładnie ten sam problem. Wygląda na to, że jest zablokowany przez bezpiecznik na Nexusie 4, który obsługuje Stock JellyBean 4.2.1.
Informacje te zostały pobrane za pośrednictwem sesji powłoki adb; Przypuszczam, że bezpiecznik będzie dostępny dla wszystkich kont na poziomie aplikacji.
TL; DR Z wyglądu nie da się tego zrobić bez zrootowania telefonu.
źródło
[old_pictures]$ for f in $(ls -1 * | sort -t _ -k 2); do adb push $f /storage/sdcard0/DCIM/Past/; sleep 3; done;
jeśli wybierzesz tę drogę, najpierw prześlij test, aby upewnić się, że jesteś zadowolony. Wyłącz także Autoprzesyłanie Google+, gdy jesteś przy nim, aby nie uzyskać „podwójnego przesyłania”.Jeśli używasz aplikacji Google Photo i chcesz, aby plik był wyświetlany w odpowiedniej kolejności, istnieje rozwiązanie.
Tło problemu
To jest błąd Androida. Nie zezwala użytkownikom innym niż root na zmianę daty modyfikacji plików ( https://code.google.com/p/android/issues/detail?id=18624 od czasu wprowadzenia wielu użytkowników / piaskownicy z systemem plików FUSE) . I nie zachowuje znacznika czasu podczas kopiowania plików za pomocą protokołu MTP ( https://code.google.com/p/android/issues/detail?id=92635 ).
Obejście dla użytkowników Google Photo
Zdjęcia są zamawiane przy użyciu informacji EXIF, jeśli są dostępne, dzięki czemu można po prostu użyć dowolnego sposobu ustawiania dla nich odpowiednich danych EXIF. Każda kamera powinna ustawić to dla Ciebie automatycznie, po prostu upewnij się, że data i godzina są w nich prawidłowe.
W przypadku filmów lub jeśli nie chcesz ustawiać danych EXIF, po prostu wejdź na https://photos.google.com/ i prześlij stamtąd swoje wideo / zdjęcia. Zachowuje znacznik czasu modyfikacji, który masz na komputerze, a ponieważ jest on zsynchronizowany z urządzeniem, zobaczysz zdjęcie w aplikacji, poprawnie posortowane, jak tylko skończysz przesyłanie.
źródło
Użyj narzędzia synchronizacji, takiego jak np. FolderSync , które powinno odpowiednio zadbać o znaczniki czasu. Narzędzia do synchronizacji powinny specjalizować się w obsłudze wszystkich aspektów naprawdę utrzymywania kopii synchronicznych - w tym oczywiście znaczników czasu.
źródło
ZACHOWANA DATA ZMODYFIKOWANA NA NEXUSIE URZĄDZENIA --- NIE POTRZEBUJESZ ROOT ---
Twoje zdrowie.. :)
zachowuje datę modyfikacji. Nie wiem, jak to robi Droid Explorer. ale to po prostu działa.
upewnij się, że debugowanie USB jest zaznaczone przed użyciem Droid Explorer.
um ... jest jednak jedno ograniczenie .. Droid Explorer może przesyłać tylko pliki, a nie foldery.
źródło
Użyj PTP zamiast MTP podczas podłączania telefonu przez USB. Działa dla mnie, używam Samsunga Note 4 podłączonego do maszyny Ubuntu 14.04. Jednak połączenie jako PTP pozwala tylko na kopiowanie zdjęć / obrazów. Wszystkie inne metody kopiowania plików (bluetooth, WIFI, menedżer plików) na dysk zewnętrzny zmienią datę.
źródło
Moje rozwiązanie, aby zachować datę modyfikacji podczas kopiowania pliku na urządzeniu z Androidem za pomocą MTP:
Testowane na kolbie LG G2 (bez korzenia), Andorid 4.4.2 i HTC one M7, Andorid 4.4.2:
O ile widzę, daty modyfikacji są w pełni zachowane!
źródło
Rozwiązanie do tworzenia kopii zapasowych za pomocą „SanDisk Memory Zone”, aby zachować datę i datę. kopiowanie / przenoszenie plików z urządzenia z Androidem na zewnętrzną kartę SD - Testowane na Samsung Note 2, Note 3 i Mini SIII
Po prostu wykonaj kopię zapasową plików ze zdjęciami na karcie SD i przenieś kartę na inne urządzenie z Androidem, PC, Apple lub inne urządzenie - jeśli nie jest używane do tworzenia kopii zapasowych plików ze zdjęciami, postępuj zgodnie z 8 prostymi instrukcjami „
źródło
Szybkie i łatwe rozwiązanie: wystarczy użyć komputera PC lub Mac, aby skopiować pliki ze starej karty SD (lub PC) na nową kartę SD. Użyj komputera PC / Mac z czytnikiem kart SD / SD (istnieją konwertery USB-SD-SD), które postrzegają kartę jako pamięć USB FAT32. Po zakończeniu kopiowania włóż ponownie nową kartę do telefonu i uruchom ponownie.
źródło
Przeprowadziłem się do Moto X 2014 i miałem ten problem.
Próbowałem też wielu rzeczy, wydawało się, że rozwiązaniem jest „Motorola Migrate” do synchronizacji z dwoma telefonami Wi-Fi (stary backflip z piernika). W galerii sytuacja była dobra (nawet w szczegółach), ale co dziwne w menedżerze plików data została zmieniona, a po kilku godzinach nawet galeria pokazała datę transferu.
Obejście problemu, jeśli plików nie jest zbyt wiele, można ręcznie skopiować jeden po drugim, zmieniając za każdym razem datę i godzinę w telefonie.
źródło
Mam Nexusa 4 i miałem ten sam problem ze znacznikiem czasu i zdjęciami (faktycznie wszystkie pliki).
Oto wiersze poleceń (z zrootowanym telefonem), których użyłem dzięki postowi na Ubuntu:
(w Ubuntu, jeśli nie jest zainstalowany zestaw Android SDK)
Aby przejść do mojego folderu „kopia zapasowa”, który zawiera folder „savandroid”
Wszystkie pliki i foldery, które są w „saveandroid” są wysyłane na kartę SD działały ładnie z poprawnymi znacznikami czasu!
Uwaga : na Cyanogenmod musiałem wybrać root dla „aplikacji i adb” w menu programistów. Domyślnie jest ustawiony tylko na aplikacje.
źródło
Dodam moje rozwiązanie, które działało na Ubuntu
Najpierw zainstaluj simple-mtpfs i zainstaluj bezpiecznik
Teraz masz foldery telefonu zamontowane w tym katalogu, możesz użyć
rsync -t
lub,cp -p
aby skopiować zdjęcia, a utworzone / zmodyfikowane / dostępne czasy nie zostaną zmienione.Pracuj dla mnie :)
źródło
Aby skopiować pliki z Androida na komputer, zachowując znaczniki czasu:
Aby przywrócić je z powrotem do Androida:
Działa to poprzez utworzenie pliku tar w urządzeniu, który jest natychmiast wyodrębniany na twoim hoście i viceversa.
„V” pozwala zobaczyć nazwę kopiowanego pliku.
Oczywiście zakłada to, że masz zainstalowane „adb”, że telefon ma włączone debugowanie USB i że już sprawdziłeś poprawność certyfikatu debugowania.
źródło
Wypróbuj aplikację „Bluetooth File Transfer”, która zachowuje zmodyfikowaną datę z przeniesieniem. I wierzę również w kopiowanie, ale najpierw spróbuj użyć jednego pliku / folderu. Może także eksplorować inne urządzenie za pośrednictwem Bluebooth.
źródło
Użyj SyncMe Wireless i udziału sieciowego. Znaczniki czasu są zachowywane, a synchronizacja jest szybka. Mogłem wykonać kopię zapasową bez komputera na karcie SD w Kingston MobileLite Wireless w 20 minut, natychmiast zsynchronizować ponownie.
źródło