Giter VIP home page Giter VIP logo

itunes-backup-explorer's People

Contributors

dependabot[bot] avatar maxihuhe04 avatar rikysonic avatar tetrahedrl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

itunes-backup-explorer's Issues

java.lang.UnsatisfiedLinkError: Can't load library: libprism_es2.dylib

When I try to load the program via java -jar itunes-backup-explorer-1.2.jar, I get the following error on a M1 Pro MacBook Pro with macOS Ventura 13.0:

java.lang.UnsatisfiedLinkError: Can't load library: /Users/username/.openjfx/cache/18+12/libprism_es2.dylib
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2408)
	at java.base/java.lang.Runtime.load0(Runtime.java:785)
	at java.base/java.lang.System.load(System.java:2011)
	at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:217)
	at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:197)
	at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:138)
	at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:54)
	at com.sun.prism.es2.ES2Pipeline.lambda$static$0(ES2Pipeline.java:63)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
	at com.sun.prism.es2.ES2Pipeline.<clinit>(ES2Pipeline.java:52)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:390)
	at java.base/java.lang.Class.forName(Class.java:381)
	at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
	at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:92)
	at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
	at java.base/java.lang.Thread.run(Thread.java:1589)
Loading library prism_sw from resource failed: java.lang.UnsatisfiedLinkError: Can't load library: /Users/username/.openjfx/cache/18+12/libprism_sw.dylib
java.lang.UnsatisfiedLinkError: Can't load library: /Users/username/.openjfx/cache/18+12/libprism_sw.dylib
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2408)
	at java.base/java.lang.Runtime.load0(Runtime.java:785)
	at java.base/java.lang.System.load(System.java:2011)
	at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:217)
	at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:197)
	at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:138)
	at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:54)
	at com.sun.prism.sw.SWPipeline.lambda$static$0(SWPipeline.java:43)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
	at com.sun.prism.sw.SWPipeline.<clinit>(SWPipeline.java:42)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:390)
	at java.base/java.lang.Class.forName(Class.java:381)
	at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
	at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:92)
	at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
	at java.base/java.lang.Thread.run(Thread.java:1589)
Graphics Device initialization failed for :  es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
	at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:283)
	at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:253)
	at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:266)
	at javafx.scene.image.Image.loadImage(Image.java:1081)
	at javafx.scene.image.Image.initialize(Image.java:816)
	at javafx.scene.image.Image.<init>(Image.java:706)
	at me.maxih.itunes_backup_explorer.ITunesBackupExplorer.getIcon(ITunesBackupExplorer.java:43)
	at me.maxih.itunes_backup_explorer.ITunesBackupExplorer.<clinit>(ITunesBackupExplorer.java:46)
	at me.maxih.itunes_backup_explorer.ITunesBackupExplorerLauncher.main(ITunesBackupExplorerLauncher.java:6)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
	at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:95)
	at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
	at java.base/java.lang.Thread.run(Thread.java:1589)
Exception in thread "main" java.lang.ExceptionInInitializerError
	at me.maxih.itunes_backup_explorer.ITunesBackupExplorerLauncher.main(ITunesBackupExplorerLauncher.java:6)
