Skip to content

Commit

Permalink
update apkdiff.py apkfrombundle.py
Browse files Browse the repository at this point in the history
  • Loading branch information
xaxtix committed Jan 26, 2023
1 parent 17283ce commit 2628a58
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 24 deletions.
6 changes: 3 additions & 3 deletions apkdiff.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@

def compareFiles(first, second):
while True:
firstBytes = first.read(4096);
secondBytes = second.read(4096);
firstBytes = first.read(4096)
secondBytes = second.read(4096)
if firstBytes != secondBytes:
return False

if firstBytes == b"":
if firstBytes == b"" and secondBytes == b"":
break

return True
Expand Down
42 changes: 21 additions & 21 deletions apkfrombundle.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,31 @@
from zipfile import ZipFile

def compareFiles(first, second):
while True:
firstBytes = first.read(4096);
secondBytes = second.read(4096);
if firstBytes != secondBytes:
return False
while True:
firstBytes = first.read(4096)
secondBytes = second.read(4096)
if firstBytes != secondBytes:
return False

if firstBytes == b"" and secondBytes == b"":
break

if firstBytes != b"" or secondBytes != b"":
break
return True

return True

def remove_prefix(text, prefix):
if text.startswith(prefix):
return text[len(prefix):]
return text

def compareApkFromBundle(bundle, apk):
FILES_TO_IGNORE = ["META-INF/MANIFEST.MF", "META-INF/CERT.RSA", "META-INF/CERT.SF", "resources.arsc"]
FILES_TO_IGNORE = ["resources.arsc", "stamp-cert-sha256"]

apkZip = ZipFile(apk, 'r')
bundleZip = ZipFile(bundle, 'r')

firstList = list(filter(lambda info: info.filename not in FILES_TO_IGNORE, apkZip.infolist()))
secondList = list(filter(lambda secondInfo: secondInfo.filename not in FILES_TO_IGNORE, bundleZip.infolist()))

for apkInfo in firstList:
if (apkInfo.filename.startswith("META-INF/")):
continue
Expand Down Expand Up @@ -56,16 +56,16 @@ def compareApkFromBundle(bundle, apk):
if found == False:
print("file %s not found in APK" % apkInfo.filename)
return False

return True

if __name__ == '__main__':
if len(sys.argv) != 3:
print("Usage: apkfrombundle <pathToBundle> <pathToApk>")
sys.exit(1)
if len(sys.argv) != 3:
print("Usage: apkfrombundle <pathToBundle> <pathToApk>")
sys.exit(1)


if sys.argv[1] == sys.argv[2] or compareApkFromBundle(sys.argv[1], sys.argv[2]) == True:
print("APKs are from bundle!")
else:
print("APKs are different!")
if sys.argv[1] == sys.argv[2] or compareApkFromBundle(sys.argv[1], sys.argv[2]) == True:
print("APK from bundle!")
else:
print("APK has difference!")

0 comments on commit 2628a58

Please sign in to comment.