2022-03-29 23:16:22 +00:00
|
|
|
# Mobile Verification Toolkit (MVT)
|
2023-02-08 19:18:16 +00:00
|
|
|
# Copyright (c) 2021-2023 Claudio Guarnieri.
|
2022-03-29 23:16:22 +00:00
|
|
|
# Use of this software is governed by the MVT License 1.1 that can be found at
|
|
|
|
# https://license.mvt.re/1.1/
|
|
|
|
|
|
|
|
import os
|
|
|
|
from pathlib import Path
|
|
|
|
|
2022-03-30 06:49:22 +00:00
|
|
|
from mvt.android.modules.bugreport.appops import Appops
|
2022-08-17 16:24:51 +00:00
|
|
|
from mvt.android.modules.bugreport.packages import Packages
|
2023-05-06 15:20:10 +00:00
|
|
|
from mvt.android.modules.bugreport.getprop import Getprop
|
2022-03-29 23:16:22 +00:00
|
|
|
from mvt.common.module import run_module
|
|
|
|
|
|
|
|
from ..utils import get_artifact_folder
|
|
|
|
|
|
|
|
|
2022-08-17 16:24:51 +00:00
|
|
|
class TestBugreportAnalysis:
|
2022-06-17 15:07:36 +00:00
|
|
|
|
2022-08-17 16:24:51 +00:00
|
|
|
def launch_bug_report_module(self, module):
|
2022-03-29 23:16:22 +00:00
|
|
|
fpath = os.path.join(get_artifact_folder(), "android_data/bugreport/")
|
2022-08-17 16:24:51 +00:00
|
|
|
m = module(target_path=fpath)
|
2022-03-29 23:16:22 +00:00
|
|
|
folder_files = []
|
|
|
|
parent_path = Path(fpath).absolute().as_posix()
|
|
|
|
for root, subdirs, subfiles in os.walk(os.path.abspath(fpath)):
|
|
|
|
for file_name in subfiles:
|
|
|
|
folder_files.append(os.path.relpath(os.path.join(root, file_name), parent_path))
|
|
|
|
m.from_folder(fpath, folder_files)
|
|
|
|
run_module(m)
|
2022-08-17 16:24:51 +00:00
|
|
|
return m
|
|
|
|
|
|
|
|
def test_appops_module(self):
|
|
|
|
m = self.launch_bug_report_module(Appops)
|
2022-03-29 23:16:22 +00:00
|
|
|
assert len(m.results) == 12
|
|
|
|
assert len(m.timeline) == 16
|
|
|
|
assert len(m.detected) == 0
|
2022-08-17 16:24:51 +00:00
|
|
|
|
|
|
|
def test_packages_module(self):
|
|
|
|
m = self.launch_bug_report_module(Packages)
|
|
|
|
assert len(m.results) == 2
|
|
|
|
assert m.results[0]["package_name"] == "com.samsung.android.provider.filterprovider"
|
|
|
|
assert m.results[1]["package_name"] == "com.instagram.android"
|
|
|
|
assert len(m.results[0]["permissions"]) == 4
|
|
|
|
assert len(m.results[1]["permissions"]) == 32
|
2023-05-06 15:20:10 +00:00
|
|
|
|
|
|
|
def test_getprop_module(self):
|
|
|
|
m = self.launch_bug_report_module(Getprop)
|
|
|
|
assert len(m.results) == 0
|