先森最近遇到個問題,從電腦通過愛思助手導入了一些照片,但是照片妥妥的都是排在相機膠卷的末尾,也就是最新照片,這樣讓先森的強迫癥犯了,很不舒服。
先森的系統是IOS 12,雖然打開照片程序,最左側是照片流,導入的照片在這里是按時間排序的,但是先森還是習慣于在相簿中的相機膠卷里看照片。而且,很重要的一點是,通過微信或QQ發送照片的時候,顯示在最前面的也是相機膠卷中最新的照片。先森導入了5000多張照片,如果想發送導入之前的照片,即使是昨天拍的,找起來也比較困難。
還有一個問題,先森的圖片有些是Live Photo(實況),如果直接使用愛思助手的文件夾導入圖片的話,圖片和視頻是分開的。如果按Live Photo導入的話,剩余的非實況照片又難以區別,畢竟照片太多了。
先森想要的,是在相機膠卷里最新導入的照片也按照時間來排序。

愛思助手導入照片
起因
先森之所以會導入5000多張照片,這得多虧先森的騷操作。
先森之前手殘把手機越獄了,體驗了一波不完美越獄,BUG連連新鮮感過了也就沒什么感覺了,先森還發過一篇博文來記錄BUG,IOS 10系統不完美越獄 刪除doubleH3lix后cydia閃退。后來先森迷上了刺激戰場,然后還買了吃雞神器,就是在手機上架兩個按鈕。這個吃雞什么用習慣之后還好,但是有個硬傷:打游戲的時候有推送消息的時候,一按開槍就點到推送了,先森不知道多少次因此送人頭。而后關注到IOS12有一個勿擾模式,聽名字好像可以免推送的打擾啊,所以在IOS 12發行之后先森就想著體驗了。
但是先森的手機是越獄過的,據先森了解,越獄之后升級系統會出問題,所以先森就很聰明的把手機備份后恢復出廠設置了,然后再升級。結果在恢復備份的時候出問題了,itunes提示“備份已損壞,無法恢復備份”!
Emmm...
重點是,先森想全數據備份,做的是加密備份!問了下愛思助手的客服,加密備份他們也沒辦法把照片啥的恢復出來。。。生活還得繼續,先森使用icloud恢復部分的數據。icloud只有免費5G的配額,早早的就被先森撐滿了,所以數據都是比較久遠的了。
后來,先森發現了一款號稱可以替代iTunes的軟件iMazing(軟件是收費的,先森使用的當然是。。。),這個軟件可以管理備份數據,加密的也可以。可發現這款軟件的時候已經距離上次事故有一段時間了,先森完美的把備份密碼忘了,嗯,忘了。

輸入密碼進行管理
當然,發現iMazing的時候先森并沒有想拯救之前的備份,而是經過之前的事件先森明白了備份的重要性,進而這款軟件的WIFI備份吸引了我。據說是連上同網絡的WIFI就可以自動進行備份,然而實測,想通過WiFi備份并不容易。
再過了一段時間,也就是前兩天,先森竟然在無意間試出了備份加密的密碼,感動的先森連說了三次“臥槽”。
整個手機的5000多張照片就這樣導出到了我的電腦,然后再導入手機,就出現本文的煩惱了。經過不斷的嘗試與一次恢復手機后,先森終于還是找到了解決方法。
解決
操作前最好還是給手機來次備份。有上文的慘劇為參照,備份的時候最好備份兩次,一次不加密的,一次加密的。加密備份是為了能夠最大程度的還原,不加密備份是為了數據恢復更容易。
方法貌似是臺灣同胞那邊首發的,以下為先森實際操作之后整理的步驟。
1、關閉 iOS 相機、相冊后臺程序,保持手機常亮:設置 - 顯示與亮度 - 自動鎖定,時間修改為「永不」;
2、手機連接電腦,電腦上裝好助手軟件,先森用的是愛思助手;
3、打開助手軟件,進入「文件管理」,找到「/DCIM」文件夾,進入;

