daniellockyer / apkdiff

Diff between two APK files.
119 stars 24 forks source link

Error when comparing non APK files #11

Open emanuelb opened 2 years ago

emanuelb commented 2 years ago

error of No such file or directory: 1/smali returned when comparing non APK files, see below:

echo 1 > /tmp/1

echo 2 > /tmp/2

python3 apkdiff.py /tmp/1 /tmp/2

             apktool

Running apktool against '/tmp/1'
[OK]
Running apktool against '/tmp/2'
[OK]
Merging additional smali folders
[OK]
Merging additional smali folders
[OK]

Traceback (most recent call last):
  File "/home/appuser/apkdiff/apkdiff.py", line 194, in <module>
    main()
  File "/home/appuser/apkdiff/apkdiff.py", line 67, in main
    compare(os.path.join(temp1, "smali"), os.path.join(temp2, "smali"), args.unique)
  File "/home/appuser/apkdiff/apkdiff.py", line 108, in compare
    uniqueleft, uniqueright = report_full_closure(compared)
  File "/home/appuser/apkdiff/apkdiff.py", line 142, in report_full_closure
    uniqueleft += getfiles(self.left, self.left_only, rootcmp.left)
  File "/usr/lib/python3.10/filecmp.py", line 252, in __getattr__
    self.methodmap[attr](self)
  File "/usr/lib/python3.10/filecmp.py", line 145, in phase1
    a = dict(zip(map(os.path.normcase, self.left_list), self.left_list))
  File "/usr/lib/python3.10/filecmp.py", line 252, in __getattr__
    self.methodmap[attr](self)
  File "/usr/lib/python3.10/filecmp.py", line 137, in phase0
    self.left_list = _filter(os.listdir(self.left),
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/apkdiff/1/smali'
daniellockyer commented 1 year ago

Happy to accept a PR to fix this 🙂