mirror of
https://github.com/mvt-project/mvt.git
synced 2026-08-12 06:00:20 +02:00
Moves dumpsys parsing to android parsers and use the same parser for adb and bugreport modules
This commit is contained in:
@@ -7,24 +7,36 @@ import os
|
||||
from pathlib import Path
|
||||
|
||||
from mvt.android.modules.bugreport.appops import Appops
|
||||
from mvt.android.modules.bugreport.packages import Packages
|
||||
from mvt.common.module import run_module
|
||||
|
||||
from ..utils import get_artifact_folder
|
||||
|
||||
|
||||
class TestAppopsModule:
|
||||
class TestBugreportAnalysis:
|
||||
|
||||
def test_appops_parsing(self):
|
||||
def launch_bug_report_module(self, module):
|
||||
fpath = os.path.join(get_artifact_folder(), "android_data/bugreport/")
|
||||
m = Appops(target_path=fpath)
|
||||
m = module(target_path=fpath)
|
||||
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)
|
||||
return m
|
||||
|
||||
def test_appops_module(self):
|
||||
m = self.launch_bug_report_module(Appops)
|
||||
assert len(m.results) == 12
|
||||
assert len(m.timeline) == 16
|
||||
assert len(m.detected) == 0
|
||||
|
||||
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
|
||||
@@ -4,7 +4,8 @@
|
||||
# https://license.mvt.re/1.1/
|
||||
|
||||
from mvt.android.parsers.dumpsys import (parse_dumpsys_appops,
|
||||
parse_dumpsys_battery_history)
|
||||
parse_dumpsys_battery_history,
|
||||
parse_dumpsys_packages)
|
||||
|
||||
from ..utils import get_artifact
|
||||
|
||||
@@ -43,3 +44,18 @@ class TestDumpsysParsing:
|
||||
assert res[2]["package_name"] == "com.whatsapp"
|
||||
assert res[3]["event"] == "end_top"
|
||||
assert res[4]["package_name"] == "com.sec.android.app.launcher"
|
||||
|
||||
def test_packages_parsing(self):
|
||||
file = get_artifact("android_data/dumpsys_packages.txt")
|
||||
with open(file) as f:
|
||||
data = f.read()
|
||||
|
||||
res = parse_dumpsys_packages(data)
|
||||
|
||||
assert len(res) == 2
|
||||
assert res[0]["package_name"] == "com.samsung.android.provider.filterprovider"
|
||||
assert res[1]["package_name"] == "com.sec.android.app.DataCreate"
|
||||
assert len(res[0]["permissions"]) == 4
|
||||
assert len(res[0]["requested_permissions"]) == 0
|
||||
assert len(res[1]["permissions"]) == 34
|
||||
assert len(res[1]["requested_permissions"]) == 11
|
||||
|
||||
Reference in New Issue
Block a user