Caused by: java.lang.RuntimeException: No toolkit found
	at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:278)
	at javafx.scene.image.Image.loadImage(Image.java:1081)
	at javafx.scene.image.Image.initialize(Image.java:816)
	at javafx.scene.image.Image.<init>(Image.java:706)
	at me.maxih.itunes_backup_explorer.ITunesBackupExplorer.getIcon(ITunesBackupExplorer.java:43)
	at me.maxih.itunes_backup_explorer.ITunesBackupExplorer.<clinit>(ITunesBackupExplorer.java:46)
	... 1 more```

Similar to what is described here, the program seems to download the wrong architecture for JavaFX: openjfx/javafx-gradle-plugin#112

Skip button not shown in UI

Hello, I can see in FilesTabController.java that there is there skipButtonType in exportFiles, but when I export same file twice the FileAlreadyExistsException raise the Alert with correct message but only one "OK" button.
I'm running itunes-backup-explorer-1.4.jar in windows 10 pro, using java:
java 21.0.1 2023-10-17 LTS
Java(TM) SE Runtime Environment (build 21.0.1+12-LTS-29)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.1+12-LTS-29, mixed mode, sharing)
image

Can't open backup

I get an error that says me.maxih.itunes_backup_explorer.api.BackupReadException: java.util.NoSuchElementException: No value present

Cannot run app on macOS 15

OUTPUT: Jun 20, 2024 10:18:36 AM com.sun.javafx.application.PlatformImpl startup
WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @6d6a0534'
Jun 20, 2024 10:18:41 AM com.sun.glass.ui.mac.MacApplication lambda$waitForReactivation$6
WARNING: Timeout while waiting for app reactivation
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '0x0 is an invalid NSTrackingRectTag. Common possible reasons for this are: 1. already removed this trackingRectTag, 2. Truncated the NSTrackingRectTag to 32bit at some point.'
*** First throw call stack:
(
0 CoreFoundation 0x00007ff816a30946 __exceptionPreprocess + 242
1 libobjc.A.dylib 0x00007ff8165180f0 objc_exception_throw + 62
2 Foundation 0x00007ff817a97599 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 362
3 AppKit 0x00007ff81ab7b51c -[_NSTrackingAreaAKViewHelper removeTrackingRect:] + 199
4 libglass.dylib 0x000000010f7ca449 Java_com_sun_glass_ui_mac_MacApplication__1getMacKey + 3593
5 libglass.dylib 0x000000010f7cf038 Java_com_sun_glass_ui_mac_MacApplication__1getMacKey + 23032
6 AppKit 0x00007ff81a2f0233 -[NSView setFrame:] + 347
7 libglass.dylib 0x000000010f7cf095 Java_com_sun_glass_ui_mac_MacApplication__1getMacKey + 23125
8 AppKit 0x00007ff81a30032a -[NSView resizeWithOldSuperviewSize:] + 816
9 AppKit 0x00007ff81a2ffbc2 -[NSView resizeSubviewsWithOldSize:] + 499
10 AppKit 0x00007ff81a2dfea7 -[NSView setFrameSize:] + 1198
11 AppKit 0x00007ff81a2f0233 -[NSView setFrame:] + 347
12 AppKit 0x00007ff81a30032a -[NSView resizeWithOldSuperviewSize:] + 816
13 AppKit 0x00007ff81a2ffbc2 -[NSView resizeSubviewsWithOldSize:] + 499
14 AppKit 0x00007ff81a2dfea7 -[NSView setFrameSize:] + 1198
15 AppKit 0x00007ff81a2fe63b -[NSThemeFrame setFrameSize:] + 466
16 AppKit 0x00007ff81a2fdd3f -[NSWindow _oldPlaceWindow:fromServer:] + 822
17 AppKit 0x00007ff81a2fc68c -[NSWindow _setFrameCommon:display:fromServer:] + 1859
18 libglass.dylib 0x000000010f7c227f getImage + 6799
19 libglass.dylib 0x000000010f7c1cec getImage + 5372
20 libglass.dylib 0x000000010f7c1f59 getImage + 5993
21 libglass.dylib 0x000000010f7d92ce Java_com_sun_glass_ui_mac_MacWindow__1setBounds2 + 446
22 ??? 0x0000000120630b3c 0x0 + 4838329148
23 ??? 0x000000012062c411 0x0 + 4838310929
24 ??? 0x000000012062c411 0x0 + 4838310929
25 ??? 0x000000012062c411 0x0 + 4838310929
26 ??? 0x000000012062c917 0x0 + 4838312215
)
libc++abi: terminating due to uncaught exception of type NSException
[1] 7602 abort java -jar itunes-backup-explorer-1.4.jar

Can't load library libprism_es2.dylib

Thank you for this amazing project!

When I am trying to launch the program with the configuration below, I get a few errors.

Using the latest iTunes Backup Explorer v1.4

My configuration

openjdk 19.0.2 2023-01-17
OpenJDK Runtime Environment Homebrew (build 19.0.2)
OpenJDK 64-Bit Server VM Homebrew (build 19.0.2, mixed mode, sharing)
Chip: Apple M1 Pro
Memory: 16 GB
macOS: 13.5.2 (22G91)

The errors

java -jar itunes-backup-explorer-1.4.jar 
Loading library prism_es2 from resource failed: java.lang.UnsatisfiedLinkError: Can't load library: /Users/bech/.openjfx/cache/18+12/libprism_es2.dylib
java.lang.UnsatisfiedLinkError: Can't load library: /Users/bech/.openjfx/cache/18+12/libprism_es2.dylib
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2408)
	at java.base/java.lang.Runtime.load0(Runtime.java:785)
	at java.base/java.lang.System.load(System.java:2011)
	at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:217)
	at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:197)
	at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:138)
	at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:54)
	at com.sun.prism.es2.ES2Pipeline.lambda$static$0(ES2Pipeline.java:63)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
	at com.sun.prism.es2.ES2Pipeline.<clinit>(ES2Pipeline.java:52)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:390)
	at java.base/java.lang.Class.forName(Class.java:381)
	at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
	at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:92)
	at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
	at java.base/java.lang.Thread.run(Thread.java:1589)
Loading library prism_sw from resource failed: java.lang.UnsatisfiedLinkError: Can't load library: /Users/bech/.openjfx/cache/18+12/libprism_sw.dylib
java.lang.UnsatisfiedLinkError: Can't load library: /Users/bech/.openjfx/cache/18+12/libprism_sw.dylib
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2408)
	at java.base/java.lang.Runtime.load0(Runtime.java:785)
	at java.base/java.lang.System.load(System.java:2011)
	at com.sun.glass.utils.NativeLibLoader.installLibraryFromResource(NativeLibLoader.java:217)
	at com.sun.glass.utils.NativeLibLoader.loadLibraryFromResource(NativeLibLoader.java:197)
	at com.sun.glass.utils.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:138)
	at com.sun.glass.utils.NativeLibLoader.loadLibrary(NativeLibLoader.java:54)
	at com.sun.prism.sw.SWPipeline.lambda$static$0(SWPipeline.java:43)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
	at com.sun.prism.sw.SWPipeline.<clinit>(SWPipeline.java:42)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:390)
	at java.base/java.lang.Class.forName(Class.java:381)
	at com.sun.prism.GraphicsPipeline.createPipeline(GraphicsPipeline.java:218)
	at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:92)
	at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
	at java.base/java.lang.Thread.run(Thread.java:1589)
Graphics Device initialization failed for :  es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
	at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:283)
	at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:253)
	at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:266)
	at javafx.scene.image.Image.loadImage(Image.java:1081)
	at javafx.scene.image.Image.initialize(Image.java:816)
	at javafx.scene.image.Image.<init>(Image.java:706)
	at me.maxih.itunes_backup_explorer.ITunesBackupExplorer.getIcon(ITunesBackupExplorer.java:43)
	at me.maxih.itunes_backup_explorer.ITunesBackupExplorer.<clinit>(ITunesBackupExplorer.java:46)
	at me.maxih.itunes_backup_explorer.ITunesBackupExplorerLauncher.main(ITunesBackupExplorerLauncher.java:6)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
	at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:95)
	at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
	at java.base/java.lang.Thread.run(Thread.java:1589)
Exception in thread "main" java.lang.ExceptionInInitializerError
	at me.maxih.itunes_backup_explorer.ITunesBackupExplorerLauncher.main(ITunesBackupExplorerLauncher.java:6)
Caused by: java.lang.RuntimeException: No toolkit found
	at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:278)
	at javafx.scene.image.Image.loadImage(Image.java:1081)
	at javafx.scene.image.Image.initialize(Image.java:816)
	at javafx.scene.image.Image.<init>(Image.java:706)
	at me.maxih.itunes_backup_explorer.ITunesBackupExplorer.getIcon(ITunesBackupExplorer.java:43)
	at me.maxih.itunes_backup_explorer.ITunesBackupExplorer.<clinit>(ITunesBackupExplorer.java:46)
	... 1 more

MacOS compatibility changes

Hi,

As someone that's not comfortable with Java, after a bit of effort, I managed to run iTunes Backup Explorer on OS X.

While I won't grab the time to put effort into a coherent PR, here's some things (a mixture of instructions for Mac OS users with some small patches):

  1. I had Java 8 installed; I believe it was some sort of "system" Java. Not sure if it was the old Apple-provided build. I needed to bump Java to something newer. As I have Homebrew installed, I used:

    brew install java
    

    This installed OpenJDK 17.

    Per instructions printed by Homebrew, I exposed this to Apple's wrappers like so:

    sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
    

    I'm not sure if I had to export JAVA_HOME=$(/usr/libexec/java_home -v17).

    I had Maven installed from before. It was a Homebrew version (brew install maven).

  2. At this point I could build iTunes-Backup-Explorer using mvn compile.

    java -jar target/itunes-backup-explorer-1.0-SNAPSHOT.jar did not work, but mvn javafx:run did.

  3. JavaFX 13 has bugs on MacOS Catalina+. https://bugs.openjdk.java.net/browse/JDK-8234916

    image

    I've switched javafx-controls and javafx-fxml to version 15 in pom.xml

    This fixes the UI and now it renders correctly.

  4. I had to run this from Terminal.app or iTerm.app which has been first allowlisted in System Preferences's Security & Privacy pane for "Full Disk Access" -- otherwise I could not ls ~/Library/Application Support/MobileSync/Backup, and neither could it be accessed by iTunes-Backup-Explorer.

    By allowlisting the terminal app, java process inherits these permissions.

    There is likely an API to request full disk access, but I have not done serious Cocoa work in years, and definitely not in Java.

  5. Unfortunately, the code also hardcodes the path to MobileSync/Backup to System.getenv("APPDATA"), "Apple Computer\\MobileSync\\Backup".

    This is easy to resolve with System.getenv("HOME"), "Library/Application Support/MobileSync/Backup".

    Even though that's technically incorrect: one should use +[NSFileManager URLForDirectory:inDomains:] to find the paths to NSApplicationSupportDirectory in NSUserDomainMask or NSAllDomainsMask -- accepting there can be more than one such directory. Now, how to do that in Java? I don't really know.

    Of course, this is very much a Mac-specific code change, meaning it should be isolated from other supported OSes, so in lieu of spending time figuring that out, I'm just writing this issue and going back to recovering my Safari tabs :-)

How to run?

Sorry for my lack of knowledge.
For someone who is not familiar with Java, how to actually run the GUI? It is currently not mentioned in README.md

I am running on Ubuntu 20.04

Java Exception

Hi, I'm a bit of a noob. I'm trying to run the jar file on Windows and it's coming up with Java Exception error. I'm not sure what to do, my Java is updated and I can't run it through command prompt either. Thanks!

Add specific error message for folders with unpermitted name or add a workaround to copy files in it

#31 (comment)

In contrast to iOS, Windows has some limitations on how files and folders can be named. You can read more about it here: https://stackoverflow.com/a/36227372/8868841. Basically, folders are not allowed to be called AUX, or AUx in your case. I can't do much about this. An option would be to export it to a folder with a slightly changed name, but I should definitely add a better error message. I won't have time to do this very soon as I'm busy with studying. But it would be very nice if you could open a new issue for this that I don't forget about it.

Can't execute on MacOS Ventura on M1 Pro

Hello,
I'm uncertain if this problem is on my side or wherever, but when I'm trying to open the .jar nothing happens when I just click on it (yes I've done all steps and also got Java 20 installed) if I try to execute from the terminal though I get the error
(mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64'))
after googling it I only found people having this problem in python but this is java, ChatGPT said it's compiled for the wrong architecture, but I thought java is universal and also you can't trust ChatGPT, then I tried running terminal with Rosetta and also the Java Launcher but nothing worked. Looking forward to you suggestions and help.
Thanks!

Ability to bulk-delete files and folders?

Due to a memory problem I'm facing on the phone, I am trying to make a smaller backup from an existing large one.

Will there be an update to rebuild a backup file, import selected domains, or remove some parts of an existing backup to make it smaller?

Thanks.

Unable to insert files

I'm able to look through, delete, and replace files in my AppDomain but I am not able to insert new files. I was hoping to insert an entirely new Library folder into one AppDomain, but the insert statement is grayed out no matter where I right click. Edit is also grayed out.
This is not working on both an iPhone 5 and an iPhone 13. I created the backups using the most recent version of iTunes, and the Version on both backups says 10.0. I'm running Windows 10. Please let me know if you need anymore information.

How to open encrypted backup?

Hi! I managed to get the program running but I don't know how to input the password for the encrypted backup. Am I supposed to pass any parameter when executing the file or something?

Thank you for your help :)

Large exports fail after a time with no error

Hi, trying to export my SMS attachments (on windows).

I select MediaDomain/Library/SMS/Attachments, it works for a while trying to export, then the progress bar unceremoniously closes and the tasbar icon blinks orange, no error box. A significant amount of it does get exported, but much of it doesn't. All of the folders one step below attachments get created, but some of these are left empty.

I suspect it's having trouble with specific files, because...

  • If I try to export in the same location and skip already exported, it stops immediately with no further progress (hits file it has trouble with immediately)
  • If I deselect the subfolders where it's already tried to create the subfolders beneath, it will continue further and get more of the export complete, but then fails again later.

Is there any kind of logging I can turn on to find the specific files it's failing on? Thanks.

A few questions regarding the development of this repo

Hey first of all tysm for making this!

I have a few questions regarding your project. I want to extend its functionality to be able delete or compress some junk data of apps like WhatsApp. At least on Android you can safely remove some files that are otherwise not easily deletable via the app natively but on iOS (since there is no file access) this is not possible which is why I want to attempt doing just that via backups.

  • During development, did you use any kind of profiler? I'm asking because as soon as I open some folders in the WhatsApp container it will start to freeze with the CPU usage going close to 400% for half an hour until I close the process. I'd be happy to investigate but I'd like to know whether that's something you've already done before

  • Commit 985906e that adds the possibility to replace files also comes with the reEncryptDatabase() function call. Does that work in a way that I can straight up "edit" any file in a backup, then play back that backup (that then contains the edited file) onto the device, essentially editing the otherwise closed-down iOS file system?

  • As I have previously mentioned, I'd like to be able to manage some common storage-hungry data. That would be something along the lines of "we don't need full resolution images in there, let's compress them" for example - would you be willing to merge such additions or should I run it as an independent project, only merging your upstream changes each time? I'd be fine with both ways, I'd just like to know your preference on that.

Can't open the backup file

I'm trying to open the file on Mac OS 11.7 where my backups are stored at ~/Library/Application Support/MobileSync

I changed the path under preferences, but I still can't open the backup. When double clicking on the specific backup folder it opens the folder and lists the files in it. The only files I can open from now are manifest.plist and Status.plist. See below.
I expect to double click on the folder and load it in the application, not?

Backups are older maybe this might be a problem?

image

image

Unable to access SMS db (malformed)

Hi,

Awesome work on this project- thank you.

When I try to open /HomeDomain/Library/SMS/sms.db, it tells me "database disk image is malformed".

So I tried:
sqlite3 sms.db > .tables > ERROR: database disk image is malformed

I tried to take a dump to remove any issues- sqlite3 sms.db ".dump" | sqlite3 new.db but kept getting no such table errors such as
main.chat_handle_join.

Any ideas on how to fix this issue?

Backup corrupt after photo delete

Hi,

I'm having an issue similar to what others have reported. I ran into the "not enough space" issue when trying to restore a backup of an iPhone 13 onto a different, identical iPhone 13. My plan was to use iTunes-Backup-Explorer to delete photos, there by reducing the backup size.

Working on a copy of the original backup, I used version 1.4 to open the backup and navigated to the CameraRollDomain. I expanded Media and selected DCIM, right clicked and selected delete. Once the deletion process completed, I quit the application and proceeded to restore the backup to the iPhone using Finder on my Mac. After the restore process ran for about an hour, it abruptly aborted, gave a message indicating the backup was corrupt, and rebooted the iPhone.

Any ideas how I can solve this problem or how the backup became corrupted? Should I have deleted the folders below DCIM?

Thanks
Mike

java.util.NoSuchElementException: No value present

Hi there. Thank you for this nice tool!
I was trying to run it though, and get the following error.
The program does open but won't let me open my backup file.

D:\test-temp>java -jar itunes-backup-explorer-1.2.jar
ืื•ื’? 12, 2022 4:35:20 ืื—ื”?ืฆ com.sun.javafx.application.PlatformImpl startup
WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @78b0aab6'
me.maxih.itunes_backup_explorer.api.BackupReadException: me.maxih.itunes_backup_explorer.api.BackupReadException: java.util.NoSuchElementException: No value present
        at me.maxih.itunes_backup_explorer.api.ITunesBackup.loadInfo(ITunesBackup.java:93)
        at me.maxih.itunes_backup_explorer.api.ITunesBackup.<init>(ITunesBackup.java:70)
        at me.maxih.itunes_backup_explorer.api.ITunesBackup.lambda$getBackups$0(ITunesBackup.java:31)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
        at me.maxih.itunes_backup_explorer.api.ITunesBackup.getBackups(ITunesBackup.java:41)
        at me.maxih.itunes_backup_explorer.ui.WindowController.loadBackups(WindowController.java:135)
        at me.maxih.itunes_backup_explorer.ui.WindowController.initialize(WindowController.java:76)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:577)
        at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:77)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:577)
        at com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:275)
        at com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:84)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2673)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2516)
        at me.maxih.itunes_backup_explorer.ITunesBackupExplorer.start(ITunesBackupExplorer.java:21)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)
        at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: me.maxih.itunes_backup_explorer.api.BackupReadException: java.util.NoSuchElementException: No value present
        at me.maxih.itunes_backup_explorer.api.BackupInfo.<init>(BackupInfo.java:74)
        at me.maxih.itunes_backup_explorer.api.ITunesBackup.loadInfo(ITunesBackup.java:91)
        ... 32 more
Caused by: java.util.NoSuchElementException: No value present
        at java.base/java.util.Optional.orElseThrow(Optional.java:377)
        at me.maxih.itunes_backup_explorer.api.BackupInfo.<init>(BackupInfo.java:59)
        ... 33 more

My Java version is

java version "18.0.2" 2022-07-19
Java(TM) SE Runtime Environment (build 18.0.2+9-61)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.2+9-61, mixed mode, sharing

Thanks!

Question regarding the privacy policy

First of all I want to say that this is great software and it works exceptionally well and I totally appreciate your investment here!

I wanted to ask about the privacy policy of this tool, I know that of course if it appears on GitHub
it is open source and anyone can see edit and suggest changes to the code
but anyway I don't usually read the code in its entirety and I usually access the privacy policy provided by the developer
I haven't seen mention of this in the Read_me.md file so I wanted to ask if this software/code collects any data?

Thanks!

Unable to access the jar file

Hi, i'm using windows to install this program but i can't. It says that it's unable to run the jar file in the cmd or double-clicking the file. Here the picture. Help me please 'cause i really need to backup my photoes and file on my iPhone. Thank you.
image
image

sms.db malformed

Hi,
I have exported sms.db but am unable to use it with sqlite3:
Error: database disk image is malformed
Any idea what could be the issue and how I could troubleshoot?
Thank you.

Windows10 ERROR Backup Read Exception

Hi, I'm trying to read a backup on an external HD it's not encrypted and I get this error.

me.maxih.itunes_backup_explorer.api.BackupReadException:
java.util.NoSuchElementException: No value present

same error on Manifest.db or .plist

Files are there and if manually add the extension it works fine but I hoped this could save me some time. Can you please help me?

Export selected domains only export one domain

Hi, thanks for this great app!
When I select multiple domains and chose "export selected domains" it only exports one of them, but not all. It should put each domain in a subfolder.

Using itunes-backup-explorer-1.2.jar and java 17.0.5 2022-10-18 LTS.

the backup is corrupted after deleting some files

I made a backup for my iPhone and somehow it was bigger than available storage even after erasing my iPhone so I tried this tool to delete some image folders and and now I get an error that the backup file is corrupt.

Unable to access jar file?

I know nothing about GitHub or coding so I'm sorry if I'm missing something really obvious. I tried renaming the folder and moving it from downloads to desktop but I can't get anything to work. What am I doing wrong?
terminal

`NSInternalInconsistencyException` on macOS 13.6.1

Both on the latest available JAR file and after compiling locally, I get the following exception when running:

2023-12-06 15:30:33.118 java[29424:296213] *** Assertion failure in -[_NSTrackingAreaAKViewHelper removeTrackingRect:], _NSTrackingAreaAKManager.m:1637
2023-12-06 15:30:33.119 java[29424:296213] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '0x0 is an invalid NSTrackingRectTag. Common possible reasons for this are: 1. already removed this trackingRectTag, 2. Truncated the NSTrackingRectTag to 32bit at some point.'
*** First throw call stack:
(
	0   CoreFoundation                      0x00007ff8088cc11a __exceptionPreprocess + 242
	1   libobjc.A.dylib                     0x00007ff8083f20b7 objc_exception_throw + 48
	2   Foundation                          0x00007ff8097a2cd8 -[NSCalendarDate initWithCoder:] + 0
	3   AppKit                              0x00007ff80bfa0fe3 -[_NSTrackingAreaAKViewHelper removeTrackingRect:] + 190
	4   libglass.dylib                      0x000000010d960449 Java_com_sun_glass_ui_mac_MacApplication__1getMacKey + 3593
	5   libglass.dylib                      0x000000010d965038 Java_com_sun_glass_ui_mac_MacApplication__1getMacKey + 23032
	6   AppKit                              0x00007ff80b930091 -[NSView setFrame:] + 347
	7   libglass.dylib                      0x000000010d965095 Java_com_sun_glass_ui_mac_MacApplication__1getMacKey + 23125
	8   AppKit                              0x00007ff80b940ec8 -[NSView resizeWithOldSuperviewSize:] + 694
	9   AppKit                              0x00007ff80b9407fb -[NSView resizeSubviewsWithOldSize:] + 499
	10  AppKit                              0x00007ff80b91ff26 -[NSView setFrameSize:] + 1460
	11  AppKit                              0x00007ff80b930091 -[NSView setFrame:] + 347
	12  AppKit                              0x00007ff80b940ec8 -[NSView resizeWithOldSuperviewSize:] + 694
	13  AppKit                              0x00007ff80b9407fb -[NSView resizeSubviewsWithOldSize:] + 499
	14  AppKit                              0x00007ff80b91ff26 -[NSView setFrameSize:] + 1460
	15  AppKit                              0x00007ff80b93ec03 -[NSThemeFrame setFrameSize:] + 464
	16  AppKit                              0x00007ff80b93e30f -[NSWindow _oldPlaceWindow:fromServer:] + 831
	17  AppKit                              0x00007ff80b93cda2 -[NSWindow _setFrameCommon:display:fromServer:] + 3089
	18  libglass.dylib                      0x000000010d95827f getImage + 6799
	19  libglass.dylib                      0x000000010d957cec getImage + 5372
	20  libglass.dylib                      0x000000010d957f59 getImage + 5993
	21  libglass.dylib                      0x000000010d96f2ce Java_com_sun_glass_ui_mac_MacWindow__1setBounds2 + 446
	22  ???                                 0x000000011edf2980 0x0 + 4812908928
	23  ???                                 0x000000011edee362 0x0 + 4812890978
	24  ???                                 0x000000011edee362 0x0 + 4812890978
	25  ???                                 0x000000011edee362 0x0 + 4812890978
	26  ???                                 0x000000011edee7ee 0x0 + 4812892142
)
libc++abi: terminating due to uncaught exception of type NSException
[ERROR] Command execution failed.
org.apache.commons.exec.ExecuteException: Process exited with an error: 134 (Exit value: 134)
    at org.apache.commons.exec.DefaultExecutor.executeInternal (DefaultExecutor.java:404)
    at org.apache.commons.exec.DefaultExecutor.execute (DefaultExecutor.java:166)
    at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:982)
    at org.codehaus.mojo.exec.ExecMojo.executeCommandLine (ExecMojo.java:929)
    at org.codehaus.mojo.exec.ExecMojo.execute (ExecMojo.java:457)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:348)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

I've read and attempted everything suggested in #3, but nothing has helped thus far.

Notes in backup

What path and domain can I find notes and note attachments?

Unsupported JavaFX configuration: classes were loaded from unnamed module

          I'm sorry I haven't got around to fixing this until now. I'd appreciate it if someone could test it and reopen the issue if there are still problems.

Originally posted by @MaxiHuHe04 in #8 (comment)

Hi Maxi!!

First of all...you rock providing such a tool as open source!!

Just tried to install it and ran into a problem open the jar file...here is the error:

com.sun.javafx.application.PlatformImpl startup
WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @3086edd8'
objc[9879]: Class FIFinderSyncExtensionHost is implemented in both /System/Library/PrivateFrameworks/FinderKit.framework/Versions/A/FinderKit (0x7fff8e477c90) and /System/Library/PrivateFrameworks/FileProvider.framework/OverrideBundles/FinderSyncCollaborationFileProviderOverride.bundle/Contents/MacOS/FinderSyncCollaborationFileProviderOverride (0x16a656cd8). One of the two will be used. Which one is undefined.

it has a different outcome after the second line because i am on a MAC but the first line of error is identical, it has something todo with javaFX...i am not a coder but i found something here i think? (lol):
https://stackoverflow.com/questions/67854139/javafx-warning-unsupported-javafx-configuration-classes-were-loaded-from-unna

i also have to tell you that the GUI loaded but when i browsed to the backup the files where grayed out(and when i open the "info.plist file which i assume i get an error message that"manifest.db" is missing

Now, here is my system config( and i know you don't have a MAC):

MAC Book (intel), High Sierra, Java SDK 20.0.2

Now, one thing i also have to tell....its an older iphone and i believe IOS version is something around 9.6.2 or similar, could this be a problem?

Anyway, hope you have any idea about this issue, looking forward to hear from you!

Best,

Frank
Primetechstar

Java Exception

`java -jar "C:\Users\Ryzen\Downloads\itunes-backup-explorer-1.4.jar"