進入DCIM目錄
4、導入照片。
導入照片的時候,最好選擇一個最新的文件夾,最好是空的。如果沒有的話,可以使用愛思助手-照片-導入照片先傳一張照片,這時候應該會新建一個文件夾,里面也只有這一張照片;或者可以試試自己新建一個文件夾,編號加1試試。
打開空文件夾后,直接把電腦上的圖片全拖進來。先森不太清楚IOS的新增文件夾的規則,怕單個文件夾內圖片太多會出問題,所以先森是每個空文件夾內導入大概1000張的照片。圖片不需要重命名,只要不和手機原本的照片在同一個文件夾,就不用管圖片名稱相同的問題。
5、備份photos.sqlite。
照片導入完成之后,再回到文件系統的根目錄,進入「/PhotoData」文件夾,里面有個photos.sqlite文件。將這個文件重命名,后面加個bak什么都行。為了保險,還可以將這個文件拖到電腦上保存一份。
然后手機斷開電腦,重啟。重啟后打開照片應用,圖片會重新開始刷新出現。而photos.sqlite文件也會重新出現一個。(注:photos.sqlite文件是照片數據庫存儲文件)
先森之前將這個文件直接刪除了,重啟后發現照片丟失了一部分,進入DCIM發現圖片不見了。。。最后只有恢復備份。如果photos.sqlite文件有備份的話,可能直接恢復就OK了。
6、電腦下載安裝DB Browser for SQLite,安裝后,將手機「/PhotoData」文件夾下新生成的photos.sqlite文件導出到電腦,拖到軟件框中打開,切換至「執行SQL」Tab下,粘貼以下更新語句:
UPDATE zgenericasset SET zaddeddate = zdatecreated WHERE zaddeddate>0 AND zdirectory LIKE 'DCIM%'
點擊 ▶? 按鈕,等待一毫秒,看到底部框中顯示「執行成功」后,點擊頂部「寫入更改」;

執行SQL
點擊頂部的「文件」,再點擊「關閉數據庫」,或者按快捷鍵Ctrl+W;
7、將手機「/PhotoData」文件夾下的photos.sqlite再重命名做個備份,比如photos.sqlite.bak2;然后將軟件修改后的photos.sqlite導入到「/PhotoData」中;
8、將手機「/PhotoData」文件夾下的「Photos.sqlite-shm」與「Photos.sqlite-wal」都重命名做備份。PS:此時手機上的照片APP應該是關閉狀態。

先森的備份戰況
8、打開 iOS 的照片 App 相機膠卷,會發現照片已經按照時間來排序了,并且Live Photo也不是照片與視頻分離的。
總結
通過先森慘痛的經歷,我們應當記住的是備份的重要性,而備份更重要的是有效備份。
關于iPhone的備份方案,如果夠勤快,可以過一段時間通過電腦備份一次,iTunes或者其他工具;如果有錢,可以購買icloud的套餐,50G/6元/月,200G/21元/月,2T/68元/月;如果沒那么土豪,可以和先森一樣,icloud用來備份除照片以外的數據,畢竟這些數據沒有多大,5G完全夠用了,然后照片,先森是用的OneDrive。OneDrive個人賬號空間是5G,先森通過完成邀請任務將空間擴容到15G(邀請1人增加0.5G,最多20人,可以通過某寶代完成),15G來存照片已經完全夠用了。當然,先森還有教育郵箱的,1T-5T的空間,只是私密性和穩定性沒那么好,最好還是不要存重要數據。
當然,肯定有更好的方案,只是先森就只知道這么多了。
轉載請注明出處來自http://www.cnidcc.cn/photos_sqlite.html

川公網安備 51011202000104號
這么6的嗎
??滴??滴
厲害厲害 感謝分享
文章非常好超喜歡
萬分感謝!!我已經完全解決了!但是作為一個強迫癥,我還有個問題,就是用愛思助手導入jpg格式的照片,名稱會亂,hashphotos能看得到照片的原始文件名和照片名稱,原始文件名是一對字符,而照片名稱是IMG_XXXX之類的名稱,如果用win上的iCloud同步的話,則名稱是就是真實的文件名,但是太麻煩了,請問這個樓主有好的方法解決嗎?多謝
現在還可以嗎?試了一下好像順序沒有變化
@小白: 系統是IOS 12版本么?我的手機系統是一直沒有升級的,不太清楚新版本是否可行
@狂族晨曦: 最新系統16了
@小白: IOS16數據庫改格式了。改到了ZASSET表下的ZADDEDATE和ZDATECREATED了。