Register added bugreport parsers

This commit is contained in:
Janik Besendorf
2026-08-22 14:21:51 +02:00
parent 3a43f6fcc7
commit 7ef26779bf
2 changed files with 23 additions and 9 deletions
@@ -3,6 +3,8 @@
# Use of this software is governed by the MVT License 1.1 that can be found at # Use of this software is governed by the MVT License 1.1 that can be found at
# https://license.mvt.re/1.1/ # https://license.mvt.re/1.1/
from mvt.common.module import MVTModule
from .dumpsys_accessibility import DumpsysAccessibility from .dumpsys_accessibility import DumpsysAccessibility
from .dumpsys_activities import DumpsysActivities from .dumpsys_activities import DumpsysActivities
from .dumpsys_appops import DumpsysAppops from .dumpsys_appops import DumpsysAppops
@@ -16,8 +18,11 @@ from .dumpsys_receivers import DumpsysReceivers
from .dumpsys_adb_state import DumpsysADBState from .dumpsys_adb_state import DumpsysADBState
from .fs_timestamps import BugReportTimestamps from .fs_timestamps import BugReportTimestamps
from .tombstones import Tombstones from .tombstones import Tombstones
from .mounts import Mounts
from .processes import Processes
from .settings import Settings
BUGREPORT_MODULES = [ BUGREPORT_MODULES: list[type[MVTModule]] = [
DumpsysAccessibility, DumpsysAccessibility,
DumpsysActivities, DumpsysActivities,
DumpsysAppops, DumpsysAppops,
@@ -31,4 +36,7 @@ BUGREPORT_MODULES = [
DumpsysADBState, DumpsysADBState,
BugReportTimestamps, BugReportTimestamps,
Tombstones, Tombstones,
Processes,
Settings,
Mounts,
] ]
+14 -8
View File
@@ -54,10 +54,11 @@ class TestBugreportAnalysis:
== "com.samsung.android.provider.filterprovider" == "com.samsung.android.provider.filterprovider"
) )
assert m.results[1]["package_name"] == "com.instagram.android" assert m.results[1]["package_name"] == "com.instagram.android"
assert m.results[0]["installer"] == "" assert m.results[0]["installer"] is None
assert m.results[1]["installer"] == "com.android.vending" assert m.results[1]["installer"] == "com.android.vending"
assert len(m.results[0]["permissions"]) == 4 assert len(m.results[0]["permissions"]) == 4
assert len(m.results[1]["permissions"]) == 32 assert len(m.results[1]["permissions"]) == 20
assert len(m.results[1]["users"][0]["permissions"]) == 19
def test_getprop_module(self): def test_getprop_module(self):
m = self.launch_bug_report_module(DumpsysGetProp) m = self.launch_bug_report_module(DumpsysGetProp)
@@ -66,29 +67,34 @@ class TestBugreportAnalysis:
def test_receivers_match_exact_package_name(self, indicators_factory): def test_receivers_match_exact_package_name(self, indicators_factory):
intent = "android.intent.action.PHONE_STATE" intent = "android.intent.action.PHONE_STATE"
false_positive = { false_positive = {
"resolver_type": "non_data_action",
"key": intent,
"package_name": "com.android.phone", "package_name": "com.android.phone",
"receiver": ( "component": (
"com.android.phone/" "com.android.phone/"
"com.android.services.telephony.sip.SipIncomingCallReceiver" "com.android.services.telephony.sip.SipIncomingCallReceiver"
), ),
"filter_count": 1,
} }
malicious_receiver = { malicious_receiver = {
"resolver_type": "non_data_action",
"key": intent,
"package_name": "com.android.services", "package_name": "com.android.services",
"receiver": "com.android.services/com.example.SomeReceiver", "component": "com.android.services/com.example.SomeReceiver",
"filter_count": 1,
} }
module = DumpsysReceivers( module = DumpsysReceivers(results=[false_positive, malicious_receiver])
results={intent: [false_positive, malicious_receiver]}
)
module.indicators = indicators_factory(app_ids=["com.android.services"]) module.indicators = indicators_factory(app_ids=["com.android.services"])
module.check_indicators() module.check_indicators()
assert len(module.alertstore.alerts) == 1 assert len(module.alertstore.alerts) == 1
alert = module.alertstore.alerts[0] alert = module.alertstore.alerts[0]
assert alert.event == {intent: malicious_receiver} assert alert.event == malicious_receiver
assert alert.matched_indicator.value == "com.android.services" assert alert.matched_indicator.value == "com.android.services"
def test_tombstones_modules(self): def test_tombstones_modules(self):
m = self.launch_bug_report_module(Tombstones) m = self.launch_bug_report_module(Tombstones)
assert len(m.results) == 2 assert len(m.results) == 2
assert m.results[1]["pid"] == 3559 assert m.results[1]["pid"] == 3559
assert m.results[0]["sources"]["text"]["parsed"] is True