def test_icon_similarity_different_similarities(self):
     sa = StaticAnalysis()
     phash_1 = phash('./apks/braiar.apk')
     phash_2 = phash('./apks/whatsapp.apk')
     phash_3 = phash('./apks/hsbc.apk')
     diff_1 = sa.get_icon_similarity(phash_1, phash_3)
     diff2 = sa.get_icon_similarity(phash_2, phash_3)
     self.assertNotEqual(diff_1, diff2)
 def test_icon_similarity_same_app(self):
     sa = StaticAnalysis()
     apps = ['braiar', 'whatsapp']
     for app in apps:
         with self.subTest(app=app):
             icon_phash = phash('./apks/{}.apk'.format(app))
             diff = sa.get_icon_similarity(icon_phash, icon_phash)
             self.assertEqual(diff, 1.0)
    def test_icon_similarity_different_app(self):
        sa = StaticAnalysis()
        phash_1 = phash('./apks/braiar.apk')
        phash_2 = phash('./apks/whatsapp.apk')
        diff_1 = sa.get_icon_similarity(phash_1, phash_2)
        diff_2 = sa.get_icon_similarity(phash_2, phash_1)

        self.assertEqual(diff_1, 0.7265625)
        self.assertEqual(diff_2, 0.7265625)
def version_code(apk):
    sa = StaticAnalysis(apk)
    sa.load_trackers_signatures()
    return sa.get_version_code()
 def test_trackers_list(self):
     sa = StaticAnalysis()
     sa.load_trackers_signatures()
     self.assertIsNotNone(sa.signatures)
     self.assertGreater(len(sa.signatures), 70)
def list_classes(apk):
    sa = StaticAnalysis(apk)
    sa.load_trackers_signatures()
    return sa.get_embedded_classes()
def list_trackers(apk):
    sa = StaticAnalysis(apk)
    sa.load_trackers_signatures()
    return sa.detect_trackers()
def icon_path(apk):
    sa = StaticAnalysis(apk)
    return sa.get_icon_path()
def save_icon(apk, path):
    sa = StaticAnalysis(apk)
    return sa.save_icon(path)
def phash(apk):
    sa = StaticAnalysis(apk)
    return sa.get_icon_phash()
Example #11
0
 def get_icons_similarity(self, candidate):
     return StaticAnalysis.get_icon_similarity(self.icon_phash, candidate.icon_phash)
Example #12
0
 def __init__(self, apk_path):
     sa = StaticAnalysis(apk_path)
     self.analysis = sa
     self.apk_path = apk_path
     self.apk_size = sa.get_apk_size()
     self.apk_sha256 = sa.get_sha256()
     self.handle = sa.get_package()
     self.version_code = sa.get_version_code()
     self.version_name = sa.get_version()
     self.app_name = sa.get_app_name()
     self.icon_phash = sa.get_icon_phash()
     self.permissions = sa.get_permissions()
     self.app_uid = sa.get_application_universal_id()
     self.certificates = sa.get_certificates()