Exception in thread "main" java.lang.UnsupportedClassVersionError: me/maxih/itunes_backup_explorer/ITunesBackupExplorerLauncher has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

Already installed Java JDK latest and set java environment.

"Unable to install java"

Ive tried restarting my computer, redownloading and deleting java but it does not work and no matter what I do I cannot run the java to run the itunes backup explorer please help me.
Screenshot 2023-07-12 181135

Blank window

Hello,
I am getting nowhere on this app. For some reason.m it opens into a blank page. When I click on "Open Backup..." and navigate to my mobile sync folders, the files are grayed out. Not sure what is missing here.
Thanks, Terry
see screenshots
Screen Shot 2023-11-13 at 12 51 33 PM
Screen Shot 2023-11-13 at 12 50 37 PM
Screen Shot 2023-11-13 at 12 50 25 PM

.mbdb vs .db

I have older backups that uses .mbdb back up files that isnt compatible with this. Is there anyway to get it to work with older iphone backups.

Unable to access the Jar file.

So I tried using the command prompt and it says unable to access this jar file, then I tried double clicking and Java gave me the error of. A Java Exception has occured, I really don't know much about those, think i could get some guidance?

Date of photos does not appear correctly

I want to say thanks again for this amazing extension!
There is something I noticed that when I export any photo the original date the photo was taken does not appear
and instead the date the backup was taken appears
Even in the EXIF of the photo, the original date does not appear

Do you know how to fix it?
Thank you for your wonderful work

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.