Added getprop parser

This commit is contained in:
Nex 2022-02-02 22:07:47 +01:00
parent 0922e569b0
commit df42efb7cb
4 changed files with 32 additions and 23 deletions

View File

@ -6,6 +6,8 @@
import logging
import re
from mvt.android.parsers import parse_getprop
from .base import AndroidExtraction
log = logging.getLogger(__name__)
@ -22,31 +24,11 @@ class Getprop(AndroidExtraction):
self.results = {} if not results else results
@staticmethod
def parse_getprop(output):
results = {}
rxp = re.compile(r"\[(.+?)\]: \[(.+?)\]")
for line in output.splitlines():
line = line.strip()
if line == "":
continue
matches = re.findall(rxp, line)
if not matches or len(matches[0]) != 2:
continue
key = matches[0][0]
value = matches[0][1]
results[key] = value
return results
def run(self):
self._adb_connect()
output = self._adb_command("getprop")
self._adb_disconnect()
self.results = self.parse_getprop(output)
self.results = parse_getprop(output)
self.log.info("Extracted %d Android system properties", len(self.results))

View File

@ -6,7 +6,7 @@
import logging
import re
from mvt.android.modules.adb.getprop import Getprop as GP
from mvt.android.parsers import parse_getprop
from .base import BugReportModule
@ -48,6 +48,6 @@ class Getprop(BugReportModule):
lines.append(line)
self.results = GP.parse_getprop("\n".join(lines))
self.results = parse_getprop("\n".join(lines))
self.log.info("Extracted %d Android system properties", len(self.results))

View File

@ -8,3 +8,4 @@ from .dumpsys import (parse_dumpsys_accessibility,
parse_dumpsys_battery_daily,
parse_dumpsys_battery_history, parse_dumpsys_dbinfo,
parse_dumpsys_receiver_resolver_table)
from .getprop import parse_getprop

View File

@ -0,0 +1,26 @@
# Mobile Verification Toolkit (MVT)
# Copyright (c) 2021-2022 The MVT Project Authors.
# Use of this software is governed by the MVT License 1.1 that can be found at
# https://license.mvt.re/1.1/
import re
def parse_getprop(output):
results = {}
rxp = re.compile(r"\[(.+?)\]: \[(.+?)\]")
for line in output.splitlines():
line = line.strip()
if line == "":
continue
matches = re.findall(rxp, line)
if not matches or len(matches[0]) != 2:
continue
key = matches[0][0]
value = matches[0][1]
results[key] = value
return results