piccimario / iphone-backup-analyzer-2 Goto Github PK
View Code? Open in Web Editor NEWiPBA, Qt version
iPBA, Qt version
File "main.py", line 1632, in readBackupArchive
path = str(nodeData[0])
UnicodeEncodeError: 'ascii' codec can't encode characters in position 17-19: ordinal not in range(128)
It would be very handy to give backup-directory from command line.
Something like this:
index 73ed244..5235fbd100644
--- a/main.py
+++ b/main.py
@@ -540,7 +540,7 @@ class SqliteWidget(QtGui.QWidget):
class IPBA2(QtGui.QMainWindow):
- def __init__(self):
+ def __init__(self, load_on_start):
super(IPBA2, self).__init__(None)
self.ui = Ui_MainWindow()
@@ -552,7 +552,8 @@ class IPBA2(QtGui.QMainWindow):
# and check its noneness to lock analysis functions
self.backup_path = None
- #self.openBackup()
+ if load_on_start !="":
+ self.openBackup(load_on_start)
self.loadPlugins()
@@ -1835,6 +1836,9 @@ if __name__ == "__main__":
app.setOrganizationName("IPBA2");
app.setOrganizationDomain("ipbackupanalyzer.com");
app.setApplicationName("iPhoneBackupAnalyzer2");
- main_ipba2_window = IPBA2()
+ if len(sys.argv) >= 2:
+ main_ipba2_window = IPBA2(sys.argv[1])
+ else:
+ main_ipba2_window = IPBA2("")
main_ipba2_window.show()
sys.exit(app.exec_())
The pyside library is deprecated, you should switch to pyside2.
https://wiki.qt.io/Qt_for_Python
iphone-backup-analyzer was part of Kali Linux up to now, but it will likely be dropped unless the application is updated to use pyside2.
Backup has folder with non-latin alphabet, eg Documents/فوتبال
Version: 3fd0dfa
Traceback (most recent call last):
File "main.py", line 871, in openBackupGUI
self.openBackup(newBackupPath)
File "main.py", line 890, in openBackup
self.readBackupArchive()
File "main.py", line 1651, in readBackupArchive
path = str(path_u[0])
UnicodeEncodeError: 'ascii' codec can't encode characters in position 10-21: ordinal not in range(128)
The Skype plugin does not work for iPad installations of Skype, returning the following error:
Type: Exception
Description: Skype database not found: "C:\Users\jwright\Desktop\b32ba4ec7c5bc1808937843e80b56cd08018e16e\"
File: <string>
Line: 693
Traceback:
- File "<string>", line 693, in runPlugin
- File "C:\Users\jwright\Downloads\iPBA2 exe build 042013\main\ipba2-plugins\plg_skype.py", line 1609, in main
return SkypeWidget(cursor, path)
- File "C:\Users\jwright\Downloads\iPBA2 exe build 042013\main\ipba2-plugins\plg_skype.py", line 707, in __init__
raise Exception("Skype database not found: \"%s\""%self.filename)
The problem is in the plg_skype.py plugin around line 700:
self.filename = os.path.join(self.backup_path, plugins_utils.realFileName(cursor, filename="main.db", domaintype="AppDomain", domain="com.skype.skype"))
For the iPad version of Skype, the domain is "com.skype.SkypeForiPad".
-Josh
Type: OperationalError
Description: no such table: Z_3PHONENUMINDEXES
File: main.py
Line: 759
Traceback:
I think, maybe viber replaced tables structure!
Manifest.mbdb not found in path on iPhone 6/6s when opening iPhone backup. Does this tool still support the new sqlite format of iOS backups?
QtGui.QMessageBox might not be the best gui-element for error messages. Most annoying is the fact that it cannot be resized (e.g. in case when details contains Backtrace). It could be improved something like:
diff --git a/main.py b/main.py
index 73ed244..a916f7b 100644
--- a/main.py
+++ b/main.py
@@ -68,6 +68,31 @@ class AboutWindow(QtGui.QWidget):
self.ui.about_version.setText("Ver. %s (%s)"%(iPBAVersion, iPBAVersionDate))
# ------------------------------------------------------------------------------------------------
+class MyMessageBox(QtGui.QMessageBox):
+ def __init__(self):
+ QtGui.QMessageBox.__init__(self)
+ self.setSizeGripEnabled(True)
+
+ def event(self, e):
+ result = QtGui.QMessageBox.event(self, e)
+
+ self.setMinimumHeight(0)
+ self.setMaximumHeight(16777215)
+ self.setMinimumWidth(0)
+ self.setMaximumWidth(16777215)
+ self.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
+
+ textEdit = self.findChild(QtGui.QTextEdit)
+ if textEdit != None :
+ textEdit.setMinimumHeight(0)
+ textEdit.setMaximumHeight(16777215)
+ textEdit.setMinimumWidth(0)
+ textEdit.setMaximumWidth(16777215)
+ textEdit.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
+
+ return result
+# ------------------------------------------------------------------------------------------------
+
class PlistWidget(QtGui.QWidget):
@@ -839,7 +864,7 @@ class IPBA2(QtGui.QMainWindow):
def error(self, text):
- msgBox = QtGui.QMessageBox()
+ msgBox = MyMessageBox()
msgBox.setText(text)
detailedText = "Type: %s"%sys.exc_info()[0].__name__
And/or:
+print text
+print detailedText
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.