Compare commits

..

72 Commits

Author SHA1 Message Date
Janik Besendorf
a5ae729b65 Fix tests on windows 2025-08-19 15:49:47 +02:00
dependabot[bot]
86a0772eb2 Bump cryptography from 45.0.5 to 45.0.6 (#675)
Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.5 to 45.0.6.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/45.0.5...45.0.6)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 45.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 10:38:19 +02:00
github-actions[bot]
7d0be9db4f Add new iOS versions and build numbers (#673)
Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
2025-07-31 13:20:34 +02:00
dependabot[bot]
4e120b2640 Bump pydantic-settings from 2.9.1 to 2.10.1 (#655)
Bumps [pydantic-settings](https://github.com/pydantic/pydantic-settings) from 2.9.1 to 2.10.1.
- [Release notes](https://github.com/pydantic/pydantic-settings/releases)
- [Commits](https://github.com/pydantic/pydantic-settings/compare/v2.9.1...2.10.1)

---
updated-dependencies:
- dependency-name: pydantic-settings
  dependency-version: 2.10.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 22:58:12 +02:00
dependabot[bot]
dbe9e5db9b Bump mkdocstrings from 0.29.1 to 0.30.0 (#671)
Bumps [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) from 0.29.1 to 0.30.0.
- [Release notes](https://github.com/mkdocstrings/mkdocstrings/releases)
- [Changelog](https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0)

---
updated-dependencies:
- dependency-name: mkdocstrings
  dependency-version: 0.30.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tek <tek@randhome.io>
2025-07-28 22:42:37 +02:00
dependabot[bot]
0b00398729 Bump rich from 14.0.0 to 14.1.0 (#670)
Bumps [rich](https://github.com/Textualize/rich) from 14.0.0 to 14.1.0.
- [Release notes](https://github.com/Textualize/rich/releases)
- [Changelog](https://github.com/Textualize/rich/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Textualize/rich/compare/v14.0.0...v14.1.0)

---
updated-dependencies:
- dependency-name: rich
  dependency-version: 14.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 22:37:42 +02:00
dependabot[bot]
87034d2c7a Bump mkdocs-material from 9.6.14 to 9.6.16 (#672)
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.6.14 to 9.6.16.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.6.14...9.6.16)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-version: 9.6.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 22:29:04 +02:00
besendorf
595a2f6536 Merge pull request #656 from mvt-project/fix/install_non_market_apps
remove deprecated install_non_market_apps permission check
2025-07-22 19:32:05 +02:00
besendorf
8ead44a31e Merge branch 'main' into fix/install_non_market_apps 2025-07-22 19:12:44 +02:00
besendorf
5c19d02a73 Merge pull request #659 from mvt-project/fix/tcc
fix #579 TCC: no such table: access
2025-07-22 19:02:32 +02:00
besendorf
14ebc9ee4e Merge branch 'main' into fix/tcc 2025-07-22 18:56:10 +02:00
besendorf
de53cc07f8 Merge pull request #660 from mvt-project/fix/safari_browserstate
catch sqlite exception in safari_browserstate.py
2025-07-22 18:33:39 +02:00
besendorf
22e066fc4a Merge branch 'main' into fix/safari_browserstate 2025-07-22 18:20:07 +02:00
besendorf
242052b8ec Merge branch 'main' into fix/install_non_market_apps 2025-07-17 11:45:34 +02:00
dependabot[bot]
1df61b5bbf Bump cryptography from 45.0.4 to 45.0.5 (#661)
Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.4 to 45.0.5.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/45.0.4...45.0.5)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 45.0.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-07 21:03:08 +02:00
besendorf
b691de2cc0 catch sqlite exception in safari_browserstate.py 2025-07-04 17:52:05 +02:00
besendorf
10915f250c catch tcc error 2025-07-04 17:46:50 +02:00
besendorf
c60cef4009 Merge branch 'main' into fix/install_non_market_apps 2025-07-04 17:04:13 +02:00
besendorf
dda798df8e Merge pull request #658 from mvt-project/fix-mms
initialise message_links in backup parser to fix sms module bug
2025-07-04 15:32:47 +02:00
besendorf
ffe6ad2014 initialise message_links in backup parser to fix sms module bug 2025-07-04 15:29:36 +02:00
dependabot[bot]
a125b20fc5 Bump pydantic from 2.11.5 to 2.11.7 (#651)
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.11.5 to 2.11.7.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.11.5...v2.11.7)

---
updated-dependencies:
- dependency-name: pydantic
  dependency-version: 2.11.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-02 20:59:41 +02:00
besendorf
49108e67e2 remove deprecated install_non_market_apps permission check 2025-07-02 10:11:35 +02:00
dependabot[bot]
883b450601 Bump mkdocstrings from 0.23.0 to 0.29.1 (#649)
Bumps [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) from 0.23.0 to 0.29.1.
- [Release notes](https://github.com/mkdocstrings/mkdocstrings/releases)
- [Changelog](https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mkdocstrings/mkdocstrings/compare/0.23.0...0.29.1)

---
updated-dependencies:
- dependency-name: mkdocstrings
  dependency-version: 0.29.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tek <tek@randhome.io>
2025-06-20 11:29:34 +02:00
dependabot[bot]
ce813568ff Bump mkdocs-autorefs from 1.2.0 to 1.4.2 (#648)
Bumps [mkdocs-autorefs](https://github.com/mkdocstrings/autorefs) from 1.2.0 to 1.4.2.
- [Release notes](https://github.com/mkdocstrings/autorefs/releases)
- [Changelog](https://github.com/mkdocstrings/autorefs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mkdocstrings/autorefs/compare/1.2.0...1.4.2)

---
updated-dependencies:
- dependency-name: mkdocs-autorefs
  dependency-version: 1.4.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-20 11:28:24 +02:00
dependabot[bot]
93303f181a Bump mkdocs-material from 9.5.42 to 9.6.14 (#647)
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.42 to 9.6.14.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.42...9.6.14)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-version: 9.6.14
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tek <tek@randhome.io>
2025-06-20 11:24:12 +02:00
dependabot[bot]
bee453a090 Bump cryptography from 45.0.3 to 45.0.4 (#645)
Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.3 to 45.0.4.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/45.0.3...45.0.4)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 45.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-20 11:22:26 +02:00
dependabot[bot]
42106aa4d6 Bump pyahocorasick from 2.1.0 to 2.2.0 (#646)
Bumps [pyahocorasick](https://github.com/WojciechMula/pyahocorasick) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/WojciechMula/pyahocorasick/releases)
- [Changelog](https://github.com/WojciechMula/pyahocorasick/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/WojciechMula/pyahocorasick/compare/2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: pyahocorasick
  dependency-version: 2.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-20 11:19:57 +02:00
Tek
95076c8f71 Create dependabot.yml (#644) 2025-06-20 11:17:40 +02:00
dependabot[bot]
c9ac12f336 Bump requests from 2.32.2 to 2.32.4 (#642)
Bumps [requests](https://github.com/psf/requests) from 2.32.2 to 2.32.4.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.2...v2.32.4)

---
updated-dependencies:
- dependency-name: requests
  dependency-version: 2.32.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-19 23:55:42 +02:00
Tek
486e3e7e9b Update global_preferences.py (#641)
Added a warning for lockdown mode when the property is not present
---------

Co-authored-by: makitos666 <makitos666@gmail.com>
2025-06-19 23:51:59 +02:00
besendorf
be1fc3bd8b Update NSKeyedUnarchiver (#636) 2025-06-12 22:42:02 +02:00
Tek
4757cff262 Fixes date parsing issue in tombstones (#635) 2025-06-12 20:49:31 +02:00
Tek
61f51caf31 Freeze versions and bump version (#632)
* Freeze versions and bump version
* Drops support for python below 3.10
2025-06-12 16:33:15 +02:00
besendorf
511063fd0e Update pyproject.toml (#630) 2025-06-04 13:00:04 +02:00
scribblemaniac
88bc5672cb Upgrade main dockerfile runtime to ubuntu:24.04 (#619)
Co-authored-by: Tek <tek@randhome.io>
2025-05-14 11:34:40 +02:00
github-actions[bot]
0fce0acf7a Add new iOS versions and build numbers (#626)
Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
2025-05-14 11:12:13 +02:00
github-actions[bot]
61f95d07d3 Add new iOS versions and build numbers (#625)
Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
2025-05-12 22:37:46 +02:00
ping2A
3dedd169c4 Fix issue #574 for a module without IOCs output (#620)
* Fix issue #574 for a module without IOCs output
2025-04-30 10:30:39 +02:00
Tek
e34e03d3a3 Fixes Android Dumpsys ADB parsing issue 2025-04-18 17:43:08 +02:00
github-actions[bot]
34374699ce Add new iOS versions and build numbers (#622)
Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
2025-04-17 09:46:17 +02:00
github-actions[bot]
cf5aa7c89f Add new iOS versions and build numbers (#618)
Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
2025-04-01 16:04:06 +02:00
Donncha Ó Cearbhaill
2766739512 Fix bug where default values were dropped when parsing protobuf tombstones (#617) 2025-03-11 14:10:34 +01:00
cacu
9c84afb4b0 Update logo.py (#615)
add instructions to update mvt via pipx
2025-03-11 13:46:59 +01:00
Donncha Ó Cearbhaill
80fc8bd879 Fix YAML format (#611) 2025-02-21 15:48:00 +01:00
Donncha Ó Cearbhaill
ca41f7f106 Always open automatic PRs as drafts (#609) 2025-02-21 15:35:06 +01:00
github-actions[bot]
55ddd86ad5 Add new iOS versions and build numbers (#607)
Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
2025-02-21 15:24:27 +01:00
Donncha Ó Cearbhaill
b184eeedf4 Handle XML encoded ADB keystore and fix parsing bugs (#605) 2025-02-07 02:00:24 +01:00
Donncha Ó Cearbhaill
4e97e85350 Load Android device timezone info and add additional file modification logs (#567)
* Use local timestamp for Files module timeline.

Most other Android timestamps appear to be local time. The
results timeline is more useful if all the timestamps
are consistent. I would prefer to use UTC, but that would
mean converting all the other timestamps to UTC as well. We probably
do not have sufficient information to do that accurately,
especially if the device is moving between timezones..

* Add file timestamp modules to add logs into timeline

* Handle case were we cannot load device timezone

* Fix crash if prop file does not exist

* Move _get_file_modification_time to BugReportModule

* Add backport for timezone and fix Tombstone module to use local time.

* Fix import for backported Zoneinfo

* Fix ruff error
2025-02-06 20:51:15 +01:00
Donncha Ó Cearbhaill
e5865b166e Merge pull request #568 from mvt-project/feature/tombstone-parser
Add parser for Android tombstone files
2025-02-06 20:15:21 +01:00
Donncha Ó Cearbhaill
a2dabb4267 Fix generate-proto-parsers Makefile command 2025-02-06 20:11:54 +01:00
Donncha Ó Cearbhaill
b7595b62eb Add initial tombstone parser
This supports parsing tombstone files from Android bugreports. The parser
can load both the legacy text format and the new binary protobuf format.
2025-02-06 20:07:05 +01:00
Donncha Ó Cearbhaill
02c02ca15c Merge branch 'main' into feature/tombstone-parser 2025-02-03 18:44:00 +01:00
Donncha Ó Cearbhaill
6da33394fe Merge pull request #592 from mvt-project/feature/config-file
Reworking handling of config options
2025-01-30 13:32:53 +01:00
Donncha Ó Cearbhaill
086871e21d Merge branch 'main' into feature/config-file 2025-01-30 13:15:28 +01:00
Donncha Ó Cearbhaill
f32830c649 Merge pull request #603 from mvt-project/feature/add-suspicious-android-setting
Add additional Android security warnings
2025-01-30 13:12:14 +01:00
Donncha Ó Cearbhaill
edcad488ab Merge branch 'main' into feature/add-suspicious-android-setting 2025-01-30 13:10:00 +01:00
Donncha Ó Cearbhaill
43901c96a0 Add improved heuristic detections to AppOps module 2025-01-30 13:02:26 +01:00
Donncha Ó Cearbhaill
0962383b46 Alert on potentially suspicious permissions from ADB 2025-01-30 11:48:19 +01:00
Donncha Ó Cearbhaill
34cd08fd9a Add additional Android security setting to warn on 2025-01-30 11:35:18 +01:00
github-actions[bot]
579b53f7ec Add new iOS versions and build numbers (#602)
Co-authored-by: DonnchaC <DonnchaC@users.noreply.github.com>
2025-01-28 01:27:17 +01:00
Donncha Ó Cearbhaill
0fbf24e82a Merge branch 'main' into feature/config-file 2025-01-14 14:33:40 +01:00
Donncha Ó Cearbhaill
458195a0ab Fix optional typing syntax for Python 3.8 2024-12-25 00:28:02 +00:00
Donncha Ó Cearbhaill
52e854b8b7 Add missing import 2024-12-25 00:23:36 +00:00
Donncha Ó Cearbhaill
0f1eec3971 Add Pydantic dependencies 2024-12-25 00:21:42 +00:00
Donncha Ó Cearbhaill
f4425865c0 Add missed modules using updated settings module 2024-12-25 00:14:14 +00:00
Donncha Ó Cearbhaill
28c0c86c4e Update MVT code to use config file rather than raw env variables 2024-12-25 00:09:29 +00:00
Donncha Ó Cearbhaill
154e6dab15 Add config file parser for MVT 2024-12-24 23:30:18 +00:00
Donncha Ó Cearbhaill
8e895d3d07 Remove protobuf compiler dependency, only needed for dev 2024-10-28 13:10:37 +01:00
Donncha Ó Cearbhaill
bc09e2a394 Initial tests for tombstone parsing 2024-10-28 10:51:58 +01:00
Donncha Ó Cearbhaill
2d0de088dd Add generated protobuf parser 2024-10-28 10:38:19 +01:00
Donncha Ó Cearbhaill
8694e7a047 Add protobuf parser generation 2024-10-28 10:37:30 +01:00
Donncha Ó Cearbhaill
9b41ba99aa WIP: initial tombstone modules 2024-10-28 10:34:53 +01:00
52 changed files with 2592 additions and 95 deletions

11
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
version: 2
updates:
- package-ecosystem: "pip" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"

View File

@@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ['3.8', '3.9', '3.10'] # , '3.11']
python-version: ['3.10', '3.11', '3.12', '3.13']
steps:
- uses: actions/checkout@v4
@@ -35,4 +35,4 @@ jobs:
if: github.event_name == 'pull_request'
with:
pytest-coverage-path: ./pytest-coverage.txt
junitxml-path: ./pytest.xml
junitxml-path: ./pytest.xml

View File

@@ -21,6 +21,7 @@ jobs:
title: '[auto] Update iOS releases and versions'
commit-message: Add new iOS versions and build numbers
branch: auto/add-new-ios-releases
draft: true
body: |
This is an automated pull request to update the iOS releases and version numbers.
add-paths: |

View File

@@ -103,7 +103,7 @@ RUN git clone https://github.com/libimobiledevice/usbmuxd && cd usbmuxd \
# Create main image
FROM ubuntu:22.04 as main
FROM ubuntu:24.04 as main
LABEL org.opencontainers.image.url="https://mvt.re"
LABEL org.opencontainers.image.documentation="https://docs.mvt.re"
@@ -135,8 +135,7 @@ COPY --from=build-usbmuxd /build /
COPY . mvt/
RUN apt-get update \
&& apt-get install -y git python3-pip \
&& PIP_NO_CACHE_DIR=1 pip3 install --upgrade pip \
&& PIP_NO_CACHE_DIR=1 pip3 install ./mvt \
&& PIP_NO_CACHE_DIR=1 pip3 install --break-system-packages ./mvt \
&& apt-get remove -y python3-pip git && apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf mvt

View File

@@ -25,6 +25,11 @@ install:
test-requirements:
python3 -m pip install --upgrade -r test-requirements.txt
generate-proto-parsers:
# Generate python parsers for protobuf files
PROTO_FILES=$$(find src/mvt/android/parsers/proto/ -iname "*.proto"); \
protoc -Isrc/mvt/android/parsers/proto/ --python_betterproto_out=src/mvt/android/parsers/proto/ $$PROTO_FILES
clean:
rm -rf $(PWD)/build $(PWD)/dist $(PWD)/src/mvt.egg-info

View File

@@ -1,5 +1,5 @@
mkdocs==1.6.1
mkdocs-autorefs==1.2.0
mkdocs-material==9.5.42
mkdocs-autorefs==1.4.2
mkdocs-material==9.6.16
mkdocs-material-extensions==1.3.1
mkdocstrings==0.23.0
mkdocstrings==0.30.0

View File

@@ -19,21 +19,26 @@ classifiers = [
"Programming Language :: Python"
]
dependencies = [
"click >=8.1.3",
"rich >=12.6.0",
"tld >=0.12.6",
"requests >=2.28.1",
"simplejson >=3.17.6",
"packaging >=21.3",
"appdirs >=1.4.4",
"iOSbackup >=0.9.923",
"adb-shell[usb] >=0.4.3",
"libusb1 >=3.0.0",
"cryptography >=42.0.5",
"pyyaml >=6.0",
"pyahocorasick >= 2.0.0",
"click==8.2.1",
"rich==14.1.0",
"tld==0.13.1",
"requests==2.32.4",
"simplejson==3.20.1",
"packaging==25.0",
"appdirs==1.4.4",
"iOSbackup==0.9.925",
"adb-shell[usb]==0.4.4",
"libusb1==3.3.1",
"cryptography==45.0.6",
"PyYAML>=6.0.2",
"pyahocorasick==2.2.0",
"betterproto==1.2.5",
"pydantic==2.11.7",
"pydantic-settings==2.10.1",
"NSKeyedUnArchiver==1.5.2",
"python-dateutil==2.9.0.post0",
]
requires-python = ">= 3.8"
requires-python = ">= 3.10"
[project.urls]
homepage = "https://docs.mvt.re/en/latest/"
@@ -99,4 +104,4 @@ where = ["src"]
mvt = ["ios/data/*.json"]
[tool.setuptools.dynamic]
version = {attr = "mvt.common.version.MVT_VERSION"}
version = {attr = "mvt.common.version.MVT_VERSION"}

View File

@@ -4,13 +4,14 @@
# https://license.mvt.re/1.1/
import base64
import binascii
import hashlib
from .artifact import AndroidArtifact
class DumpsysADBArtifact(AndroidArtifact):
multiline_fields = ["user_keys"]
multiline_fields = ["user_keys", "keystore"]
def indented_dump_parser(self, dump_data):
"""
@@ -20,12 +21,22 @@ class DumpsysADBArtifact(AndroidArtifact):
stack = [res]
cur_indent = 0
in_multiline = False
for line in dump_data.strip(b"\n").split(b"\n"):
# Normalize line endings to handle both Unix (\n) and Windows (\r\n)
normalized_data = dump_data.replace(b"\r\n", b"\n").replace(b"\r", b"\n")
for line in normalized_data.strip(b"\n").split(b"\n"):
# Skip completely empty lines
if not line.strip():
continue
# Track the level of indentation
indent = len(line) - len(line.lstrip())
if indent < cur_indent:
# If the current line is less indented than the previous one, back out
stack.pop()
while len(stack) > 1 and indent < cur_indent:
stack.pop()
# Check if we were in multiline mode and need to exit it
if in_multiline and not isinstance(stack[-1], list):
in_multiline = False
cur_indent = indent
else:
cur_indent = indent
@@ -37,12 +48,30 @@ class DumpsysADBArtifact(AndroidArtifact):
# Annoyingly, some values are multiline and don't have a key on each line
if in_multiline:
if key == "":
if key == "" and len(vals) < 2:
# If the line is empty, it's the terminator for the multiline value
in_multiline = False
stack.pop()
current_dict = stack[-1]
elif len(vals) >= 2 and (key in self.multiline_fields or key == "}" or vals[1] == b"{"):
# If we encounter a new field while in multiline mode, exit multiline mode
# and process this line as a new field
in_multiline = False
stack.pop()
current_dict = stack[-1]
# Don't continue here - let the line be processed as a new field
else:
current_dict.append(line.lstrip())
# When in multiline mode, the top of stack should be a list
if isinstance(stack[-1], list):
stack[-1].append(line.lstrip())
else:
# Something went wrong with the stack, exit multiline mode
in_multiline = False
current_dict = stack[-1]
continue
# Skip lines that don't have a value after '='
if len(vals) < 2:
continue
if key == "}":
@@ -67,14 +96,38 @@ class DumpsysADBArtifact(AndroidArtifact):
return res
def parse_xml(self, xml_data):
"""
Parse XML data from dumpsys ADB output
"""
import xml.etree.ElementTree as ET
keystore = []
keystore_root = ET.fromstring(xml_data)
for adb_key in keystore_root.findall("adbKey"):
key_info = self.calculate_key_info(adb_key.get("key").encode("utf-8"))
key_info["last_connected"] = adb_key.get("lastConnection")
keystore.append(key_info)
return keystore
@staticmethod
def calculate_key_info(user_key: bytes) -> str:
key_base64, user = user_key.split(b" ", 1)
key_raw = base64.b64decode(key_base64)
key_fingerprint = hashlib.md5(key_raw).hexdigest().upper()
key_fingerprint_colon = ":".join(
[key_fingerprint[i : i + 2] for i in range(0, len(key_fingerprint), 2)]
)
if b" " in user_key:
key_base64, user = user_key.split(b" ", 1)
else:
key_base64, user = user_key, b""
try:
key_raw = base64.b64decode(key_base64)
key_fingerprint = hashlib.md5(key_raw).hexdigest().upper()
key_fingerprint_colon = ":".join(
[key_fingerprint[i : i + 2] for i in range(0, len(key_fingerprint), 2)]
)
except binascii.Error:
# Impossible to parse base64
key_fingerprint_colon = ""
return {
"user": user.decode("utf-8"),
"fingerprint": key_fingerprint_colon,
@@ -108,15 +161,40 @@ class DumpsysADBArtifact(AndroidArtifact):
# TODO: Parse AdbDebuggingManager line in output.
start_of_json = content.find(b"\n{") + 2
end_of_json = content.rfind(b"}\n") - 2
# Handle both Unix (\n) and Windows (\r\n) line endings
end_of_json = content.rfind(b"}\n")
if end_of_json == -1:
end_of_json = content.rfind(b"}\r\n")
if end_of_json == -1:
self.log.error("Unable to find end of JSON block in dumpsys output")
return
end_of_json -= 2
json_content = content[start_of_json:end_of_json].rstrip()
parsed = self.indented_dump_parser(json_content)
if parsed.get("debugging_manager") is None:
self.log.error("Unable to find expected ADB entries in dumpsys output") # noqa
return
# Keystore can be in different levels, as the basic parser
# is not always consistent due to different dumpsys formats.
if parsed.get("keystore"):
keystore_data = b"\n".join(parsed["keystore"])
elif parsed["debugging_manager"].get("keystore"):
keystore_data = b"\n".join(parsed["debugging_manager"]["keystore"])
else:
parsed = parsed["debugging_manager"]
keystore_data = None
# Keystore is in XML format on some devices and we need to parse it
if keystore_data and keystore_data.startswith(b"<?xml"):
parsed["debugging_manager"]["keystore"] = self.parse_xml(keystore_data)
else:
# Keystore is not XML format
parsed["debugging_manager"]["keystore"] = keystore_data
parsed = parsed["debugging_manager"]
# Calculate key fingerprints for better readability
key_info = []

View File

@@ -11,6 +11,10 @@ from mvt.common.utils import convert_datetime_to_iso
from .artifact import AndroidArtifact
RISKY_PERMISSIONS = ["REQUEST_INSTALL_PACKAGES"]
RISKY_PACKAGES = ["com.android.shell"]
class DumpsysAppopsArtifact(AndroidArtifact):
"""
Parser for dumpsys app ops info
@@ -45,15 +49,39 @@ class DumpsysAppopsArtifact(AndroidArtifact):
self.detected.append(result)
continue
detected_permissions = []
for perm in result["permissions"]:
if (
perm["name"] == "REQUEST_INSTALL_PACKAGES"
and perm["access"] == "allow"
perm["name"] in RISKY_PERMISSIONS
# and perm["access"] == "allow"
):
self.log.info(
"Package %s with REQUEST_INSTALL_PACKAGES permission",
result["package_name"],
)
detected_permissions.append(perm)
for entry in sorted(perm["entries"], key=lambda x: x["timestamp"]):
self.log.warning(
"Package '%s' had risky permission '%s' set to '%s' at %s",
result["package_name"],
perm["name"],
entry["access"],
entry["timestamp"],
)
elif result["package_name"] in RISKY_PACKAGES:
detected_permissions.append(perm)
for entry in sorted(perm["entries"], key=lambda x: x["timestamp"]):
self.log.warning(
"Risky package '%s' had '%s' permission set to '%s' at %s",
result["package_name"],
perm["name"],
entry["access"],
entry["timestamp"],
)
if detected_permissions:
# We clean the result to only include the risky permission, otherwise the timeline
# will be polluted with all the other irrelevant permissions
cleaned_result = result.copy()
cleaned_result["permissions"] = detected_permissions
self.detected.append(cleaned_result)
def parse(self, output: str) -> None:
self.results: List[Dict[str, Any]] = []
@@ -121,11 +149,16 @@ class DumpsysAppopsArtifact(AndroidArtifact):
if line.startswith(" "):
# Permission entry like:
# Reject: [fg-s]2021-05-19 22:02:52.054 (-314d1h25m2s33ms)
access_type = line.split(":")[0].strip()
if access_type not in ["Access", "Reject"]:
# Skipping invalid access type. Some entries are not in the format we expect
continue
if entry:
perm["entries"].append(entry)
entry = {}
entry["access"] = line.split(":")[0].strip()
entry["access"] = access_type
entry["type"] = line[line.find("[") + 1 : line.find("]")]
try:

View File

@@ -0,0 +1,43 @@
# Mobile Verification Toolkit (MVT)
# Copyright (c) 2021-2023 The MVT Authors.
# Use of this software is governed by the MVT License 1.1 that can be found at
# https://license.mvt.re/1.1/
from typing import Union
from .artifact import AndroidArtifact
class FileTimestampsArtifact(AndroidArtifact):
def serialize(self, record: dict) -> Union[dict, list]:
records = []
for ts in set(
[
record.get("access_time"),
record.get("changed_time"),
record.get("modified_time"),
]
):
if not ts:
continue
macb = ""
macb += "M" if ts == record.get("modified_time") else "-"
macb += "A" if ts == record.get("access_time") else "-"
macb += "C" if ts == record.get("changed_time") else "-"
macb += "-"
msg = record["path"]
if record.get("context"):
msg += f" ({record['context']})"
records.append(
{
"timestamp": ts,
"module": self.__class__.__name__,
"event": macb,
"data": msg,
}
)
return records

View File

@@ -42,6 +42,17 @@ class GetProp(AndroidArtifact):
entry = {"name": matches[0][0], "value": matches[0][1]}
self.results.append(entry)
def get_device_timezone(self) -> str:
"""
Get the device timezone from the getprop results
Used in other moduels to calculate the timezone offset
"""
for entry in self.results:
if entry["name"] == "persist.sys.timezone":
return entry["value"]
return None
def check_indicators(self) -> None:
for entry in self.results:
if entry["name"] in INTERESTING_PROPERTIES:

View File

@@ -16,6 +16,11 @@ ANDROID_DANGEROUS_SETTINGS = [
"key": "package_verifier_enable",
"safe_value": "1",
},
{
"description": "disabled APK package verification",
"key": "package_verifier_state",
"safe_value": "1",
},
{
"description": "disabled Google Play Protect",
"key": "package_verifier_user_consent",
@@ -46,11 +51,6 @@ ANDROID_DANGEROUS_SETTINGS = [
"key": "send_action_app_error",
"safe_value": "1",
},
{
"description": "enabled installation of non Google Play apps",
"key": "install_non_market_apps",
"safe_value": "0",
},
{
"description": "enabled accessibility services",
"key": "accessibility_enabled",

View File

@@ -0,0 +1,270 @@
# Mobile Verification Toolkit (MVT)
# Copyright (c) 2021-2023 The MVT 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 datetime
from typing import List, Optional, Union
import pydantic
import betterproto
from dateutil import parser
from mvt.common.utils import convert_datetime_to_iso
from mvt.android.parsers.proto.tombstone import Tombstone
from .artifact import AndroidArtifact
TOMBSTONE_DELIMITER = "*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***"
# Map the legacy crash file keys to the new format.
TOMBSTONE_TEXT_KEY_MAPPINGS = {
"Build fingerprint": "build_fingerprint",
"Revision": "revision",
"ABI": "arch",
"Timestamp": "timestamp",
"Process uptime": "process_uptime",
"Cmdline": "command_line",
"pid": "pid",
"tid": "tid",
"name": "process_name",
"binary_path": "binary_path",
"uid": "uid",
"signal": "signal_info",
"code": "code",
"Cause": "cause",
}
class SignalInfo(pydantic.BaseModel):
code: int
code_name: str
name: str
number: Optional[int] = None
class TombstoneCrashResult(pydantic.BaseModel):
"""
MVT Result model for a tombstone crash result.
Needed for validation and serialization, and consistency between text and protobuf tombstones.
"""
file_name: str
file_timestamp: str # We store the timestamp as a string to avoid timezone issues
build_fingerprint: str
revision: int
arch: Optional[str] = None
timestamp: str # We store the timestamp as a string to avoid timezone issues
process_uptime: Optional[int] = None
command_line: Optional[List[str]] = None
pid: int
tid: int
process_name: Optional[str] = None
binary_path: Optional[str] = None
selinux_label: Optional[str] = None
uid: int
signal_info: SignalInfo
cause: Optional[str] = None
extra: Optional[str] = None
class TombstoneCrashArtifact(AndroidArtifact):
""" "
Parser for Android tombstone crash files.
This parser can parse both text and protobuf tombstone crash files.
"""
def serialize(self, record: dict) -> Union[dict, list]:
return {
"timestamp": record["timestamp"],
"module": self.__class__.__name__,
"event": "Tombstone",
"data": (
f"Crash in '{record['process_name']}' process running as UID '{record['uid']}' in file '{record['file_name']}' "
f"Crash type '{record['signal_info']['name']}' with code '{record['signal_info']['code_name']}'"
),
}
def check_indicators(self) -> None:
if not self.indicators:
return
for result in self.results:
ioc = self.indicators.check_process(result["process_name"])
if ioc:
result["matched_indicator"] = ioc
self.detected.append(result)
continue
if result.get("command_line", []):
command_name = result.get("command_line")[0].split("/")[-1]
ioc = self.indicators.check_process(command_name)
if ioc:
result["matched_indicator"] = ioc
self.detected.append(result)
continue
SUSPICIOUS_UIDS = [
0, # root
1000, # system
2000, # shell
]
if result["uid"] in SUSPICIOUS_UIDS:
self.log.warning(
f"Potentially suspicious crash in process '{result['process_name']}' "
f"running as UID '{result['uid']}' in tombstone '{result['file_name']}' at {result['timestamp']}"
)
self.detected.append(result)
def parse_protobuf(
self, file_name: str, file_timestamp: datetime.datetime, data: bytes
) -> None:
"""
Parse Android tombstone crash files from a protobuf object.
"""
tombstone_pb = Tombstone().parse(data)
tombstone_dict = tombstone_pb.to_dict(
betterproto.Casing.SNAKE, include_default_values=True
)
# Add some extra metadata
tombstone_dict["timestamp"] = self._parse_timestamp_string(
tombstone_pb.timestamp
)
tombstone_dict["file_name"] = file_name
tombstone_dict["file_timestamp"] = convert_datetime_to_iso(file_timestamp)
tombstone_dict["process_name"] = self._proccess_name_from_thread(tombstone_dict)
# Confirm the tombstone is valid, and matches the output model
tombstone = TombstoneCrashResult.model_validate(tombstone_dict)
self.results.append(tombstone.model_dump())
def parse(
self, file_name: str, file_timestamp: datetime.datetime, content: bytes
) -> None:
"""
Parse text Android tombstone crash files.
"""
# Split the tombstone file into a dictonary
tombstone_dict = {
"file_name": file_name,
"file_timestamp": convert_datetime_to_iso(file_timestamp),
}
lines = content.decode("utf-8").splitlines()
for line in lines:
if not line.strip() or TOMBSTONE_DELIMITER in line:
continue
for key, destination_key in TOMBSTONE_TEXT_KEY_MAPPINGS.items():
self._parse_tombstone_line(line, key, destination_key, tombstone_dict)
# Validate the tombstone and add it to the results
tombstone = TombstoneCrashResult.model_validate(tombstone_dict)
self.results.append(tombstone.model_dump())
def _parse_tombstone_line(
self, line: str, key: str, destination_key: str, tombstone: dict
) -> bool:
if not line.startswith(f"{key}"):
return None
if key == "pid":
return self._load_pid_line(line, tombstone)
elif key == "signal":
return self._load_signal_line(line, tombstone)
elif key == "Timestamp":
return self._load_timestamp_line(line, tombstone)
else:
return self._load_key_value_line(line, key, destination_key, tombstone)
def _load_key_value_line(
self, line: str, key: str, destination_key: str, tombstone: dict
) -> bool:
line_key, value = line.split(":", 1)
if line_key != key:
raise ValueError(f"Expected key {key}, got {line_key}")
value_clean = value.strip().strip("'")
if destination_key in ["uid", "revision"]:
tombstone[destination_key] = int(value_clean)
elif destination_key == "process_uptime":
# eg. "Process uptime: 40s"
tombstone[destination_key] = int(value_clean.rstrip("s"))
elif destination_key == "command_line":
# XXX: Check if command line should be a single string in a list, or a list of strings.
tombstone[destination_key] = [value_clean]
else:
tombstone[destination_key] = value_clean
return True
def _load_pid_line(self, line: str, tombstone: dict) -> bool:
pid_part, tid_part, name_part = [part.strip() for part in line.split(",")]
pid_key, pid_value = pid_part.split(":", 1)
if pid_key != "pid":
raise ValueError(f"Expected key pid, got {pid_key}")
pid_value = int(pid_value.strip())
tid_key, tid_value = tid_part.split(":", 1)
if tid_key != "tid":
raise ValueError(f"Expected key tid, got {tid_key}")
tid_value = int(tid_value.strip())
name_key, name_value = name_part.split(":", 1)
if name_key != "name":
raise ValueError(f"Expected key name, got {name_key}")
name_value = name_value.strip()
process_name, binary_path = self._parse_process_name(name_value, tombstone)
tombstone["pid"] = pid_value
tombstone["tid"] = tid_value
tombstone["process_name"] = process_name
tombstone["binary_path"] = binary_path
return True
def _parse_process_name(self, process_name_part, tombstone: dict) -> bool:
process_name, process_path = process_name_part.split(">>>")
process_name = process_name.strip()
binary_path = process_path.strip().split(" ")[0]
return process_name, binary_path
def _load_signal_line(self, line: str, tombstone: dict) -> bool:
signal, code, _ = [part.strip() for part in line.split(",", 2)]
signal = signal.split("signal ")[1]
signal_code, signal_name = signal.split(" ")
signal_name = signal_name.strip("()")
code_part = code.split("code ")[1]
code_number, code_name = code_part.split(" ")
code_name = code_name.strip("()")
tombstone["signal_info"] = {
"code": int(code_number),
"code_name": code_name,
"name": signal_name,
"number": int(signal_code),
}
return True
def _load_timestamp_line(self, line: str, tombstone: dict) -> bool:
timestamp = line.split(":", 1)[1].strip()
tombstone["timestamp"] = self._parse_timestamp_string(timestamp)
return True
@staticmethod
def _parse_timestamp_string(timestamp: str) -> str:
timestamp_parsed = parser.parse(timestamp)
# HACK: Swap the local timestamp to UTC, so keep the original time and avoid timezone conversion.
local_timestamp = timestamp_parsed.replace(tzinfo=datetime.timezone.utc)
return convert_datetime_to_iso(local_timestamp)
@staticmethod
def _proccess_name_from_thread(tombstone_dict: dict) -> str:
if tombstone_dict.get("threads"):
for thread in tombstone_dict["threads"].values():
if thread.get("id") == tombstone_dict["tid"] and thread.get("name"):
return thread["name"]
return "Unknown"

View File

@@ -48,6 +48,37 @@ class AndroidQFModule(MVTModule):
def _get_files_by_pattern(self, pattern: str):
return fnmatch.filter(self.files, pattern)
def _get_device_timezone(self):
"""
Get the device timezone from the getprop.txt file.
This is needed to map local timestamps stored in some
Android log files to UTC/timezone-aware timestamps.
"""
get_prop_files = self._get_files_by_pattern("*/getprop.txt")
if not get_prop_files:
self.log.warning(
"Could not find getprop.txt file. "
"Some timestamps and timeline data may be incorrect."
)
return None
from mvt.android.artifacts.getprop import GetProp
properties_artifact = GetProp()
prop_data = self._get_file_content(get_prop_files[0]).decode("utf-8")
properties_artifact.parse(prop_data)
timezone = properties_artifact.get_device_timezone()
if timezone:
self.log.debug("Identified local phone timezone: %s", timezone)
return timezone
self.log.warning(
"Could not find or determine local device timezone. "
"Some timestamps and timeline data may be incorrect."
)
return None
def _get_file_content(self, file_path):
if self.archive:
handle = self.archive.open(file_path)

View File

@@ -6,6 +6,11 @@
import datetime
import json
import logging
try:
import zoneinfo
except ImportError:
from backports import zoneinfo
from typing import Optional, Union
from mvt.android.modules.androidqf.base import AndroidQFModule
@@ -106,6 +111,20 @@ class Files(AndroidQFModule):
# TODO: adds SHA1 and MD5 when available in MVT
def run(self) -> None:
if timezone := self._get_device_timezone():
try:
device_timezone = zoneinfo.ZoneInfo(timezone)
except zoneinfo.ZoneInfoNotFoundError:
self.log.warning("Device timezone '%s' not found, using UTC", timezone)
device_timezone = datetime.timezone.utc
else:
self.log.warning("Unable to determine device timezone, using UTC")
try:
device_timezone = zoneinfo.ZoneInfo("UTC")
except zoneinfo.ZoneInfoNotFoundError:
# Fallback for Windows systems where zoneinfo might not have UTC
device_timezone = datetime.timezone.utc
for file in self._get_files_by_pattern("*/files.json"):
rawdata = self._get_file_content(file).decode("utf-8", errors="ignore")
try:
@@ -120,11 +139,18 @@ class Files(AndroidQFModule):
for file_data in data:
for ts in ["access_time", "changed_time", "modified_time"]:
if ts in file_data:
file_data[ts] = convert_datetime_to_iso(
datetime.datetime.fromtimestamp(
file_data[ts], tz=datetime.timezone.utc
)
utc_timestamp = datetime.datetime.fromtimestamp(
file_data[ts], tz=datetime.timezone.utc
)
# Convert the UTC timestamp to local tiem on Android device's local timezone
local_timestamp = utc_timestamp.astimezone(device_timezone)
# HACK: We only output the UTC timestamp in convert_datetime_to_iso, we
# set the timestamp timezone to UTC, to avoid the timezone conversion again.
local_timestamp = local_timestamp.replace(
tzinfo=datetime.timezone.utc
)
file_data[ts] = convert_datetime_to_iso(local_timestamp)
self.results.append(file_data)

View File

@@ -0,0 +1,65 @@
# Mobile Verification Toolkit (MVT)
# Copyright (c) 2021-2023 The MVT 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 os
import datetime
import logging
from typing import Optional
from mvt.common.utils import convert_datetime_to_iso
from .base import AndroidQFModule
from mvt.android.artifacts.file_timestamps import FileTimestampsArtifact
class LogsFileTimestamps(FileTimestampsArtifact, AndroidQFModule):
"""This module extracts records from battery daily updates."""
slug = "logfile_timestamps"
def __init__(
self,
file_path: Optional[str] = None,
target_path: Optional[str] = None,
results_path: Optional[str] = None,
module_options: Optional[dict] = None,
log: logging.Logger = logging.getLogger(__name__),
results: Optional[list] = None,
) -> None:
super().__init__(
file_path=file_path,
target_path=target_path,
results_path=results_path,
module_options=module_options,
log=log,
results=results,
)
def _get_file_modification_time(self, file_path: str) -> dict:
if self.archive:
file_timetuple = self.archive.getinfo(file_path).date_time
return datetime.datetime(*file_timetuple)
else:
file_stat = os.stat(os.path.join(self.parent_path, file_path))
return datetime.datetime.fromtimestamp(file_stat.st_mtime)
def run(self) -> None:
filesystem_files = self._get_files_by_pattern("*/logs/*")
self.results = []
for file in filesystem_files:
# Only the modification time is available in the zip file metadata.
# The timezone is the local timezone of the machine the phone.
modification_time = self._get_file_modification_time(file)
self.results.append(
{
"path": file,
"modified_time": convert_datetime_to_iso(modification_time),
}
)
self.log.info(
"Extracted a total of %d filesystem timestamps from AndroidQF logs directory.",
len(self.results),
)

View File

@@ -3,10 +3,11 @@
# 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 rich.prompt import Prompt
from mvt.common.config import settings
MVT_ANDROID_BACKUP_PASSWORD = "MVT_ANDROID_BACKUP_PASSWORD"
@@ -16,24 +17,24 @@ def cli_load_android_backup_password(log, backup_password):
Used in MVT CLI command parsers.
"""
password_from_env = os.environ.get(MVT_ANDROID_BACKUP_PASSWORD, None)
password_from_env_or_config = settings.ANDROID_BACKUP_PASSWORD
if backup_password:
log.info(
"Your password may be visible in the process table because it "
"was supplied on the command line!"
)
if password_from_env:
if password_from_env_or_config:
log.info(
"Ignoring %s environment variable, using --backup-password argument instead",
MVT_ANDROID_BACKUP_PASSWORD,
"MVT_ANDROID_BACKUP_PASSWORD",
)
return backup_password
elif password_from_env:
elif password_from_env_or_config:
log.info(
"Using backup password from %s environment variable",
MVT_ANDROID_BACKUP_PASSWORD,
"Using backup password from %s environment variable or config file",
"MVT_ANDROID_BACKUP_PASSWORD",
)
return password_from_env
return password_from_env_or_config
def prompt_or_load_android_backup_password(log, module_options):

View File

@@ -14,6 +14,8 @@ from .packages import Packages
from .platform_compat import PlatformCompat
from .receivers import Receivers
from .adb_state import DumpsysADBState
from .fs_timestamps import BugReportTimestamps
from .tombstones import Tombstones
BUGREPORT_MODULES = [
Accessibility,
@@ -27,4 +29,6 @@ BUGREPORT_MODULES = [
PlatformCompat,
Receivers,
DumpsysADBState,
BugReportTimestamps,
Tombstones,
]

View File

@@ -2,10 +2,11 @@
# Copyright (c) 2021-2023 The MVT Authors.
# See the file 'LICENSE' for usage and copying permissions, or find a copy at
# https://github.com/mvt-project/mvt/blob/main/LICENSE
import datetime
import fnmatch
import logging
import os
from typing import List, Optional
from zipfile import ZipFile
@@ -91,3 +92,11 @@ class BugReportModule(MVTModule):
return None
return self._get_file_content(dumpstate_logs[0])
def _get_file_modification_time(self, file_path: str) -> dict:
if self.zip_archive:
file_timetuple = self.zip_archive.getinfo(file_path).date_time
return datetime.datetime(*file_timetuple)
else:
file_stat = os.stat(os.path.join(self.extract_path, file_path))
return datetime.datetime.fromtimestamp(file_stat.st_mtime)

View File

@@ -0,0 +1,55 @@
# Mobile Verification Toolkit (MVT)
# Copyright (c) 2021-2023 The MVT 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 logging
from typing import Optional
from mvt.common.utils import convert_datetime_to_iso
from .base import BugReportModule
from mvt.android.artifacts.file_timestamps import FileTimestampsArtifact
class BugReportTimestamps(FileTimestampsArtifact, BugReportModule):
"""This module extracts records from battery daily updates."""
slug = "bugreport_timestamps"
def __init__(
self,
file_path: Optional[str] = None,
target_path: Optional[str] = None,
results_path: Optional[str] = None,
module_options: Optional[dict] = None,
log: logging.Logger = logging.getLogger(__name__),
results: Optional[list] = None,
) -> None:
super().__init__(
file_path=file_path,
target_path=target_path,
results_path=results_path,
module_options=module_options,
log=log,
results=results,
)
def run(self) -> None:
filesystem_files = self._get_files_by_pattern("FS/*")
self.results = []
for file in filesystem_files:
# Only the modification time is available in the zip file metadata.
# The timezone is the local timezone of the machine the phone.
modification_time = self._get_file_modification_time(file)
self.results.append(
{
"path": file,
"modified_time": convert_datetime_to_iso(modification_time),
}
)
self.log.info(
"Extracted a total of %d filesystem timestamps from bugreport.",
len(self.results),
)

View File

@@ -0,0 +1,64 @@
# Mobile Verification Toolkit (MVT)
# Copyright (c) 2021-2023 The MVT 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 logging
from typing import Optional
from mvt.android.artifacts.tombstone_crashes import TombstoneCrashArtifact
from .base import BugReportModule
class Tombstones(TombstoneCrashArtifact, BugReportModule):
"""This module extracts records from battery daily updates."""
slug = "tombstones"
def __init__(
self,
file_path: Optional[str] = None,
target_path: Optional[str] = None,
results_path: Optional[str] = None,
module_options: Optional[dict] = None,
log: logging.Logger = logging.getLogger(__name__),
results: Optional[list] = None,
) -> None:
super().__init__(
file_path=file_path,
target_path=target_path,
results_path=results_path,
module_options=module_options,
log=log,
results=results,
)
def run(self) -> None:
tombstone_files = self._get_files_by_pattern("*/tombstone_*")
if not tombstone_files:
self.log.error(
"Unable to find any tombstone files. "
"Did you provide a valid bugreport archive?"
)
return
for tombstone_file in sorted(tombstone_files):
tombstone_filename = tombstone_file.split("/")[-1]
modification_time = self._get_file_modification_time(tombstone_file)
tombstone_data = self._get_file_content(tombstone_file)
try:
if tombstone_file.endswith(".pb"):
self.parse_protobuf(
tombstone_filename, modification_time, tombstone_data
)
else:
self.parse(tombstone_filename, modification_time, tombstone_data)
except ValueError as e:
# Catch any exceptions raised during parsing or validation.
self.log.error(f"Error parsing tombstone file {tombstone_file}: {e}")
self.log.info(
"Extracted a total of %d tombstone files",
len(self.results),
)

View File

@@ -231,6 +231,7 @@ def parse_sms_file(data):
entry.pop("mms_body")
body = entry.get("body", None)
message_links = None
if body:
message_links = check_for_links(entry["body"])

View File

@@ -0,0 +1,195 @@
// tombstone.proto file from Android source
// Src: https://android.googlesource.com/platform/system/core/+/refs/heads/main/debuggerd/proto/tombstone.proto
//
// Protobuf definition for Android tombstones.
//
// An app can get hold of these for any `REASON_CRASH_NATIVE` instance of
// `android.app.ApplicationExitInfo`.
//
// https://developer.android.com/reference/android/app/ApplicationExitInfo#getTraceInputStream()
//
syntax = "proto3";
option java_package = "com.android.server.os";
option java_outer_classname = "TombstoneProtos";
// NOTE TO OEMS:
// If you add custom fields to this proto, do not use numbers in the reserved range.
message CrashDetail {
bytes name = 1;
bytes data = 2;
reserved 3 to 999;
}
message StackHistoryBufferEntry {
BacktraceFrame addr = 1;
uint64 fp = 2;
uint64 tag = 3;
reserved 4 to 999;
}
message StackHistoryBuffer {
uint64 tid = 1;
repeated StackHistoryBufferEntry entries = 2;
reserved 3 to 999;
}
message Tombstone {
Architecture arch = 1;
Architecture guest_arch = 24;
string build_fingerprint = 2;
string revision = 3;
string timestamp = 4;
uint32 pid = 5;
uint32 tid = 6;
uint32 uid = 7;
string selinux_label = 8;
repeated string command_line = 9;
// Process uptime in seconds.
uint32 process_uptime = 20;
Signal signal_info = 10;
string abort_message = 14;
repeated CrashDetail crash_details = 21;
repeated Cause causes = 15;
map<uint32, Thread> threads = 16;
map<uint32, Thread> guest_threads = 25;
repeated MemoryMapping memory_mappings = 17;
repeated LogBuffer log_buffers = 18;
repeated FD open_fds = 19;
uint32 page_size = 22;
bool has_been_16kb_mode = 23;
StackHistoryBuffer stack_history_buffer = 26;
reserved 27 to 999;
}
enum Architecture {
ARM32 = 0;
ARM64 = 1;
X86 = 2;
X86_64 = 3;
RISCV64 = 4;
NONE = 5;
reserved 6 to 999;
}
message Signal {
int32 number = 1;
string name = 2;
int32 code = 3;
string code_name = 4;
bool has_sender = 5;
int32 sender_uid = 6;
int32 sender_pid = 7;
bool has_fault_address = 8;
uint64 fault_address = 9;
// Note, may or may not contain the dump of the actual memory contents. Currently, on arm64, we
// only include metadata, and not the contents.
MemoryDump fault_adjacent_metadata = 10;
reserved 11 to 999;
}
message HeapObject {
uint64 address = 1;
uint64 size = 2;
uint64 allocation_tid = 3;
repeated BacktraceFrame allocation_backtrace = 4;
uint64 deallocation_tid = 5;
repeated BacktraceFrame deallocation_backtrace = 6;
}
message MemoryError {
enum Tool {
GWP_ASAN = 0;
SCUDO = 1;
reserved 2 to 999;
}
Tool tool = 1;
enum Type {
UNKNOWN = 0;
USE_AFTER_FREE = 1;
DOUBLE_FREE = 2;
INVALID_FREE = 3;
BUFFER_OVERFLOW = 4;
BUFFER_UNDERFLOW = 5;
reserved 6 to 999;
}
Type type = 2;
oneof location {
HeapObject heap = 3;
}
reserved 4 to 999;
}
message Cause {
string human_readable = 1;
oneof details {
MemoryError memory_error = 2;
}
reserved 3 to 999;
}
message Register {
string name = 1;
uint64 u64 = 2;
reserved 3 to 999;
}
message Thread {
int32 id = 1;
string name = 2;
repeated Register registers = 3;
repeated string backtrace_note = 7;
repeated string unreadable_elf_files = 9;
repeated BacktraceFrame current_backtrace = 4;
repeated MemoryDump memory_dump = 5;
int64 tagged_addr_ctrl = 6;
int64 pac_enabled_keys = 8;
reserved 10 to 999;
}
message BacktraceFrame {
uint64 rel_pc = 1;
uint64 pc = 2;
uint64 sp = 3;
string function_name = 4;
uint64 function_offset = 5;
string file_name = 6;
uint64 file_map_offset = 7;
string build_id = 8;
reserved 9 to 999;
}
message ArmMTEMetadata {
// One memory tag per granule (e.g. every 16 bytes) of regular memory.
bytes memory_tags = 1;
reserved 2 to 999;
}
message MemoryDump {
string register_name = 1;
string mapping_name = 2;
uint64 begin_address = 3;
bytes memory = 4;
oneof metadata {
ArmMTEMetadata arm_mte_metadata = 6;
}
reserved 5, 7 to 999;
}
message MemoryMapping {
uint64 begin_address = 1;
uint64 end_address = 2;
uint64 offset = 3;
bool read = 4;
bool write = 5;
bool execute = 6;
string mapping_name = 7;
string build_id = 8;
uint64 load_bias = 9;
reserved 10 to 999;
}
message FD {
int32 fd = 1;
string path = 2;
string owner = 3;
uint64 tag = 4;
reserved 5 to 999;
}
message LogBuffer {
string name = 1;
repeated LogMessage logs = 2;
reserved 3 to 999;
}
message LogMessage {
string timestamp = 1;
uint32 pid = 2;
uint32 tid = 3;
uint32 priority = 4;
string tag = 5;
string message = 6;
reserved 7 to 999;
}

View File

@@ -0,0 +1,208 @@
# Generated by the protocol buffer compiler. DO NOT EDIT!
# sources: tombstone.proto
# plugin: python-betterproto
from dataclasses import dataclass
from typing import Dict, List
import betterproto
class Architecture(betterproto.Enum):
ARM32 = 0
ARM64 = 1
X86 = 2
X86_64 = 3
RISCV64 = 4
NONE = 5
class MemoryErrorTool(betterproto.Enum):
GWP_ASAN = 0
SCUDO = 1
class MemoryErrorType(betterproto.Enum):
UNKNOWN = 0
USE_AFTER_FREE = 1
DOUBLE_FREE = 2
INVALID_FREE = 3
BUFFER_OVERFLOW = 4
BUFFER_UNDERFLOW = 5
@dataclass
class CrashDetail(betterproto.Message):
"""
NOTE TO OEMS: If you add custom fields to this proto, do not use numbers in
the reserved range.
"""
name: bytes = betterproto.bytes_field(1)
data: bytes = betterproto.bytes_field(2)
@dataclass
class StackHistoryBufferEntry(betterproto.Message):
addr: "BacktraceFrame" = betterproto.message_field(1)
fp: int = betterproto.uint64_field(2)
tag: int = betterproto.uint64_field(3)
@dataclass
class StackHistoryBuffer(betterproto.Message):
tid: int = betterproto.uint64_field(1)
entries: List["StackHistoryBufferEntry"] = betterproto.message_field(2)
@dataclass
class Tombstone(betterproto.Message):
arch: "Architecture" = betterproto.enum_field(1)
guest_arch: "Architecture" = betterproto.enum_field(24)
build_fingerprint: str = betterproto.string_field(2)
revision: str = betterproto.string_field(3)
timestamp: str = betterproto.string_field(4)
pid: int = betterproto.uint32_field(5)
tid: int = betterproto.uint32_field(6)
uid: int = betterproto.uint32_field(7)
selinux_label: str = betterproto.string_field(8)
command_line: List[str] = betterproto.string_field(9)
# Process uptime in seconds.
process_uptime: int = betterproto.uint32_field(20)
signal_info: "Signal" = betterproto.message_field(10)
abort_message: str = betterproto.string_field(14)
crash_details: List["CrashDetail"] = betterproto.message_field(21)
causes: List["Cause"] = betterproto.message_field(15)
threads: Dict[int, "Thread"] = betterproto.map_field(
16, betterproto.TYPE_UINT32, betterproto.TYPE_MESSAGE
)
guest_threads: Dict[int, "Thread"] = betterproto.map_field(
25, betterproto.TYPE_UINT32, betterproto.TYPE_MESSAGE
)
memory_mappings: List["MemoryMapping"] = betterproto.message_field(17)
log_buffers: List["LogBuffer"] = betterproto.message_field(18)
open_fds: List["FD"] = betterproto.message_field(19)
page_size: int = betterproto.uint32_field(22)
has_been_16kb_mode: bool = betterproto.bool_field(23)
stack_history_buffer: "StackHistoryBuffer" = betterproto.message_field(26)
@dataclass
class Signal(betterproto.Message):
number: int = betterproto.int32_field(1)
name: str = betterproto.string_field(2)
code: int = betterproto.int32_field(3)
code_name: str = betterproto.string_field(4)
has_sender: bool = betterproto.bool_field(5)
sender_uid: int = betterproto.int32_field(6)
sender_pid: int = betterproto.int32_field(7)
has_fault_address: bool = betterproto.bool_field(8)
fault_address: int = betterproto.uint64_field(9)
# Note, may or may not contain the dump of the actual memory contents.
# Currently, on arm64, we only include metadata, and not the contents.
fault_adjacent_metadata: "MemoryDump" = betterproto.message_field(10)
@dataclass
class HeapObject(betterproto.Message):
address: int = betterproto.uint64_field(1)
size: int = betterproto.uint64_field(2)
allocation_tid: int = betterproto.uint64_field(3)
allocation_backtrace: List["BacktraceFrame"] = betterproto.message_field(4)
deallocation_tid: int = betterproto.uint64_field(5)
deallocation_backtrace: List["BacktraceFrame"] = betterproto.message_field(6)
@dataclass
class MemoryError(betterproto.Message):
tool: "MemoryErrorTool" = betterproto.enum_field(1)
type: "MemoryErrorType" = betterproto.enum_field(2)
heap: "HeapObject" = betterproto.message_field(3, group="location")
@dataclass
class Cause(betterproto.Message):
human_readable: str = betterproto.string_field(1)
memory_error: "MemoryError" = betterproto.message_field(2, group="details")
@dataclass
class Register(betterproto.Message):
name: str = betterproto.string_field(1)
u64: int = betterproto.uint64_field(2)
@dataclass
class Thread(betterproto.Message):
id: int = betterproto.int32_field(1)
name: str = betterproto.string_field(2)
registers: List["Register"] = betterproto.message_field(3)
backtrace_note: List[str] = betterproto.string_field(7)
unreadable_elf_files: List[str] = betterproto.string_field(9)
current_backtrace: List["BacktraceFrame"] = betterproto.message_field(4)
memory_dump: List["MemoryDump"] = betterproto.message_field(5)
tagged_addr_ctrl: int = betterproto.int64_field(6)
pac_enabled_keys: int = betterproto.int64_field(8)
@dataclass
class BacktraceFrame(betterproto.Message):
rel_pc: int = betterproto.uint64_field(1)
pc: int = betterproto.uint64_field(2)
sp: int = betterproto.uint64_field(3)
function_name: str = betterproto.string_field(4)
function_offset: int = betterproto.uint64_field(5)
file_name: str = betterproto.string_field(6)
file_map_offset: int = betterproto.uint64_field(7)
build_id: str = betterproto.string_field(8)
@dataclass
class ArmMTEMetadata(betterproto.Message):
# One memory tag per granule (e.g. every 16 bytes) of regular memory.
memory_tags: bytes = betterproto.bytes_field(1)
@dataclass
class MemoryDump(betterproto.Message):
register_name: str = betterproto.string_field(1)
mapping_name: str = betterproto.string_field(2)
begin_address: int = betterproto.uint64_field(3)
memory: bytes = betterproto.bytes_field(4)
arm_mte_metadata: "ArmMTEMetadata" = betterproto.message_field(6, group="metadata")
@dataclass
class MemoryMapping(betterproto.Message):
begin_address: int = betterproto.uint64_field(1)
end_address: int = betterproto.uint64_field(2)
offset: int = betterproto.uint64_field(3)
read: bool = betterproto.bool_field(4)
write: bool = betterproto.bool_field(5)
execute: bool = betterproto.bool_field(6)
mapping_name: str = betterproto.string_field(7)
build_id: str = betterproto.string_field(8)
load_bias: int = betterproto.uint64_field(9)
@dataclass
class FD(betterproto.Message):
fd: int = betterproto.int32_field(1)
path: str = betterproto.string_field(2)
owner: str = betterproto.string_field(3)
tag: int = betterproto.uint64_field(4)
@dataclass
class LogBuffer(betterproto.Message):
name: str = betterproto.string_field(1)
logs: List["LogMessage"] = betterproto.message_field(2)
@dataclass
class LogMessage(betterproto.Message):
timestamp: str = betterproto.string_field(1)
pid: int = betterproto.uint32_field(2)
tid: int = betterproto.uint32_field(3)
priority: int = betterproto.uint32_field(4)
tag: str = betterproto.string_field(5)
message: str = betterproto.string_field(6)

View File

@@ -65,6 +65,10 @@ class CmdCheckIOCS(Command):
m = iocs_module.from_json(
file_path, log=logging.getLogger(iocs_module.__module__)
)
if not m:
log.warning("No result from this module, skipping it")
continue
if self.iocs.total_ioc_count > 0:
m.indicators = self.iocs
m.indicators.log = m.log

View File

@@ -17,6 +17,7 @@ from mvt.common.utils import (
generate_hashes_from_path,
get_sha256_from_file_path,
)
from mvt.common.config import settings
from mvt.common.version import MVT_VERSION
@@ -100,15 +101,25 @@ class Command:
if not self.results_path:
return
# We use local timestamps in the timeline on Android as many
# logs do not contain timezone information.
if type(self).__name__.startswith("CmdAndroid"):
is_utc = False
else:
is_utc = True
if len(self.timeline) > 0:
save_timeline(
self.timeline, os.path.join(self.results_path, "timeline.csv")
self.timeline,
os.path.join(self.results_path, "timeline.csv"),
is_utc=is_utc,
)
if len(self.timeline_detected) > 0:
save_timeline(
self.timeline_detected,
os.path.join(self.results_path, "timeline_detected.csv"),
is_utc=is_utc,
)
def _store_info(self) -> None:
@@ -132,7 +143,7 @@ class Command:
if ioc_file_path and ioc_file_path not in info["ioc_files"]:
info["ioc_files"].append(ioc_file_path)
if self.target_path and (os.environ.get("MVT_HASH_FILES") or self.hashes):
if self.target_path and (settings.HASH_FILES or self.hashes):
self.generate_hashes()
info["hashes"] = self.hash_values
@@ -141,7 +152,7 @@ class Command:
with open(info_path, "w+", encoding="utf-8") as handle:
json.dump(info, handle, indent=4)
if self.target_path and (os.environ.get("MVT_HASH_FILES") or self.hashes):
if self.target_path and (settings.HASH_FILES or self.hashes):
info_hash = get_sha256_from_file_path(info_path)
self.log.info('Reference hash of the info.json file: "%s"', info_hash)

105
src/mvt/common/config.py Normal file
View File

@@ -0,0 +1,105 @@
import os
import yaml
import json
from typing import Tuple, Type, Optional
from appdirs import user_config_dir
from pydantic import AnyHttpUrl, Field
from pydantic_settings import (
BaseSettings,
InitSettingsSource,
PydanticBaseSettingsSource,
SettingsConfigDict,
YamlConfigSettingsSource,
)
MVT_CONFIG_FOLDER = user_config_dir("mvt")
MVT_CONFIG_PATH = os.path.join(MVT_CONFIG_FOLDER, "config.yaml")
class MVTSettings(BaseSettings):
model_config = SettingsConfigDict(
env_prefix="MVT_",
env_nested_delimiter="_",
extra="ignore",
nested_model_default_partial_updates=True,
)
# Allow to decided if want to load environment variables
load_env: bool = Field(True, exclude=True)
# General settings
PYPI_UPDATE_URL: AnyHttpUrl = Field(
"https://pypi.org/pypi/mvt/json",
validate_default=False,
)
NETWORK_ACCESS_ALLOWED: bool = True
NETWORK_TIMEOUT: int = 15
# Command default settings, all can be specified by MVT_ prefixed environment variables too.
IOS_BACKUP_PASSWORD: Optional[str] = Field(
None, description="Default password to use to decrypt iOS backups"
)
ANDROID_BACKUP_PASSWORD: Optional[str] = Field(
None, description="Default password to use to decrypt Android backups"
)
STIX2: Optional[str] = Field(
None, description="List of directories where STIX2 files are stored"
)
VT_API_KEY: Optional[str] = Field(
None, description="API key to use for VirusTotal lookups"
)
PROFILE: bool = Field(False, description="Profile the execution of MVT modules")
HASH_FILES: bool = Field(False, description="Should MVT hash output files")
@classmethod
def settings_customise_sources(
cls,
settings_cls: Type[BaseSettings],
init_settings: InitSettingsSource,
env_settings: PydanticBaseSettingsSource,
dotenv_settings: PydanticBaseSettingsSource,
file_secret_settings: PydanticBaseSettingsSource,
) -> Tuple[PydanticBaseSettingsSource, ...]:
sources = (
YamlConfigSettingsSource(settings_cls, MVT_CONFIG_PATH),
init_settings,
)
# Load env variables if enabled
if init_settings.init_kwargs.get("load_env", True):
sources = (env_settings,) + sources
return sources
def save_settings(
self,
) -> None:
"""
Save the current settings to a file.
"""
if not os.path.isdir(MVT_CONFIG_FOLDER):
os.makedirs(MVT_CONFIG_FOLDER)
# Dump the settings to the YAML file
model_serializable = json.loads(self.model_dump_json(exclude_defaults=True))
with open(MVT_CONFIG_PATH, "w") as config_file:
config_file.write(yaml.dump(model_serializable, default_flow_style=False))
@classmethod
def initialise(cls) -> "MVTSettings":
"""
Initialise the settings file.
We first initialise the settings (without env variable) and then persist
them to file. This way we can update the config file with the default values.
Afterwards we load the settings again, this time including the env variables.
"""
# Set invalid env prefix to avoid loading env variables.
settings = MVTSettings(load_env=False)
settings.save_settings()
# Load the settings again with any ENV variables.
settings = MVTSettings(load_env=True)
return settings
settings = MVTSettings.initialise()

View File

@@ -14,6 +14,7 @@ import ahocorasick
from appdirs import user_data_dir
from .url import URL
from .config import settings
MVT_DATA_FOLDER = user_data_dir("mvt")
MVT_INDICATORS_FOLDER = os.path.join(MVT_DATA_FOLDER, "indicators")
@@ -41,12 +42,12 @@ class Indicators:
def _check_stix2_env_variable(self) -> None:
"""
Checks if a variable MVT_STIX2 contains path to a STIX file. Also recursively searches through dirs in MVT_STIX2
Checks if MVT_STIX2 setting or environment variable contains path to a STIX file. Also recursively searches through dirs in MVT_STIX2
"""
if "MVT_STIX2" not in os.environ:
if not settings.STIX2:
return
paths = os.environ["MVT_STIX2"].split(":")
paths = settings.STIX2.split(":")
for path in paths:
if os.path.isfile(path) and path.lower().endswith(".stix2"):
self.parse_stix2(path)
@@ -653,7 +654,8 @@ class Indicators:
return None
for ioc in self.get_iocs("processes"):
parts = file_path.split("/")
# Use os-agnostic path splitting to handle both Windows (\) and Unix (/) separators
parts = file_path.replace("\\", "/").split("/")
if ioc["value"] in parts:
self.log.warning(
"Found known suspicious process name mentioned in file at "

View File

@@ -29,7 +29,7 @@ def check_updates() -> None:
if latest_version:
rich_print(
f"\t\t[bold]Version {latest_version} is available! "
"Upgrade mvt with `pip3 install -U mvt`[/bold]"
"Upgrade mvt with `pip3 install -U mvt` or with `pipx upgrade mvt`[/bold]"
)
# Then we check for indicators files updates.

View File

@@ -69,10 +69,14 @@ class MVTModule:
@classmethod
def from_json(cls, json_path: str, log: logging.Logger):
with open(json_path, "r", encoding="utf-8") as handle:
results = json.load(handle)
if log:
log.info('Loaded %d results from "%s"', len(results), json_path)
return cls(results=results, log=log)
try:
results = json.load(handle)
if log:
log.info('Loaded %d results from "%s"', len(results), json_path)
return cls(results=results, log=log)
except json.decoder.JSONDecodeError as err:
log.error('Error to decode the json "%s" file: "%s"', json_path, err)
return None
@classmethod
def get_slug(cls) -> str:
@@ -227,7 +231,7 @@ def run_module(module: MVTModule) -> None:
module.save_to_json()
def save_timeline(timeline: list, timeline_path: str) -> None:
def save_timeline(timeline: list, timeline_path: str, is_utc: bool = True) -> None:
"""Save the timeline in a csv file.
:param timeline: List of records to order and store
@@ -238,7 +242,12 @@ def save_timeline(timeline: list, timeline_path: str) -> None:
csvoutput = csv.writer(
handle, delimiter=",", quotechar='"', quoting=csv.QUOTE_ALL, escapechar="\\"
)
csvoutput.writerow(["UTC Timestamp", "Plugin", "Event", "Description"])
if is_utc:
timestamp_header = "UTC Timestamp"
else:
timestamp_header = "Device Local Timestamp"
csvoutput.writerow([timestamp_header, "Plugin", "Event", "Description"])
for event in sorted(
timeline, key=lambda x: x["timestamp"] if x["timestamp"] is not None else ""

View File

@@ -14,6 +14,7 @@ from packaging import version
from .indicators import MVT_DATA_FOLDER, MVT_INDICATORS_FOLDER
from .version import MVT_VERSION
from .config import settings
log = logging.getLogger(__name__)
@@ -23,7 +24,7 @@ INDICATORS_CHECK_FREQUENCY = 12
class MVTUpdates:
def check(self) -> str:
res = requests.get("https://pypi.org/pypi/mvt/json", timeout=15)
res = requests.get(settings.PYPI_UPDATE_URL, timeout=15)
data = res.json()
latest_version = data.get("info", {}).get("version", "")

View File

@@ -13,6 +13,7 @@ import re
from typing import Any, Iterator, Union
from rich.logging import RichHandler
from mvt.common.config import settings
class CustomJSONEncoder(json.JSONEncoder):
@@ -256,7 +257,7 @@ def set_verbose_logging(verbose: bool = False):
def exec_or_profile(module, globals, locals):
"""Hook for profiling MVT modules"""
if int(os.environ.get("MVT_PROFILE", False)):
if settings.PROFILE:
cProfile.runctx(module, globals, locals)
else:
exec(module, globals, locals)

View File

@@ -3,4 +3,4 @@
# Use of this software is governed by the MVT License 1.1 that can be found at
# https://license.mvt.re/1.1/
MVT_VERSION = "2.6.0"
MVT_VERSION = "2.6.1"

View File

@@ -891,6 +891,10 @@
"version": "15.8.2",
"build": "19H384"
},
{
"version": "15.8.4",
"build": "19H390"
},
{
"build": "20A362",
"version": "16.0"
@@ -992,6 +996,10 @@
"version": "16.7.8",
"build": "20H343"
},
{
"version": "16.7.11",
"build": "20H360"
},
{
"version": "17.0",
"build": "21A327"
@@ -1076,6 +1084,10 @@
"version": "17.6.1",
"build": "21G101"
},
{
"version": "17.7.7",
"build": "21H433"
},
{
"version": "18",
"build": "22A3354"
@@ -1099,5 +1111,29 @@
{
"version": "18.2.1",
"build": "22C161"
},
{
"version": "18.3",
"build": "22D63"
},
{
"version": "18.3.1",
"build": "22D72"
},
{
"version": "18.4",
"build": "22E240"
},
{
"version": "18.4.1",
"build": "22E252"
},
{
"version": "18.5",
"build": "22F76"
},
{
"version": "18.6",
"build": "22G86"
}
]

View File

@@ -43,6 +43,8 @@ class GlobalPreferences(IOSExtraction):
self.log.warning("Lockdown mode enabled")
else:
self.log.warning("Lockdown mode disabled")
return
self.log.warning("Lockdown mode disabled")
def process_file(self, file_path: str) -> None:
with open(file_path, "rb") as handle:

View File

@@ -95,14 +95,17 @@ class SafariBrowserState(IOSExtraction):
)
except sqlite3.OperationalError:
# Old version iOS <12 likely
cur.execute(
try:
cur.execute(
"""
SELECT
title, url, user_visible_url, last_viewed_time, session_data
FROM tabs
ORDER BY last_viewed_time;
"""
SELECT
title, url, user_visible_url, last_viewed_time, session_data
FROM tabs
ORDER BY last_viewed_time;
"""
)
)
except sqlite3.OperationalError as e:
self.log.error(f"Error executing query: {e}")
for row in cur:
session_entries = []

View File

@@ -116,13 +116,16 @@ class TCC(IOSExtraction):
)
db_version = "v2"
except sqlite3.OperationalError:
cur.execute(
"""SELECT
service, client, client_type, allowed,
prompt_count
FROM access;"""
)
db_version = "v1"
try:
cur.execute(
"""SELECT
service, client, client_type, allowed,
prompt_count
FROM access;"""
)
db_version = "v1"
except sqlite3.OperationalError as e:
self.log.error(f"Error parsing TCC database: {e}")
for row in cur:
service = row[0]

View File

@@ -6,3 +6,4 @@ pytest-mock>=3.14.0
stix2>=3.0.1
ruff>=0.1.6
mypy>=1.7.1
betterproto[compiler]

View File

@@ -29,3 +29,28 @@ class TestDumpsysADBArtifact:
user_key["fingerprint"] == "F0:A1:3D:8C:B3:F4:7B:09:9F:EE:8B:D8:38:2E:BD:C6"
)
assert user_key["user"] == "user@linux"
def test_parsing_adb_xml(self):
da_adb = DumpsysADBArtifact()
file = get_artifact("android_data/dumpsys_adb_xml.txt")
with open(file, "rb") as f:
data = f.read()
da_adb.parse(data)
assert len(da_adb.results) == 1
adb_data = da_adb.results[0]
assert "user_keys" in adb_data
assert len(adb_data["user_keys"]) == 1
# Check key and fingerprint parsed successfully.
expected_fingerprint = "F0:0B:27:08:E3:68:7B:FA:4C:79:A2:B4:BF:0E:CF:70"
user_key = adb_data["user_keys"][0]
user_key["fingerprint"] == expected_fingerprint
assert user_key["user"] == "user@laptop"
key_store_entry = adb_data["keystore"][0]
assert key_store_entry["user"] == "user@laptop"
assert key_store_entry["fingerprint"] == expected_fingerprint
assert key_store_entry["last_connected"] == "1628501829898"

View File

@@ -43,5 +43,21 @@ class TestDumpsysAppopsArtifact:
ind.ioc_collections[0]["app_ids"].append("com.facebook.katana")
da.indicators = ind
assert len(da.detected) == 0
da.check_indicators()
assert len(da.detected) == 1
detected_by_ioc = [
detected for detected in da.detected if detected.get("matched_indicator")
]
detected_by_permission_heuristic = [
detected
for detected in da.detected
if all(
[
perm["name"] == "REQUEST_INSTALL_PACKAGES"
for perm in detected["permissions"]
]
)
]
assert len(da.detected) == 3
assert len(detected_by_ioc) == 1
assert len(detected_by_permission_heuristic) == 2

View File

@@ -0,0 +1,67 @@
# Mobile Verification Toolkit (MVT)
# Copyright (c) 2021-2023 The MVT 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 os
import datetime
import pytest
from mvt.android.artifacts.tombstone_crashes import TombstoneCrashArtifact
from ..utils import get_artifact
class TestTombstoneCrashArtifact:
def test_tombtone_process_parsing(self):
tombstone_artifact = TombstoneCrashArtifact()
artifact_path = "android_data/tombstone_process.txt"
file = get_artifact(artifact_path)
with open(file, "rb") as f:
data = f.read()
# Pass the file name and timestamp to the parse method
file_name = os.path.basename(artifact_path)
file_timestamp = datetime.datetime(2023, 4, 12, 12, 32, 40, 518290)
tombstone_artifact.parse(file_name, file_timestamp, data)
assert len(tombstone_artifact.results) == 1
self.validate_tombstone_result(tombstone_artifact.results[0])
def test_tombstone_pb_process_parsing(self):
tombstone_artifact = TombstoneCrashArtifact()
artifact_path = "android_data/tombstone_process.pb"
file = get_artifact(artifact_path)
with open(file, "rb") as f:
data = f.read()
file_name = os.path.basename(artifact_path)
file_timestamp = datetime.datetime(2023, 4, 12, 12, 32, 40, 518290)
tombstone_artifact.parse_protobuf(file_name, file_timestamp, data)
assert len(tombstone_artifact.results) == 1
self.validate_tombstone_result(tombstone_artifact.results[0])
@pytest.mark.skip(reason="Not implemented yet")
def test_tombtone_kernel_parsing(self):
tombstone_artifact = TombstoneCrashArtifact()
file = get_artifact("android_data/tombstone_kernel.txt")
with open(file, "rb") as f:
data = f.read()
tombstone_artifact.parse_text(data)
assert len(tombstone_artifact.results) == 1
def validate_tombstone_result(self, tombstone_result: dict):
assert tombstone_result.get("command_line") == [
"/vendor/bin/hw/android.hardware.media.c2@1.2-mediatek"
]
assert tombstone_result.get("uid") == 1046
assert tombstone_result.get("pid") == 25541
assert tombstone_result.get("process_name") == "mtk.ape.decoder"
# With Android logs we want to keep timestamps as device local time for consistency.
# We often don't know the time offset for a log entry and so can't convert everything to UTC.
# MVT should output the local time only:
# So original 2023-04-12 12:32:40.518290770+0200 -> 2023-04-12 12:32:40.000000
assert tombstone_result.get("timestamp") == "2023-04-12 12:32:40.518290"

View File

@@ -21,4 +21,9 @@ class TestDumpsysAppOpsModule:
run_module(m)
assert len(m.results) == 12
assert len(m.timeline) == 16
assert len(m.detected) == 0
detected_by_ioc = [
detected for detected in m.detected if detected.get("matched_indicator")
]
assert len(m.detected) == 1
assert len(detected_by_ioc) == 0

View File

@@ -9,6 +9,7 @@ from pathlib import Path
from mvt.android.modules.bugreport.appops import Appops
from mvt.android.modules.bugreport.getprop import Getprop
from mvt.android.modules.bugreport.packages import Packages
from mvt.android.modules.bugreport.tombstones import Tombstones
from mvt.common.module import run_module
from ..utils import get_artifact_folder
@@ -33,7 +34,12 @@ class TestBugreportAnalysis:
m = self.launch_bug_report_module(Appops)
assert len(m.results) == 12
assert len(m.timeline) == 16
assert len(m.detected) == 0
detected_by_ioc = [
detected for detected in m.detected if detected.get("matched_indicator")
]
assert len(m.detected) == 1 # Hueristic detection for suspicious permissions
assert len(detected_by_ioc) == 0
def test_packages_module(self):
m = self.launch_bug_report_module(Packages)
@@ -49,3 +55,8 @@ class TestBugreportAnalysis:
def test_getprop_module(self):
m = self.launch_bug_report_module(Getprop)
assert len(m.results) == 0
def test_tombstones_modules(self):
m = self.launch_bug_report_module(Tombstones)
assert len(m.results) == 2
assert m.results[1]["pid"] == 3559

View File

@@ -0,0 +1,27 @@
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/a10eea/a10:10/.190711.020/A105:user/release-keys'
Revision: '5'
ABI: 'arm'
Timestamp: 2021-09-29 17:43:49+0200
pid: 9850, tid: 9893, name: UsbFfs-worker >>> /system/bin/adbd <<<
uid: 2000
signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
Abort message: 'Check failed: payload.size() <= bytes_left (payload.size()=99, bytes_left=51) '
r0 00000000 r1 000026a5 r2 00000006 r3 f11fad98
r4 f11fadac r5 f11fad90 r6 0000267a r7 0000016b
r8 f11fada8 r9 f11fad98 r10 f11fadc8 r11 f11fadb8
ip 000026a5 sp f11fad68 lr f20c23b7 pc f20c23ca
backtrace:
#00 pc 000603ca /apex/com.android.runtime/lib/bionic/libc.so (abort+166) (BuildId: 320fbdc2a1289fadd7dacae7f2eb77a3)
#01 pc 00007e23 /system/lib/libbase.so (android::base::DefaultAborter(char const*)+6) (BuildId: a28585ee446ea17e3e6fcf9c907fff2a)
#02 pc 0000855f /system/lib/libbase.so (android::base::LogMessage::~LogMessage()+406) (BuildId: a28585ee446ea17e3e6fcf9c907fff2a)
#03 pc 000309cf /system/lib/libadbd.so (UsbFfsConnection::ProcessRead(IoBlock*)+814) (BuildId: 3645b175977ae210c156a57b25dfa599)
#04 pc 00030459 /system/lib/libadbd.so (UsbFfsConnection::HandleRead(TransferId, long long)+84) (BuildId: 3645b175977ae210c156a57b25dfa599)
#05 pc 00030349 /system/lib/libadbd.so (UsbFfsConnection::ReadEvents()+92) (BuildId: 3645b175977ae210c156a57b25dfa599)
#06 pc 00030169 /system/lib/libadbd.so (_ZZN16UsbFfsConnection11StartWorkerEvENKUlvE_clEv+504) (BuildId: 3645b175977ae210c156a57b25dfa599)
#07 pc 0002ff53 /system/lib/libadbd.so (_ZNSt3__114__thread_proxyINS_5tupleIJNS_10unique_ptrINS_15__thread_structENS_14default_deleteIS3_EEEEZN16UsbFfsConnection11StartWorkerEvEUlvE_EEEEEPvSA_+26) (BuildId: 3645b175977ae210c156a57b25dfa599)
#08 pc 000a75b3 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+20) (BuildId: 320fbdc2a1289fadd7dacae7f2eb77a3)
#09 pc 00061b33 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30) (BuildId: 320fbdc2a1289fadd7dacae7f2eb77a3)

View File

@@ -0,0 +1,38 @@
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/a10eea/a10:11/RP1A.200720.012/A105:user/release-keys'
Revision: '5'
ABI: 'arm'
Timestamp: 2023-08-21 23:28:59-0400
pid: 3559, tid: 3568, name: tzts_daemon >>> /vendor/bin/tzts_daemon <<<
uid: 1000
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xe8b4d14c
r0 e8b4d14c r1 e8b4d14c r2 0000002b r3 00000004
r4 00000000 r5 e8b4d14c r6 00000000 r7 00000000
r8 e7ef78b0 r9 0000002b r10 e7ef7dad r11 e7ef7400
ip 00000000 sp e7ef7208 lr e89f4b01 pc e89c273a
backtrace:
#00 pc 0005f73a /apex/com.android.runtime/lib/bionic/libc.so (strlen_a15+54) (BuildId: fef5b751123147ea65bf3f4f798c9518)
#01 pc 00091afd /apex/com.android.runtime/lib/bionic/libc.so (__vfprintf+3364) (BuildId: fef5b751123147ea65bf3f4f798c9518)
#02 pc 000a68e5 /apex/com.android.runtime/lib/bionic/libc.so (vsnprintf+152) (BuildId: fef5b751123147ea65bf3f4f798c9518)
#03 pc 000051cf /system/lib/liblog.so (__android_log_vprint+74) (BuildId: 3fcead474cd0ecbdafb529ff176b0d13)
#04 pc 000012e8 /vendor/bin/tzts_daemon
memory near r0:
e8b4d12c -------- -------- -------- -------- ................
e8b4d13c -------- -------- -------- -------- ................
e8b4d14c -------- -------- -------- -------- ................
e8b4d15c -------- -------- -------- -------- ................
e8b4d16c -------- -------- -------- -------- ................
e8b4d17c -------- -------- -------- -------- ................
e8b4d18c -------- -------- -------- -------- ................
e8b4d19c -------- -------- -------- -------- ................
e8b4d1ac -------- -------- -------- -------- ................
e8b4d1bc -------- -------- -------- -------- ................
e8b4d1cc -------- -------- -------- -------- ................
e8b4d1dc -------- -------- -------- -------- ................
e8b4d1ec -------- -------- -------- -------- ................
e8b4d1fc -------- -------- -------- -------- ................
e8b4d20c -------- -------- -------- -------- ................
e8b4d21c -------- -------- -------- -------- ................

View File

@@ -0,0 +1,16 @@
-------------------------------------------------------------------------------
DUMP OF SERVICE adb:
ADB MANAGER STATE (dumpsys adb):
{
debugging_manager={
connected_to_adb=true
user_keys=QAAAAAcgbytJst31DsaSP7hn8QcBXKR9NPVPK9MZssFVSNIP user@laptop
keystore=<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<keyStore version="1">
<adbKey key="QAAAAAcgbytJst31DsaSP7hn8QcBXKR9NPVPK9MZssFVSNIP user@laptop" lastConnection="1628501829898" />
</keyStore>
}
}
--------- 0.012s was the duration of dumpsys adb, ending at: 2025-02-04 20:25:58

Binary file not shown.

View File

@@ -0,0 +1,987 @@
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'Redmi/rosemary_global/rosemary:12/SP1A.210812.016/V13.0.13.0.SKLMIXM:user/release-keys'
Revision: '0'
ABI: 'arm'
Timestamp: 2023-04-12 12:32:40.518290770+0200
Process uptime: 0s
Cmdline: /vendor/bin/hw/android.hardware.media.c2@1.2-mediatek
pid: 25541, tid: 21307, name: mtk.ape.decoder >>> /vendor/bin/hw/android.hardware.media.c2@1.2-mediatek <<<
uid: 1046
signal 0 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr --------
Cause: null pointer dereference
r0 0006ba86 r1 00000000 r2 00000000 r3 00000000
r4 f21d7508 r5 00000000 r6 00000000 r7 00000000
r8 f1f0a274 r9 00000006 r10 00000000 r11 00000000
ip f21d75e4 sp ee10de60 lr f1e84cff pc f1e9bd80
backtrace:
#00 pc 0004bd80 /apex/com.android.runtime/lib/bionic/libc.so (je_large_dalloc+32) (BuildId: c3f479705b82c55801158aefde571341)
#01 pc 00034cfb /apex/com.android.runtime/lib/bionic/libc.so (arena_dalloc_no_tcache+394) (BuildId: c3f479705b82c55801158aefde571341)
#02 pc 00031f89 /apex/com.android.runtime/lib/bionic/libc.so (je_free+1096) (BuildId: c3f479705b82c55801158aefde571341)
#03 pc 00005bad /vendor/lib/libcodec2_soft_mtk_apedec.so (android::C2SoftMtkApeDec::onRelease()+26) (BuildId: fe23de7ba01754c96011abbc14b8c520)
#04 pc 000067bf /vendor/lib/libcodec2_soft_common.so (android::SimpleC2Component::WorkHandler::onMessageReceived(android::sp<android::AMessage> const&)+806) (BuildId: 397c93a3912eca6ed50a7a7c7bfafa49)
#05 pc 0000f6e1 /apex/com.android.vndk.v31/lib/libstagefright_foundation.so (android::AHandler::deliverMessage(android::sp<android::AMessage> const&)+24) (BuildId: 855584cfc266442e6cd47e4665f4b072)
#06 pc 00011fa7 /apex/com.android.vndk.v31/lib/libstagefright_foundation.so (android::AMessage::deliver()+86) (BuildId: 855584cfc266442e6cd47e4665f4b072)
#07 pc 0000fe71 /apex/com.android.vndk.v31/lib/libstagefright_foundation.so (android::ALooper::loop()+516) (BuildId: 855584cfc266442e6cd47e4665f4b072)
#08 pc 0000d3af /apex/com.android.vndk.v31/lib/libutils.so (android::Thread::_threadLoop(void*)+302) (BuildId: 01cc528c610468531ef44927a06cdeb9)
#09 pc 0000ce67 /apex/com.android.vndk.v31/lib/libutils.so (thread_data_t::trampoline(thread_data_t const*)+254) (BuildId: 01cc528c610468531ef44927a06cdeb9)
#10 pc 000a8cc7 /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+40) (BuildId: c3f479705b82c55801158aefde571341)
#11 pc 00061ee5 /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30) (BuildId: c3f479705b82c55801158aefde571341)
memory near r4 ([anon:libc_malloc]):
f21d74e0 00000000 00000000 00000000 00000000 ................
f21d74f0 00000000 00000000 00000000 00000000 ................
f21d7500 00000001 00000000 01010002 00000000 ................
f21d7510 00000000 00000000 00000000 00000000 ................
f21d7520 00000078 00000000 00000000 00000001 x...............
f21d7530 00000000 00000001 00000000 00000001 ................
f21d7540 00000000 00000001 00000000 00000001 ................
f21d7550 00000000 00000001 00000000 00000001 ................
f21d7560 00000000 f1c00000 efb11040 f2000000 ........@.......
f21d7570 efb0bd40 f2400000 efb03f40 00000001 @.....@.@?......
f21d7580 00000000 00000001 00000000 00000001 ................
f21d7590 00000000 00000001 00000000 00000001 ................
f21d75a0 00000000 00000001 00000000 00000001 ................
f21d75b0 00000000 00000001 00000000 00000001 ................
f21d75c0 00000000 00000001 00000000 00000001 ................
f21d75d0 00000000 00000001 00000000 00000001 ................
memory near r8 ([anon:.bss]):
f1f0a250 00000000 00000000 00000000 00000000 ................
f1f0a260 00000000 00000000 ff8bc15b 00000000 ........[.......
f1f0a270 00000000 38b4f3d9 00000000 00000000 .......8........
f1f0a280 00000000 80000001 000063c5 00000000 .........c......
f1f0a290 00000000 efb00080 00000001 00000000 ................
f1f0a2a0 00000000 00000000 00000000 ff8bb84c ............L...
f1f0a2b0 00000000 00000000 00000000 00000000 ................
f1f0a2c0 00000000 00000000 00000000 00000000 ................
f1f0a2d0 00000000 00000000 00000003 00000000 ................
f1f0a2e0 00000000 00000002 00000002 00000030 ............0...
f1f0a2f0 00000000 efb002c0 00010000 00000000 ................
f1f0a300 80000000 00000000 00000001 f2371c00 ..............7.
f1f0a310 00000000 00000000 00000000 00000000 ................
f1f0a320 00000000 00000000 00000000 f294a000 ................
f1f0a330 f294a008 00000000 00000000 00000000 ................
f1f0a340 0000027c 00000000 00000000 00000000 |...............
memory near ip ([anon:libc_malloc]):
f21d75c0 00000000 00000001 00000000 00000001 ................
f21d75d0 00000000 00000001 00000000 00000001 ................
f21d75e0 00000000 00000001 00000000 00000000 ................
f21d75f0 00000000 00000000 00000000 00000000 ................
f21d7600 00000000 00000000 00000000 00000000 ................
f21d7610 00000000 00000000 00000000 00000000 ................
f21d7620 00000000 00000000 00000000 00000000 ................
f21d7630 00000000 00000000 00000000 00000000 ................
f21d7640 00000000 00000000 00000000 00000000 ................
f21d7650 00000000 00000000 00000000 00000000 ................
f21d7660 00000000 00000000 00000000 00000000 ................
f21d7670 00000000 00000000 00000000 00000000 ................
f21d7680 00000000 00000000 00000000 00000000 ................
f21d7690 00000000 00000000 00000000 00000000 ................
f21d76a0 00000000 00000000 00000000 00000000 ................
f21d76b0 00000000 00000000 00000000 00000000 ................
memory near sp ([anon:stack_and_tls:21307]):
ee10de40 00000000 00000000 00000000 00000000 ................
ee10de50 00000000 00000000 00000000 f21d7508 .............u..
ee10de60 00000000 38b4f3d9 f21d7508 00000000 .......8.u......
ee10de70 f21d752c 00000000 f1f0a274 f1e84cff ,u......t....L..
ee10de80 00000001 00000000 00000000 00000000 ................
ee10de90 00000000 00000000 00000000 00000000 ................
ee10dea0 00000000 00000000 00000000 00000000 ................
ee10deb0 00000000 00000000 00000000 00000000 ................
ee10dec0 00000000 00000000 00000000 00000000 ................
ee10ded0 00000000 00000000 00000000 00000000 ................
ee10dee0 00000000 00000000 00000000 00000000 ................
ee10def0 00000000 00000000 00000000 00000000 ................
ee10df00 00000000 00000000 00000000 00000000 ................
ee10df10 00000000 00000000 00000000 00000000 ................
ee10df20 00000000 00000000 00000000 00000000 ................
ee10df30 00000000 00000000 00000000 00000000 ................
memory near lr (/apex/com.android.runtime/lib/bionic/libc.so):
f1e84cd0 1f84f853 e9d2b179 f8cc0e1e f8c30000 S...y...........
f1e84ce0 f856e000 67900037 00c7eb06 5037f846 ..V.7..g....F.7P
f1e84cf0 67d36843 2100e7db f0174620 f8d8f831 Ch.g...! F..1...
f1e84d00 99620000 d1024288 e8bdb063 f07c83f0 ..b..B..c.....|.
f1e84d10 46b4ed08 0f90f85c d10842a8 e77c2102 ...F\....B...!|.
f1e84d20 f85c46b4 42a80f90 2102d108 46b4e7cd .F\....B...!...F
f1e84d30 0f98f85c d10842a8 e76e2103 f85c46b4 \....B...!n..F\.
f1e84d40 42a80f98 2103d108 46b4e7bf 0fa0f85c ...B...!...F\...
f1e84d50 d10842a8 e7602104 f85c46b4 42a80fa0 .B...!`..F\....B
f1e84d60 2104d108 46b4e7b1 0fa8f85c d10842a8 ...!...F\....B..
f1e84d70 e7522105 f85c46b4 42a80fa8 2105d108 .!R..F\....B...!
f1e84d80 46b4e7a3 0fb0f85c d10842a8 e7442106 ...F\....B...!D.
f1e84d90 f85c46b4 42a80fb0 2106d108 46b4e795 .F\....B...!...F
f1e84da0 0fb8f85c d10842a8 e7362107 f85c46b4 \....B...!6..F\.
f1e84db0 42a80fb8 2107d10e 2000e787 46322101 ...B...!... .!2F
f1e84dc0 e9cd464b 480b1000 68014478 f01a4620 KF.....HxD.h F..
memory near pc (/apex/com.android.runtime/lib/bionic/libc.so):
f1e9bd60 41f0e92d 4604b082 460e4826 27002300 -..A...F&H.F.#.'
f1e9bd70 44784632 8000f8d0 0000f8d8 48229001 2FxD.........."H
f1e9bd80 44786809 311ff36f eb006800 e8d00081 .hxDo..1.h......
f1e9bd90 46205faf f7ff4629 466aff51 46294620 ._ F)F..Q.jF F)F
f1e9bda0 97004633 ff60f7e9 f643b19c 58283030 3F....`...C.00(X
f1e9bdb0 f8d46801 280000ec 6862bf18 428abf18 .h.....(..bh...B
f1e9bdc0 eb00d90f b12000c1 1e4a6801 60022900 ...... ..hJ..).`
f1e9bdd0 f8d8dd0d 99010000 d1114288 e8bdb002 .........B......
f1e9bde0 462081f0 f846f7e4 d1ed2800 6841e7f1 .. F..F..(....Ah
f1e9bdf0 23002200 46206001 f7ea4629 e7e8fb35 .".#.` F)F..5...
f1e9be00 ec8ef065 0006b9c2 0006ba86 4604b510 e..............F
f1e9be10 4478480a 68026800 2000b122 e8bd4621 .HxD.h.h".. !F..
f1e9be20 47104010 f0654620 4603eed4 21022004 .@.G Fe....F. .!
f1e9be30 e8bd4622 f0644010 bf00bfc9 0006ba1e "F...@d.........
f1e9be40 4608b510 f065460c 4603eec4 21022004 ...F.Fe....F. .!
f1e9be50 e8bd4622 f0644010 b5b0bfb9 460d4614 "F...@d......F.F
memory map (848 entries):
0995b000-0995bfff r-- 0 1000 /vendor/bin/hw/android.hardware.media.c2@1.2-mediatek (BuildId: 5dbc68c83b1d3265cede20080038aa06) (load bias 0x1000)
0995c000-0995dfff r-x 0 2000 /vendor/bin/hw/android.hardware.media.c2@1.2-mediatek (BuildId: 5dbc68c83b1d3265cede20080038aa06) (load bias 0x1000)
0995e000-0995efff r-- 1000 1000 /vendor/bin/hw/android.hardware.media.c2@1.2-mediatek (BuildId: 5dbc68c83b1d3265cede20080038aa06) (load bias 0x1000)
e80c0000-e80c0fff --- 0 1000
e80c1000-e81bffff rw- 0 ff000 [anon:stack_and_tls:29601]
e81c0000-e81c0fff --- 0 1000
e8559000-e8559fff --- 0 1000
e855a000-e8658fff rw- 0 ff000 [anon:stack_and_tls:29597]
e8659000-e8659fff --- 0 1000
eaed1000-eb0acfff rw- 0 1dc000 /dev/ashmem/AshmemAllocator_hidl (deleted)
eb470000-eb472fff r-- 0 3000 /apex/com.android.vndk.v31/lib/hw/android.hidl.memory@1.0-impl.so (BuildId: 0e17e52cdc75b1a3cc5007d93398d50f) (load bias 0x1000)
eb473000-eb473fff r-x 2000 1000 /apex/com.android.vndk.v31/lib/hw/android.hidl.memory@1.0-impl.so (BuildId: 0e17e52cdc75b1a3cc5007d93398d50f) (load bias 0x1000)
eb474000-eb474fff r-- 2000 1000 /apex/com.android.vndk.v31/lib/hw/android.hidl.memory@1.0-impl.so (BuildId: 0e17e52cdc75b1a3cc5007d93398d50f) (load bias 0x1000)
ee011000-ee011fff --- 0 1000
ee012000-ee110fff rw- 0 ff000 [anon:stack_and_tls:21307]
ee111000-ee112fff --- 0 2000
ee113000-ee211fff rw- 0 ff000 [anon:stack_and_tls:20061]
ee212000-ee213fff --- 0 2000
ee214000-ee312fff rw- 0 ff000 [anon:stack_and_tls:20060]
ee313000-ee313fff --- 0 1000
ee314000-ee411fff r-- 0 fe000 /dev/binderfs/hwbinder
ee412000-ee412fff r-- 0 1000 /vendor/lib/libgralloc_metadata.so (BuildId: 0833a1b445a2c1e4e4ad2155e1394f25) (load bias 0x1000)
ee413000-ee413fff r-x 0 1000 /vendor/lib/libgralloc_metadata.so (BuildId: 0833a1b445a2c1e4e4ad2155e1394f25) (load bias 0x1000)
ee414000-ee414fff r-- 0 1000 /vendor/lib/libgralloc_metadata.so (BuildId: 0833a1b445a2c1e4e4ad2155e1394f25) (load bias 0x1000)
ee466000-ee466fff r-- 0 1000 /vendor/lib/libgralloctypes_mtk.so (BuildId: 877fa14a4454824f05fd56de58681156) (load bias 0x1000)
ee467000-ee468fff r-x 0 2000 /vendor/lib/libgralloctypes_mtk.so (BuildId: 877fa14a4454824f05fd56de58681156) (load bias 0x1000)
ee469000-ee469fff r-- 1000 1000 /vendor/lib/libgralloctypes_mtk.so (BuildId: 877fa14a4454824f05fd56de58681156) (load bias 0x1000)
ee46a000-ee46afff rw- 1000 1000 /vendor/lib/libgralloctypes_mtk.so (BuildId: 877fa14a4454824f05fd56de58681156) (load bias 0x1000)
ee49b000-ee4a4fff r-- 0 a000 /vendor/lib/hw/android.hardware.graphics.mapper@4.0-impl-mediatek.so (BuildId: f1ce0a1b93768e58ee2fb0af96ed270e) (load bias 0x1000)
ee4a5000-ee4b4fff r-x 9000 10000 /vendor/lib/hw/android.hardware.graphics.mapper@4.0-impl-mediatek.so (BuildId: f1ce0a1b93768e58ee2fb0af96ed270e) (load bias 0x1000)
ee4b5000-ee4b6fff r-- 18000 2000 /vendor/lib/hw/android.hardware.graphics.mapper@4.0-impl-mediatek.so (BuildId: f1ce0a1b93768e58ee2fb0af96ed270e) (load bias 0x1000)
ee4b7000-ee4b7fff rw- 19000 1000 /vendor/lib/hw/android.hardware.graphics.mapper@4.0-impl-mediatek.so (BuildId: f1ce0a1b93768e58ee2fb0af96ed270e) (load bias 0x1000)
ee4b8000-ee4b8fff rw- 0 1000 [anon:.bss]
ee4c5000-ee4cdfff r-- 0 9000 /vendor/lib/libgpud.so (BuildId: 62ee606284f8c3a37467a82dfed2cac3) (load bias 0x1000)
ee4ce000-ee4ddfff r-x 8000 10000 /vendor/lib/libgpud.so (BuildId: 62ee606284f8c3a37467a82dfed2cac3) (load bias 0x1000)
ee4de000-ee4defff r-- 17000 1000 /vendor/lib/libgpud.so (BuildId: 62ee606284f8c3a37467a82dfed2cac3) (load bias 0x1000)
ee4df000-ee4dffff rw- 17000 1000 /vendor/lib/libgpud.so (BuildId: 62ee606284f8c3a37467a82dfed2cac3) (load bias 0x1000)
ee4e0000-ee4e1fff rw- 0 2000 [anon:.bss]
ee52f000-ee52ffff r-- 0 1000 /vendor/lib/arm.graphics-V1-ndk_platform.so (BuildId: deb42628674cf90140167feb2307b9d2) (load bias 0x1000)
ee530000-ee530fff r-x 0 1000 /vendor/lib/arm.graphics-V1-ndk_platform.so (BuildId: deb42628674cf90140167feb2307b9d2) (load bias 0x1000)
ee531000-ee531fff r-- 0 1000 /vendor/lib/arm.graphics-V1-ndk_platform.so (BuildId: deb42628674cf90140167feb2307b9d2) (load bias 0x1000)
ee55f000-ee562fff r-- 0 4000 /vendor/lib/libdrm.so (BuildId: e5cace60877c55e023ff6eea7ce02cd3) (load bias 0x1000)
ee563000-ee56cfff r-x 3000 a000 /vendor/lib/libdrm.so (BuildId: e5cace60877c55e023ff6eea7ce02cd3) (load bias 0x1000)
ee56d000-ee56dfff r-- c000 1000 /vendor/lib/libdrm.so (BuildId: e5cace60877c55e023ff6eea7ce02cd3) (load bias 0x1000)
ee56e000-ee56efff rw- c000 1000 /vendor/lib/libdrm.so (BuildId: e5cace60877c55e023ff6eea7ce02cd3) (load bias 0x1000)
ee657000-ee6f7fff rw- 0 a1000 /dev/ashmem/MessageQueue (deleted)
ee6f8000-ee6f8fff --- 0 1000
ee6f9000-ee7f7fff rw- 0 ff000 [anon:stack_and_tls:20059]
ee7f8000-ee7f9fff --- 0 2000
ee7fa000-ee8f8fff rw- 0 ff000 [anon:stack_and_tls:20058]
ee8f9000-ee8fafff --- 0 2000
ee8fb000-ee9f9fff rw- 0 ff000 [anon:stack_and_tls:20057]
ee9fa000-ee9fbfff --- 0 2000
ee9fc000-eeafafff rw- 0 ff000 [anon:stack_and_tls:20056]
eeafb000-eeafcfff --- 0 2000
eeafd000-eebfbfff rw- 0 ff000 [anon:stack_and_tls:20054]
eebfc000-eebfdfff --- 0 2000
eebfe000-eecfcfff rw- 0 ff000 [anon:stack_and_tls:29123]
eecfd000-eecfefff --- 0 2000
eecff000-eedfdfff rw- 0 ff000 [anon:stack_and_tls:25615]
eedfe000-eedfffff --- 0 2000
eee00000-eeefefff rw- 0 ff000 [anon:stack_and_tls:25604]
eeeff000-eef00fff --- 0 2000
eef01000-eeffffff rw- 0 ff000 [anon:stack_and_tls:25591]
ef000000-ef000fff --- 0 1000
ef001000-ef005fff r-- 0 5000 /vendor/lib/libmp3dec_mtk.so (BuildId: d6d750c085527778ece5ecef41168b4f) (load bias 0x1000)
ef006000-ef011fff r-x 4000 c000 /vendor/lib/libmp3dec_mtk.so (BuildId: d6d750c085527778ece5ecef41168b4f) (load bias 0x1000)
ef012000-ef012fff r-- f000 1000 /vendor/lib/libmp3dec_mtk.so (BuildId: d6d750c085527778ece5ecef41168b4f) (load bias 0x1000)
ef013000-ef013fff rw- f000 1000 /vendor/lib/libmp3dec_mtk.so (BuildId: d6d750c085527778ece5ecef41168b4f) (load bias 0x1000)
ef06a000-ef06dfff r-- 0 4000 /vendor/lib/libcodec2_soft_mtk_mp3dec.so (BuildId: 1ea78408b42962cdea86653745898aa9) (load bias 0x1000)
ef06e000-ef075fff r-x 3000 8000 /vendor/lib/libcodec2_soft_mtk_mp3dec.so (BuildId: 1ea78408b42962cdea86653745898aa9) (load bias 0x1000)
ef076000-ef076fff r-- a000 1000 /vendor/lib/libcodec2_soft_mtk_mp3dec.so (BuildId: 1ea78408b42962cdea86653745898aa9) (load bias 0x1000)
ef0a2000-ef0a2fff r-- 0 1000 /apex/com.android.vndk.v31/lib/libspeexresampler.so (BuildId: a326bfaa143ffac2c7e5a7c72ac8c9a2) (load bias 0x1000)
ef0a3000-ef0a5fff r-x 0 3000 /apex/com.android.vndk.v31/lib/libspeexresampler.so (BuildId: a326bfaa143ffac2c7e5a7c72ac8c9a2) (load bias 0x1000)
ef0a6000-ef0a6fff r-- 2000 1000 /apex/com.android.vndk.v31/lib/libspeexresampler.so (BuildId: a326bfaa143ffac2c7e5a7c72ac8c9a2) (load bias 0x1000)
ef0cf000-ef0d7fff r-- 0 9000 /apex/com.android.vndk.v31/lib/libaudioutils.so (BuildId: 71041aa8deee651dbef93c1786fc1b9e) (load bias 0x1000)
ef0d8000-ef0e6fff r-x 8000 f000 /apex/com.android.vndk.v31/lib/libaudioutils.so (BuildId: 71041aa8deee651dbef93c1786fc1b9e) (load bias 0x1000)
ef0e7000-ef0e8fff r-- 16000 2000 /apex/com.android.vndk.v31/lib/libaudioutils.so (BuildId: 71041aa8deee651dbef93c1786fc1b9e) (load bias 0x1000)
ef12a000-ef12dfff r-- 0 4000 /vendor/lib/libcodec2_soft_mtk_apedec.so (BuildId: fe23de7ba01754c96011abbc14b8c520) (load bias 0x1000)
ef12e000-ef137fff r-x 3000 a000 /vendor/lib/libcodec2_soft_mtk_apedec.so (BuildId: fe23de7ba01754c96011abbc14b8c520) (load bias 0x1000)
ef138000-ef139fff r-- c000 2000 /vendor/lib/libcodec2_soft_mtk_apedec.so (BuildId: fe23de7ba01754c96011abbc14b8c520) (load bias 0x1000)
ef13a000-ef13afff rw- d000 1000 /vendor/lib/libcodec2_soft_mtk_apedec.so (BuildId: fe23de7ba01754c96011abbc14b8c520) (load bias 0x1000)
ef166000-ef169fff r-- 0 4000 /vendor/lib/libcodec2_soft_mtk_alacdec.so (BuildId: 61e6f42f630304572124ec8e851c5036) (load bias 0x1000)
ef16a000-ef16efff r-x 3000 5000 /vendor/lib/libcodec2_soft_mtk_alacdec.so (BuildId: 61e6f42f630304572124ec8e851c5036) (load bias 0x1000)
ef16f000-ef16ffff r-- 7000 1000 /vendor/lib/libcodec2_soft_mtk_alacdec.so (BuildId: 61e6f42f630304572124ec8e851c5036) (load bias 0x1000)
ef188000-ef188fff r-- 0 1000 /vendor/lib/libalacdec_mtk.so (BuildId: bcf8351dadf2339a50d2ff00e03053d2) (load bias 0x1000)
ef189000-ef18cfff r-x 0 4000 /vendor/lib/libalacdec_mtk.so (BuildId: bcf8351dadf2339a50d2ff00e03053d2) (load bias 0x1000)
ef18d000-ef18dfff r-- 3000 1000 /vendor/lib/libalacdec_mtk.so (BuildId: bcf8351dadf2339a50d2ff00e03053d2) (load bias 0x1000)
ef18e000-ef18efff rw- 3000 1000 /vendor/lib/libalacdec_mtk.so (BuildId: bcf8351dadf2339a50d2ff00e03053d2) (load bias 0x1000)
ef1db000-ef1defff r-- 0 4000 /vendor/lib/libcodec2_soft_mtk_msadpcmdec.so (BuildId: bc16f62abc6b5f1ed858e45addcd7fe6) (load bias 0x1000)
ef1df000-ef1e3fff r-x 3000 5000 /vendor/lib/libcodec2_soft_mtk_msadpcmdec.so (BuildId: bc16f62abc6b5f1ed858e45addcd7fe6) (load bias 0x1000)
ef1e4000-ef1e5fff r-- 7000 2000 /vendor/lib/libcodec2_soft_mtk_msadpcmdec.so (BuildId: bc16f62abc6b5f1ed858e45addcd7fe6) (load bias 0x1000)
ef222000-ef222fff r-- 0 1000 /vendor/lib/libadpcmdec_mtk.so (BuildId: af5e5ca7acb222e78a7b3d51ea60f8b4) (load bias 0x1000)
ef223000-ef225fff r-x 0 3000 /vendor/lib/libadpcmdec_mtk.so (BuildId: af5e5ca7acb222e78a7b3d51ea60f8b4) (load bias 0x1000)
ef226000-ef226fff r-- 2000 1000 /vendor/lib/libadpcmdec_mtk.so (BuildId: af5e5ca7acb222e78a7b3d51ea60f8b4) (load bias 0x1000)
ef227000-ef227fff rw- 2000 1000 /vendor/lib/libadpcmdec_mtk.so (BuildId: af5e5ca7acb222e78a7b3d51ea60f8b4) (load bias 0x1000)
ef256000-ef259fff r-- 0 4000 /vendor/lib/libcodec2_soft_mtk_imaadpcmdec.so (BuildId: 8ad1e4b42e098cb7797a7473b1bfc6c4) (load bias 0x1000)
ef25a000-ef25efff r-x 3000 5000 /vendor/lib/libcodec2_soft_mtk_imaadpcmdec.so (BuildId: 8ad1e4b42e098cb7797a7473b1bfc6c4) (load bias 0x1000)
ef25f000-ef260fff r-- 7000 2000 /vendor/lib/libcodec2_soft_mtk_imaadpcmdec.so (BuildId: 8ad1e4b42e098cb7797a7473b1bfc6c4) (load bias 0x1000)
ef299000-ef29dfff r-x 0 5000 /vendor/lib/mt6785/libmtk_drvb.so (BuildId: 2f3b6044979d21c0f18afbe026f98d30)
ef29e000-ef29efff r-- 4000 1000 /vendor/lib/mt6785/libmtk_drvb.so (BuildId: 2f3b6044979d21c0f18afbe026f98d30)
ef29f000-ef29ffff rw- 5000 1000 /vendor/lib/mt6785/libmtk_drvb.so (BuildId: 2f3b6044979d21c0f18afbe026f98d30)
ef2fb000-ef2fbfff --- 0 1000
ef2fc000-ef3fafff rw- 0 ff000 [anon:stack_and_tls:25554]
ef3fb000-ef3fcfff --- 0 2000
ef3fd000-ef4fbfff rw- 0 ff000 [anon:stack_and_tls:25553]
ef4fc000-ef4fdfff --- 0 2000
ef4fe000-ef5fcfff rw- 0 ff000 [anon:stack_and_tls:25552]
ef5fd000-ef5fefff --- 0 2000
ef5ff000-ef6fdfff rw- 0 ff000 [anon:stack_and_tls:25551]
ef6fe000-ef6fffff --- 0 2000
ef700000-ef7fefff rw- 0 ff000 [anon:stack_and_tls:25550]
ef7ff000-ef7fffff --- 0 1000
ef800000-ef8fffff rw- 0 100000 [anon:libc_malloc]
ef901000-ef9fefff r-- 0 fe000 /dev/binderfs/hwbinder
ef9ff000-ef9fffff --- 0 1000
efa00000-efafefff rw- 0 ff000 [anon:stack_and_tls:25549]
efaff000-efafffff --- 0 1000
efb00000-efbfffff rw- 0 100000 [anon:libc_malloc]
efc53000-efc5efff r-- 0 c000 /apex/com.android.vndk.v31/lib/libbase.so (BuildId: 077de0f972981146907fdc52c210f51a) (load bias 0x1000)
efc5f000-efc7bfff r-x b000 1d000 /apex/com.android.vndk.v31/lib/libbase.so (BuildId: 077de0f972981146907fdc52c210f51a) (load bias 0x1000)
efc7c000-efc7cfff r-- 27000 1000 /apex/com.android.vndk.v31/lib/libbase.so (BuildId: 077de0f972981146907fdc52c210f51a) (load bias 0x1000)
efc7d000-efc7dfff rw- 27000 1000 /apex/com.android.vndk.v31/lib/libbase.so (BuildId: 077de0f972981146907fdc52c210f51a) (load bias 0x1000)
efc86000-efc8bfff r-- 0 6000 /apex/com.android.vndk.v31/lib/libdmabufheap.so (BuildId: c132e381ef25a89be190f554e84341b8) (load bias 0x1000)
efc8c000-efc93fff r-x 5000 8000 /apex/com.android.vndk.v31/lib/libdmabufheap.so (BuildId: c132e381ef25a89be190f554e84341b8) (load bias 0x1000)
efc94000-efc95fff r-- c000 2000 /apex/com.android.vndk.v31/lib/libdmabufheap.so (BuildId: c132e381ef25a89be190f554e84341b8) (load bias 0x1000)
efc96000-efc96fff rw- d000 1000 /apex/com.android.vndk.v31/lib/libdmabufheap.so (BuildId: c132e381ef25a89be190f554e84341b8) (load bias 0x1000)
efcdb000-efcdffff r-- 0 5000 /apex/com.android.vndk.v31/lib/libcutils.so (BuildId: a47920c3c1f4947ac82ab996472d136e) (load bias 0x1000)
efce0000-efce5fff r-x 4000 6000 /apex/com.android.vndk.v31/lib/libcutils.so (BuildId: a47920c3c1f4947ac82ab996472d136e) (load bias 0x1000)
efce6000-efce7fff r-- 9000 2000 /apex/com.android.vndk.v31/lib/libcutils.so (BuildId: a47920c3c1f4947ac82ab996472d136e) (load bias 0x1000)
efce8000-efce8fff rw- a000 1000 /apex/com.android.vndk.v31/lib/libcutils.so (BuildId: a47920c3c1f4947ac82ab996472d136e) (load bias 0x1000)
efd1e000-efd1efff r-- 0 1000 /system/lib/android.hardware.graphics.common@1.2.so (BuildId: 16f78bc81a3f75bcbe145e7a9f76731c) (load bias 0x1000)
efd1f000-efd1ffff r-x 0 1000 /system/lib/android.hardware.graphics.common@1.2.so (BuildId: 16f78bc81a3f75bcbe145e7a9f76731c) (load bias 0x1000)
efd20000-efd20fff r-- 0 1000 /system/lib/android.hardware.graphics.common@1.2.so (BuildId: 16f78bc81a3f75bcbe145e7a9f76731c) (load bias 0x1000)
efd44000-efd47fff r-- 0 4000 /apex/com.android.vndk.v31/lib/liblzma.so (BuildId: a649e13518a708b65d5b9588a58083f7) (load bias 0x1000)
efd48000-efd5ffff r-x 3000 18000 /apex/com.android.vndk.v31/lib/liblzma.so (BuildId: a649e13518a708b65d5b9588a58083f7) (load bias 0x1000)
efd60000-efd60fff r-- 1a000 1000 /apex/com.android.vndk.v31/lib/liblzma.so (BuildId: a649e13518a708b65d5b9588a58083f7) (load bias 0x1000)
efd61000-efd61fff rw- 1a000 1000 /apex/com.android.vndk.v31/lib/liblzma.so (BuildId: a649e13518a708b65d5b9588a58083f7) (load bias 0x1000)
efd62000-efd67fff rw- 0 6000 [anon:.bss]
efd84000-efd93fff r-- 0 10000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.bufferqueue@1.0.so (BuildId: 4bd02db89147f7503c5a42a83aa2f831) (load bias 0x1000)
efd94000-efda4fff r-x f000 11000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.bufferqueue@1.0.so (BuildId: 4bd02db89147f7503c5a42a83aa2f831) (load bias 0x1000)
efda5000-efda7fff r-- 1f000 3000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.bufferqueue@1.0.so (BuildId: 4bd02db89147f7503c5a42a83aa2f831) (load bias 0x1000)
efda8000-efda8fff rw- 21000 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.bufferqueue@1.0.so (BuildId: 4bd02db89147f7503c5a42a83aa2f831) (load bias 0x1000)
efdc4000-efdc4fff r-- 0 1000 /system/lib/libhardware.so (BuildId: 684a6337e9065d5348bb8b19c0cfa2af) (load bias 0x1000)
efdc5000-efdc5fff r-x 0 1000 /system/lib/libhardware.so (BuildId: 684a6337e9065d5348bb8b19c0cfa2af) (load bias 0x1000)
efdc6000-efdc6fff r-- 0 1000 /system/lib/libhardware.so (BuildId: 684a6337e9065d5348bb8b19c0cfa2af) (load bias 0x1000)
efe0e000-efe0ffff r-- 0 2000 /apex/com.android.vndk.v31/lib/libutilscallstack.so (BuildId: f22f5ac5f221726f964940f8f7cbe4a6) (load bias 0x1000)
efe10000-efe11fff r-x 1000 2000 /apex/com.android.vndk.v31/lib/libutilscallstack.so (BuildId: f22f5ac5f221726f964940f8f7cbe4a6) (load bias 0x1000)
efe12000-efe13fff r-- 2000 2000 /apex/com.android.vndk.v31/lib/libutilscallstack.so (BuildId: f22f5ac5f221726f964940f8f7cbe4a6) (load bias 0x1000)
efe42000-efe42fff r-- 0 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.common@1.1.so (BuildId: fe6c1dc151bddb7060f4a75fffe6406a) (load bias 0x1000)
efe43000-efe43fff r-x 0 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.common@1.1.so (BuildId: fe6c1dc151bddb7060f4a75fffe6406a) (load bias 0x1000)
efe44000-efe44fff r-- 0 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.common@1.1.so (BuildId: fe6c1dc151bddb7060f4a75fffe6406a) (load bias 0x1000)
efe8d000-efe95fff r-- 0 9000 /system/lib/android.hardware.graphics.mapper@3.0.so (BuildId: 5247242e66ddb79805edd15b6651ad0f) (load bias 0x1000)
efe96000-efe9cfff r-x 8000 7000 /system/lib/android.hardware.graphics.mapper@3.0.so (BuildId: 5247242e66ddb79805edd15b6651ad0f) (load bias 0x1000)
efe9d000-efe9efff r-- e000 2000 /system/lib/android.hardware.graphics.mapper@3.0.so (BuildId: 5247242e66ddb79805edd15b6651ad0f) (load bias 0x1000)
efe9f000-efe9ffff rw- f000 1000 /system/lib/android.hardware.graphics.mapper@3.0.so (BuildId: 5247242e66ddb79805edd15b6651ad0f) (load bias 0x1000)
efee5000-efeeefff r-- 0 a000 /system/lib/android.hardware.graphics.mapper@4.0.so (BuildId: a11ee104e9afa89420442871d9be77c5) (load bias 0x1000)
efeef000-efef9fff r-x 9000 b000 /system/lib/android.hardware.graphics.mapper@4.0.so (BuildId: a11ee104e9afa89420442871d9be77c5) (load bias 0x1000)
efefa000-efefafff r-- 13000 1000 /system/lib/android.hardware.graphics.mapper@4.0.so (BuildId: a11ee104e9afa89420442871d9be77c5) (load bias 0x1000)
efefb000-efefbfff rw- 13000 1000 /system/lib/android.hardware.graphics.mapper@4.0.so (BuildId: a11ee104e9afa89420442871d9be77c5) (load bias 0x1000)
eff04000-eff4ffff r-- 0 4c000 /vendor/lib/mt6785/libpq_prot.so (BuildId: aa2093cf2dbe7ef979ab15ebca4dd0de) (load bias 0x1000)
eff50000-effacfff r-x 4b000 5d000 /vendor/lib/mt6785/libpq_prot.so (BuildId: aa2093cf2dbe7ef979ab15ebca4dd0de) (load bias 0x1000)
effad000-effadfff r-- a7000 1000 /vendor/lib/mt6785/libpq_prot.so (BuildId: aa2093cf2dbe7ef979ab15ebca4dd0de) (load bias 0x1000)
effae000-effbcfff rw- a7000 f000 /vendor/lib/mt6785/libpq_prot.so (BuildId: aa2093cf2dbe7ef979ab15ebca4dd0de) (load bias 0x1000)
effbd000-effbdfff rw- 0 1000 [anon:.bss]
effc1000-effc1fff r-- 0 1000 /apex/com.android.vndk.v31/lib/libion.so (BuildId: 672a2ec90024e96d5cc17a18a69803fe) (load bias 0x1000)
effc2000-effc3fff r-x 0 2000 /apex/com.android.vndk.v31/lib/libion.so (BuildId: 672a2ec90024e96d5cc17a18a69803fe) (load bias 0x1000)
effc4000-effc4fff r-- 1000 1000 /apex/com.android.vndk.v31/lib/libion.so (BuildId: 672a2ec90024e96d5cc17a18a69803fe) (load bias 0x1000)
effc5000-effc5fff rw- 1000 1000 /apex/com.android.vndk.v31/lib/libion.so (BuildId: 672a2ec90024e96d5cc17a18a69803fe) (load bias 0x1000)
f001a000-f0020fff r-- 0 7000 /apex/com.android.vndk.v31/lib/android.hidl.token@1.0.so (BuildId: 79c6991fa5050d55685fb0bd80ec06c1) (load bias 0x1000)
f0021000-f0027fff r-x 6000 7000 /apex/com.android.vndk.v31/lib/android.hidl.token@1.0.so (BuildId: 79c6991fa5050d55685fb0bd80ec06c1) (load bias 0x1000)
f0028000-f0029fff r-- c000 2000 /apex/com.android.vndk.v31/lib/android.hidl.token@1.0.so (BuildId: 79c6991fa5050d55685fb0bd80ec06c1) (load bias 0x1000)
f002a000-f002afff rw- d000 1000 /apex/com.android.vndk.v31/lib/android.hidl.token@1.0.so (BuildId: 79c6991fa5050d55685fb0bd80ec06c1) (load bias 0x1000)
f004e000-f0054fff r-- 0 7000 /system/lib/android.hardware.graphics.allocator@3.0.so (BuildId: 66a869222216e5dae788e1b8de0d463d) (load bias 0x1000)
f0055000-f005afff r-x 6000 6000 /system/lib/android.hardware.graphics.allocator@3.0.so (BuildId: 66a869222216e5dae788e1b8de0d463d) (load bias 0x1000)
f005b000-f005cfff r-- b000 2000 /system/lib/android.hardware.graphics.allocator@3.0.so (BuildId: 66a869222216e5dae788e1b8de0d463d) (load bias 0x1000)
f005d000-f005dfff rw- c000 1000 /system/lib/android.hardware.graphics.allocator@3.0.so (BuildId: 66a869222216e5dae788e1b8de0d463d) (load bias 0x1000)
f009e000-f00a4fff r-- 0 7000 /system/lib/android.hardware.graphics.allocator@4.0.so (BuildId: 9c8645d41e7010461cb60fa3a9df61fa) (load bias 0x1000)
f00a5000-f00aafff r-x 6000 6000 /system/lib/android.hardware.graphics.allocator@4.0.so (BuildId: 9c8645d41e7010461cb60fa3a9df61fa) (load bias 0x1000)
f00ab000-f00abfff r-- b000 1000 /system/lib/android.hardware.graphics.allocator@4.0.so (BuildId: 9c8645d41e7010461cb60fa3a9df61fa) (load bias 0x1000)
f00ac000-f00acfff rw- b000 1000 /system/lib/android.hardware.graphics.allocator@4.0.so (BuildId: 9c8645d41e7010461cb60fa3a9df61fa) (load bias 0x1000)
f00c2000-f00d5fff r-- 0 14000 /apex/com.android.vndk.v31/lib/libprocessgroup.so (BuildId: 841663472c44879a70bcd2400381e28d) (load bias 0x1000)
f00d6000-f00fafff r-x 13000 25000 /apex/com.android.vndk.v31/lib/libprocessgroup.so (BuildId: 841663472c44879a70bcd2400381e28d) (load bias 0x1000)
f00fb000-f00fcfff r-- 37000 2000 /apex/com.android.vndk.v31/lib/libprocessgroup.so (BuildId: 841663472c44879a70bcd2400381e28d) (load bias 0x1000)
f00fd000-f00fdfff rw- 38000 1000 /apex/com.android.vndk.v31/lib/libprocessgroup.so (BuildId: 841663472c44879a70bcd2400381e28d) (load bias 0x1000)
f0117000-f0125fff r-- 0 f000 /vendor/lib/vendor.mediatek.hardware.pq@2.0.so (BuildId: b7a87717a545d08155545bb4e24a9ec0) (load bias 0x1000)
f0126000-f0138fff r-x e000 13000 /vendor/lib/vendor.mediatek.hardware.pq@2.0.so (BuildId: b7a87717a545d08155545bb4e24a9ec0) (load bias 0x1000)
f0139000-f013bfff r-- 20000 3000 /vendor/lib/vendor.mediatek.hardware.pq@2.0.so (BuildId: b7a87717a545d08155545bb4e24a9ec0) (load bias 0x1000)
f013c000-f013cfff rw- 22000 1000 /vendor/lib/vendor.mediatek.hardware.pq@2.0.so (BuildId: b7a87717a545d08155545bb4e24a9ec0) (load bias 0x1000)
f0142000-f0148fff r-- 0 7000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.allocator@2.0.so (BuildId: c3d72ca1dbd14c94b1f1164999583362) (load bias 0x1000)
f0149000-f014efff r-x 6000 6000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.allocator@2.0.so (BuildId: c3d72ca1dbd14c94b1f1164999583362) (load bias 0x1000)
f014f000-f0150fff r-- b000 2000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.allocator@2.0.so (BuildId: c3d72ca1dbd14c94b1f1164999583362) (load bias 0x1000)
f0151000-f0151fff rw- c000 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.allocator@2.0.so (BuildId: c3d72ca1dbd14c94b1f1164999583362) (load bias 0x1000)
f019d000-f019dfff r-- 0 1000 /apex/com.android.vndk.v31/lib/libcodec2.so (BuildId: e0b490a23913956d3eced28104de1af8) (load bias 0x1000)
f019e000-f019efff r-x 0 1000 /apex/com.android.vndk.v31/lib/libcodec2.so (BuildId: e0b490a23913956d3eced28104de1af8) (load bias 0x1000)
f019f000-f019ffff r-- 0 1000 /apex/com.android.vndk.v31/lib/libcodec2.so (BuildId: e0b490a23913956d3eced28104de1af8) (load bias 0x1000)
f01d7000-f01defff r-- 0 8000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@2.0.so (BuildId: 2e058cf9aaab3135b277c42edb2ac4fa) (load bias 0x1000)
f01df000-f01e5fff r-x 7000 7000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@2.0.so (BuildId: 2e058cf9aaab3135b277c42edb2ac4fa) (load bias 0x1000)
f01e6000-f01e7fff r-- d000 2000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@2.0.so (BuildId: 2e058cf9aaab3135b277c42edb2ac4fa) (load bias 0x1000)
f01e8000-f01e8fff rw- e000 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@2.0.so (BuildId: 2e058cf9aaab3135b277c42edb2ac4fa) (load bias 0x1000)
f0224000-f0224fff r-- 0 1000 /system/lib/android.hardware.common-V2-ndk_platform.so (BuildId: dddd954762dec153364dea7f48c800fc) (load bias 0x1000)
f0225000-f0226fff r-x 0 2000 /system/lib/android.hardware.common-V2-ndk_platform.so (BuildId: dddd954762dec153364dea7f48c800fc) (load bias 0x1000)
f0227000-f0227fff r-- 1000 1000 /system/lib/android.hardware.common-V2-ndk_platform.so (BuildId: dddd954762dec153364dea7f48c800fc) (load bias 0x1000)
f0228000-f0228fff rw- 1000 1000 /system/lib/android.hardware.common-V2-ndk_platform.so (BuildId: dddd954762dec153364dea7f48c800fc) (load bias 0x1000)
f0257000-f0259fff r-- 0 3000 /apex/com.android.vndk.v31/lib/libexpat.so (BuildId: f27a1db6faf7e8c6130133e70b9a54d7) (load bias 0x1000)
f025a000-f026cfff r-x 2000 13000 /apex/com.android.vndk.v31/lib/libexpat.so (BuildId: f27a1db6faf7e8c6130133e70b9a54d7) (load bias 0x1000)
f026d000-f026ffff r-- 14000 3000 /apex/com.android.vndk.v31/lib/libexpat.so (BuildId: f27a1db6faf7e8c6130133e70b9a54d7) (load bias 0x1000)
f0299000-f029cfff r-- 0 4000 /system/lib/libged_sys.so (BuildId: dca176754ba09601dffe95611e32343a) (load bias 0x1000)
f029d000-f02a5fff r-x 3000 9000 /system/lib/libged_sys.so (BuildId: dca176754ba09601dffe95611e32343a) (load bias 0x1000)
f02a6000-f02a6fff r-- b000 1000 /system/lib/libged_sys.so (BuildId: dca176754ba09601dffe95611e32343a) (load bias 0x1000)
f02a7000-f02a7fff rw- b000 1000 /system/lib/libged_sys.so (BuildId: dca176754ba09601dffe95611e32343a) (load bias 0x1000)
f02c3000-f02ddfff r-- 0 1b000 /apex/com.android.vndk.v31/lib/libui.so (BuildId: 6bd3b842db09f15f41f1d8f59edf7d58) (load bias 0x1000)
f02de000-f02f7fff r-x 1a000 1a000 /apex/com.android.vndk.v31/lib/libui.so (BuildId: 6bd3b842db09f15f41f1d8f59edf7d58) (load bias 0x1000)
f02f8000-f02f9fff r-- 33000 2000 /apex/com.android.vndk.v31/lib/libui.so (BuildId: 6bd3b842db09f15f41f1d8f59edf7d58) (load bias 0x1000)
f02fa000-f02fafff rw- 34000 1000 /apex/com.android.vndk.v31/lib/libui.so (BuildId: 6bd3b842db09f15f41f1d8f59edf7d58) (load bias 0x1000)
f02fb000-f02fcfff rw- 0 2000 [anon:.bss]
f031c000-f0323fff r-- 0 8000 /system/lib/libSurfaceFlingerProp.so (BuildId: 4119e4792f50701f53452518718264ae) (load bias 0x1000)
f0324000-f032afff r-x 7000 7000 /system/lib/libSurfaceFlingerProp.so (BuildId: 4119e4792f50701f53452518718264ae) (load bias 0x1000)
f032b000-f032bfff r-- d000 1000 /system/lib/libSurfaceFlingerProp.so (BuildId: 4119e4792f50701f53452518718264ae) (load bias 0x1000)
f032c000-f032cfff rw- d000 1000 /system/lib/libSurfaceFlingerProp.so (BuildId: 4119e4792f50701f53452518718264ae) (load bias 0x1000)
f0341000-f0341fff r-- 0 1000 /vendor/lib/libion_ulit.so (BuildId: 6d79d36cc592580b44c4ed2df7b434cf) (load bias 0x1000)
f0342000-f0342fff r-x 0 1000 /vendor/lib/libion_ulit.so (BuildId: 6d79d36cc592580b44c4ed2df7b434cf) (load bias 0x1000)
f0343000-f0343fff r-- 0 1000 /vendor/lib/libion_ulit.so (BuildId: 6d79d36cc592580b44c4ed2df7b434cf) (load bias 0x1000)
f038a000-f038ffff r-- 0 6000 /vendor/lib/libcodec2_mtk_c2store.so (BuildId: d49f65bc9b9c43666d803668b3fdf30d) (load bias 0x1000)
f0390000-f0395fff r-x 5000 6000 /vendor/lib/libcodec2_mtk_c2store.so (BuildId: d49f65bc9b9c43666d803668b3fdf30d) (load bias 0x1000)
f0396000-f0396fff r-- a000 1000 /vendor/lib/libcodec2_mtk_c2store.so (BuildId: d49f65bc9b9c43666d803668b3fdf30d) (load bias 0x1000)
f0397000-f0397fff rw- a000 1000 /vendor/lib/libcodec2_mtk_c2store.so (BuildId: d49f65bc9b9c43666d803668b3fdf30d) (load bias 0x1000)
f03db000-f03dffff r-- 0 5000 /vendor/lib/libged.so (BuildId: 7aa62de899bdfe3c7fcf713cbf3fe1e6) (load bias 0x1000)
f03e0000-f03e7fff r-x 4000 8000 /vendor/lib/libged.so (BuildId: 7aa62de899bdfe3c7fcf713cbf3fe1e6) (load bias 0x1000)
f03e8000-f03e8fff r-- b000 1000 /vendor/lib/libged.so (BuildId: 7aa62de899bdfe3c7fcf713cbf3fe1e6) (load bias 0x1000)
f03e9000-f03e9fff rw- b000 1000 /vendor/lib/libged.so (BuildId: 7aa62de899bdfe3c7fcf713cbf3fe1e6) (load bias 0x1000)
f03ea000-f03eafff rw- 0 1000 [anon:.bss]
f0409000-f0409fff r-- 0 1000 /apex/com.android.runtime/lib/bionic/libdl.so (BuildId: 63546a18da41b6c5e841b99b30ec4228) (load bias 0x1000)
f040a000-f040afff r-x 0 1000 /apex/com.android.runtime/lib/bionic/libdl.so (BuildId: 63546a18da41b6c5e841b99b30ec4228) (load bias 0x1000)
f040b000-f040bfff r-- 0 1000 /apex/com.android.runtime/lib/bionic/libdl.so (BuildId: 63546a18da41b6c5e841b99b30ec4228) (load bias 0x1000)
f040c000-f040cfff --- 0 1000
f040d000-f040dfff r-- 0 1000 [anon:.bss]
f0469000-f046afff r-- 0 2000 /apex/com.android.vndk.v31/lib/libcap.so (BuildId: d53347c9cf06c4a6ebca59fb2c38b071) (load bias 0x1000)
f046b000-f046efff r-x 1000 4000 /apex/com.android.vndk.v31/lib/libcap.so (BuildId: d53347c9cf06c4a6ebca59fb2c38b071) (load bias 0x1000)
f046f000-f046ffff r-- 4000 1000 /apex/com.android.vndk.v31/lib/libcap.so (BuildId: d53347c9cf06c4a6ebca59fb2c38b071) (load bias 0x1000)
f0470000-f0470fff rw- 4000 1000 /apex/com.android.vndk.v31/lib/libcap.so (BuildId: d53347c9cf06c4a6ebca59fb2c38b071) (load bias 0x1000)
f04a3000-f04abfff r-- 0 9000 /system/lib/libutils.so (BuildId: 32b80ccb1972fc1d4674ac2cb7671100) (load bias 0x1000)
f04ac000-f04b5fff r-x 8000 a000 /system/lib/libutils.so (BuildId: 32b80ccb1972fc1d4674ac2cb7671100) (load bias 0x1000)
f04b6000-f04b6fff r-- 11000 1000 /system/lib/libutils.so (BuildId: 32b80ccb1972fc1d4674ac2cb7671100) (load bias 0x1000)
f04b7000-f04b7fff rw- 11000 1000 /system/lib/libutils.so (BuildId: 32b80ccb1972fc1d4674ac2cb7671100) (load bias 0x1000)
f04cc000-f04ccfff r-- 0 1000 /vendor/lib/libhwbinder.so (BuildId: b7c3a56f256871cfe83e11ce7b22d82b) (load bias 0x1000)
f04cd000-f04cdfff r-x 0 1000 /vendor/lib/libhwbinder.so (BuildId: b7c3a56f256871cfe83e11ce7b22d82b) (load bias 0x1000)
f04ce000-f04cefff r-- 0 1000 /vendor/lib/libhwbinder.so (BuildId: b7c3a56f256871cfe83e11ce7b22d82b) (load bias 0x1000)
f04d2000-f0535fff rw- 0 64000 [anon:linker_alloc]
f0536000-f0550fff r-- 0 1b000 /vendor/lib/libcodec2_mtk_vdec.so (BuildId: 27b2bf5d7a6d3ea2918241b56c135bcd) (load bias 0x1000)
f0551000-f05f3fff r-x 1a000 a3000 /vendor/lib/libcodec2_mtk_vdec.so (BuildId: 27b2bf5d7a6d3ea2918241b56c135bcd) (load bias 0x1000)
f05f4000-f05f9fff r-- bc000 6000 /vendor/lib/libcodec2_mtk_vdec.so (BuildId: 27b2bf5d7a6d3ea2918241b56c135bcd) (load bias 0x1000)
f05fa000-f05fafff rw- c1000 1000 /vendor/lib/libcodec2_mtk_vdec.so (BuildId: 27b2bf5d7a6d3ea2918241b56c135bcd) (load bias 0x1000)
f0618000-f0618fff r-- 0 1000 /system/lib/libvndksupport.so (BuildId: eaf42f51aacaeb07eed2148794ac77bf) (load bias 0x1000)
f0619000-f0619fff r-x 0 1000 /system/lib/libvndksupport.so (BuildId: eaf42f51aacaeb07eed2148794ac77bf) (load bias 0x1000)
f061a000-f061afff r-- 0 1000 /system/lib/libvndksupport.so (BuildId: eaf42f51aacaeb07eed2148794ac77bf) (load bias 0x1000)
f061b000-f061bfff rw- 0 1000 /system/lib/libvndksupport.so (BuildId: eaf42f51aacaeb07eed2148794ac77bf) (load bias 0x1000)
f0641000-f0641fff r-- 0 1000 /vendor/lib/libcodec2_vpp_qt_plugin.so (BuildId: 6d21c8326db0e5c91570fce793cbabb7) (load bias 0x1000)
f0642000-f0643fff r-x 0 2000 /vendor/lib/libcodec2_vpp_qt_plugin.so (BuildId: 6d21c8326db0e5c91570fce793cbabb7) (load bias 0x1000)
f0644000-f0644fff r-- 1000 1000 /vendor/lib/libcodec2_vpp_qt_plugin.so (BuildId: 6d21c8326db0e5c91570fce793cbabb7) (load bias 0x1000)
f0693000-f0693fff r-- 0 1000 /apex/com.android.vndk.v31/lib/libhardware.so (BuildId: 173fed737b56de17d76c089e26aec941) (load bias 0x1000)
f0694000-f0694fff r-x 0 1000 /apex/com.android.vndk.v31/lib/libhardware.so (BuildId: 173fed737b56de17d76c089e26aec941) (load bias 0x1000)
f0695000-f0695fff r-- 0 1000 /apex/com.android.vndk.v31/lib/libhardware.so (BuildId: 173fed737b56de17d76c089e26aec941) (load bias 0x1000)
f06d6000-f06d6fff r-- 0 1000 /system/lib/libcgrouprc.so (BuildId: d817d4194366dd20322f705c40bcd322) (load bias 0x1000)
f06d7000-f06d8fff r-x 0 2000 /system/lib/libcgrouprc.so (BuildId: d817d4194366dd20322f705c40bcd322) (load bias 0x1000)
f06d9000-f06d9fff r-- 1000 1000 /system/lib/libcgrouprc.so (BuildId: d817d4194366dd20322f705c40bcd322) (load bias 0x1000)
f06da000-f06dafff rw- 1000 1000 /system/lib/libcgrouprc.so (BuildId: d817d4194366dd20322f705c40bcd322) (load bias 0x1000)
f070a000-f070afff r-- 0 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.common@1.2.so (BuildId: 1563ce55a8657c24f6e7ee82ece8888c) (load bias 0x1000)
f070b000-f070bfff r-x 0 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.common@1.2.so (BuildId: 1563ce55a8657c24f6e7ee82ece8888c) (load bias 0x1000)
f070c000-f070cfff r-- 0 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.common@1.2.so (BuildId: 1563ce55a8657c24f6e7ee82ece8888c) (load bias 0x1000)
f0743000-f0761fff r-- 0 1f000 /system/lib/libunwindstack.so (BuildId: 52d4ab661da46a0fab1c998e876c021a) (load bias 0x1000)
f0762000-f07a2fff r-x 1e000 41000 /system/lib/libunwindstack.so (BuildId: 52d4ab661da46a0fab1c998e876c021a) (load bias 0x1000)
f07a3000-f07a5fff r-- 5e000 3000 /system/lib/libunwindstack.so (BuildId: 52d4ab661da46a0fab1c998e876c021a) (load bias 0x1000)
f07a6000-f07a6fff rw- 60000 1000 /system/lib/libunwindstack.so (BuildId: 52d4ab661da46a0fab1c998e876c021a) (load bias 0x1000)
f07c5000-f07cefff r-- 0 a000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@4.0.so (BuildId: 0ab509a8c4ba62e9325fba673a88a956) (load bias 0x1000)
f07cf000-f07d9fff r-x 9000 b000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@4.0.so (BuildId: 0ab509a8c4ba62e9325fba673a88a956) (load bias 0x1000)
f07da000-f07dafff r-- 13000 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@4.0.so (BuildId: 0ab509a8c4ba62e9325fba673a88a956) (load bias 0x1000)
f07db000-f07dbfff rw- 13000 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@4.0.so (BuildId: 0ab509a8c4ba62e9325fba673a88a956) (load bias 0x1000)
f081f000-f081ffff r-- 0 1000 /system/lib/libandroid_runtime_lazy.so (BuildId: 5711bc078aed0ab14530690e901ca890) (load bias 0x1000)
f0820000-f0820fff r-x 0 1000 /system/lib/libandroid_runtime_lazy.so (BuildId: 5711bc078aed0ab14530690e901ca890) (load bias 0x1000)
f0821000-f0821fff r-- 0 1000 /system/lib/libandroid_runtime_lazy.so (BuildId: 5711bc078aed0ab14530690e901ca890) (load bias 0x1000)
f0822000-f0822fff rw- 0 1000 /system/lib/libandroid_runtime_lazy.so (BuildId: 5711bc078aed0ab14530690e901ca890) (load bias 0x1000)
f086c000-f08a5fff r-- 0 3a000 /vendor/lib/mt6785/libdpframework.so (BuildId: 16f7f5c344b9f4c715cf1b5f47531f80) (load bias 0x1000)
f08a6000-f0962fff r-x 39000 bd000 /vendor/lib/mt6785/libdpframework.so (BuildId: 16f7f5c344b9f4c715cf1b5f47531f80) (load bias 0x1000)
f0963000-f0965fff r-- f5000 3000 /vendor/lib/mt6785/libdpframework.so (BuildId: 16f7f5c344b9f4c715cf1b5f47531f80) (load bias 0x1000)
f0966000-f0966fff rw- f7000 1000 /vendor/lib/mt6785/libdpframework.so (BuildId: 16f7f5c344b9f4c715cf1b5f47531f80) (load bias 0x1000)
f0967000-f0970fff rw- 0 a000 [anon:.bss]
f0998000-f0998fff r-- 0 1000 /system/lib/libnativeloader_lazy.so (BuildId: 02ecfe605a095c97c3ac0b9e6013a6f8) (load bias 0x1000)
f0999000-f0999fff r-x 0 1000 /system/lib/libnativeloader_lazy.so (BuildId: 02ecfe605a095c97c3ac0b9e6013a6f8) (load bias 0x1000)
f099a000-f099afff r-- 0 1000 /system/lib/libnativeloader_lazy.so (BuildId: 02ecfe605a095c97c3ac0b9e6013a6f8) (load bias 0x1000)
f099b000-f099bfff rw- 0 1000 /system/lib/libnativeloader_lazy.so (BuildId: 02ecfe605a095c97c3ac0b9e6013a6f8) (load bias 0x1000)
f09c1000-f09c6fff r-- 0 6000 /system/lib/libdmabufheap.so (BuildId: 36d27745e31462131db5b1beddd9b754) (load bias 0x1000)
f09c7000-f09cefff r-x 5000 8000 /system/lib/libdmabufheap.so (BuildId: 36d27745e31462131db5b1beddd9b754) (load bias 0x1000)
f09cf000-f09d0fff r-- c000 2000 /system/lib/libdmabufheap.so (BuildId: 36d27745e31462131db5b1beddd9b754) (load bias 0x1000)
f09d1000-f09d1fff rw- d000 1000 /system/lib/libdmabufheap.so (BuildId: 36d27745e31462131db5b1beddd9b754) (load bias 0x1000)
f0a32000-f0a32fff r-- 0 1000 /apex/com.android.vndk.v31/lib/android.hidl.token@1.0-utils.so (BuildId: 11557b980fb81122769a51c74233c262) (load bias 0x1000)
f0a33000-f0a34fff r-x 0 2000 /apex/com.android.vndk.v31/lib/android.hidl.token@1.0-utils.so (BuildId: 11557b980fb81122769a51c74233c262) (load bias 0x1000)
f0a35000-f0a35fff r-- 1000 1000 /apex/com.android.vndk.v31/lib/android.hidl.token@1.0-utils.so (BuildId: 11557b980fb81122769a51c74233c262) (load bias 0x1000)
f0a36000-f0a36fff rw- 1000 1000 /apex/com.android.vndk.v31/lib/android.hidl.token@1.0-utils.so (BuildId: 11557b980fb81122769a51c74233c262) (load bias 0x1000)
f0a59000-f0a66fff r-- 0 e000 /apex/com.android.vndk.v31/lib/libstagefright_foundation.so (BuildId: 855584cfc266442e6cd47e4665f4b072) (load bias 0x1000)
f0a67000-f0a75fff r-x d000 f000 /apex/com.android.vndk.v31/lib/libstagefright_foundation.so (BuildId: 855584cfc266442e6cd47e4665f4b072) (load bias 0x1000)
f0a76000-f0a77fff r-- 1b000 2000 /apex/com.android.vndk.v31/lib/libstagefright_foundation.so (BuildId: 855584cfc266442e6cd47e4665f4b072) (load bias 0x1000)
f0a78000-f0a78fff rw- 1c000 1000 /apex/com.android.vndk.v31/lib/libstagefright_foundation.so (BuildId: 855584cfc266442e6cd47e4665f4b072) (load bias 0x1000)
f0a84000-f0a84fff r-- 0 1000 /system/lib/libsync.so (BuildId: 3052b35194b382c39f269902180cc23c) (load bias 0x1000)
f0a85000-f0a85fff r-x 0 1000 /system/lib/libsync.so (BuildId: 3052b35194b382c39f269902180cc23c) (load bias 0x1000)
f0a86000-f0a86fff r-- 0 1000 /system/lib/libsync.so (BuildId: 3052b35194b382c39f269902180cc23c) (load bias 0x1000)
f0a87000-f0a87fff rw- 0 1000 /system/lib/libsync.so (BuildId: 3052b35194b382c39f269902180cc23c) (load bias 0x1000)
f0adf000-f0aecfff r-- 0 e000 /apex/com.android.vndk.v31/lib/libminijail.so (BuildId: 9b1b4e90dc9d48359039581e34596a54) (load bias 0x1000)
f0aed000-f0af5fff r-x d000 9000 /apex/com.android.vndk.v31/lib/libminijail.so (BuildId: 9b1b4e90dc9d48359039581e34596a54) (load bias 0x1000)
f0af6000-f0afbfff r-- 15000 6000 /apex/com.android.vndk.v31/lib/libminijail.so (BuildId: 9b1b4e90dc9d48359039581e34596a54) (load bias 0x1000)
f0afc000-f0afcfff rw- 1a000 1000 /apex/com.android.vndk.v31/lib/libminijail.so (BuildId: 9b1b4e90dc9d48359039581e34596a54) (load bias 0x1000)
f0b20000-f0b20fff r-- 0 1000 /system/lib/android.hardware.graphics.common@1.1.so (BuildId: bfd6ed96e452b60795fc1964758ed346) (load bias 0x1000)
f0b21000-f0b21fff r-x 0 1000 /system/lib/android.hardware.graphics.common@1.1.so (BuildId: bfd6ed96e452b60795fc1964758ed346) (load bias 0x1000)
f0b22000-f0b22fff r-- 0 1000 /system/lib/android.hardware.graphics.common@1.1.so (BuildId: bfd6ed96e452b60795fc1964758ed346) (load bias 0x1000)
f0b70000-f0b75fff r-- 0 6000 /system/lib/libgralloctypes.so (BuildId: dcdab6c7c2ffb18aaccacd051edbab3a) (load bias 0x1000)
f0b76000-f0b7cfff r-x 5000 7000 /system/lib/libgralloctypes.so (BuildId: dcdab6c7c2ffb18aaccacd051edbab3a) (load bias 0x1000)
f0b7d000-f0b7dfff r-- b000 1000 /system/lib/libgralloctypes.so (BuildId: dcdab6c7c2ffb18aaccacd051edbab3a) (load bias 0x1000)
f0b7e000-f0b7efff rw- b000 1000 /system/lib/libgralloctypes.so (BuildId: dcdab6c7c2ffb18aaccacd051edbab3a) (load bias 0x1000)
f0b7f000-f0b7ffff rw- 0 1000 [anon:.bss]
f0b96000-f0b9bfff r-- 0 6000 /system/lib/libbinder_ndk.so (BuildId: 709e4c8dfe5a260ea2685814c8e43ce3) (load bias 0x1000)
f0b9c000-f0ba2fff r-x 5000 7000 /system/lib/libbinder_ndk.so (BuildId: 709e4c8dfe5a260ea2685814c8e43ce3) (load bias 0x1000)
f0ba3000-f0ba4fff r-- b000 2000 /system/lib/libbinder_ndk.so (BuildId: 709e4c8dfe5a260ea2685814c8e43ce3) (load bias 0x1000)
f0ba5000-f0ba5fff rw- c000 1000 /system/lib/libbinder_ndk.so (BuildId: 709e4c8dfe5a260ea2685814c8e43ce3) (load bias 0x1000)
f0bc0000-f0bc1fff r-- 0 2000 /system/lib/android.hardware.graphics.common-V2-ndk_platform.so (BuildId: 59036969c5d3603ec08df4b76f13b742) (load bias 0x1000)
f0bc2000-f0bc3fff r-x 1000 2000 /system/lib/android.hardware.graphics.common-V2-ndk_platform.so (BuildId: 59036969c5d3603ec08df4b76f13b742) (load bias 0x1000)
f0bc4000-f0bc4fff r-- 2000 1000 /system/lib/android.hardware.graphics.common-V2-ndk_platform.so (BuildId: 59036969c5d3603ec08df4b76f13b742) (load bias 0x1000)
f0bc5000-f0bc5fff rw- 2000 1000 /system/lib/android.hardware.graphics.common-V2-ndk_platform.so (BuildId: 59036969c5d3603ec08df4b76f13b742) (load bias 0x1000)
f0c1e000-f0c27fff r-- 0 a000 /apex/com.android.vndk.v31/lib/android.hidl.memory@1.0.so (BuildId: 103536444c111e54c4e983ccad43c256) (load bias 0x1000)
f0c28000-f0c31fff r-x 9000 a000 /apex/com.android.vndk.v31/lib/android.hidl.memory@1.0.so (BuildId: 103536444c111e54c4e983ccad43c256) (load bias 0x1000)
f0c32000-f0c33fff r-- 12000 2000 /apex/com.android.vndk.v31/lib/android.hidl.memory@1.0.so (BuildId: 103536444c111e54c4e983ccad43c256) (load bias 0x1000)
f0c34000-f0c34fff rw- 13000 1000 /apex/com.android.vndk.v31/lib/android.hidl.memory@1.0.so (BuildId: 103536444c111e54c4e983ccad43c256) (load bias 0x1000)
f0c68000-f0c82fff r-- 0 1b000 /apex/com.android.vndk.v31/lib/android.hardware.media.omx@1.0.so (BuildId: a0667cb7857e3661b155c8b1c666b038) (load bias 0x1000)
f0c83000-f0ca6fff r-x 1a000 24000 /apex/com.android.vndk.v31/lib/android.hardware.media.omx@1.0.so (BuildId: a0667cb7857e3661b155c8b1c666b038) (load bias 0x1000)
f0ca7000-f0cabfff r-- 3d000 5000 /apex/com.android.vndk.v31/lib/android.hardware.media.omx@1.0.so (BuildId: a0667cb7857e3661b155c8b1c666b038) (load bias 0x1000)
f0cac000-f0cacfff rw- 41000 1000 /apex/com.android.vndk.v31/lib/android.hardware.media.omx@1.0.so (BuildId: a0667cb7857e3661b155c8b1c666b038) (load bias 0x1000)
f0ceb000-f0cf3fff r-- 0 9000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@3.0.so (BuildId: 9507e56e1e5de7206eaa97a371aa7bfc) (load bias 0x1000)
f0cf4000-f0cfafff r-x 8000 7000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@3.0.so (BuildId: 9507e56e1e5de7206eaa97a371aa7bfc) (load bias 0x1000)
f0cfb000-f0cfcfff r-- e000 2000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@3.0.so (BuildId: 9507e56e1e5de7206eaa97a371aa7bfc) (load bias 0x1000)
f0cfd000-f0cfdfff rw- f000 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@3.0.so (BuildId: 9507e56e1e5de7206eaa97a371aa7bfc) (load bias 0x1000)
f0d02000-f0d30fff r-- 0 2f000 /apex/com.android.vndk.v31/lib/libhidlbase.so (BuildId: 50f50cc38a6cdc062be70a1bbbb0bad1) (load bias 0x1000)
f0d31000-f0d71fff r-x 2e000 41000 /apex/com.android.vndk.v31/lib/libhidlbase.so (BuildId: 50f50cc38a6cdc062be70a1bbbb0bad1) (load bias 0x1000)
f0d72000-f0d77fff r-- 6e000 6000 /apex/com.android.vndk.v31/lib/libhidlbase.so (BuildId: 50f50cc38a6cdc062be70a1bbbb0bad1) (load bias 0x1000)
f0d78000-f0d78fff rw- 73000 1000 /apex/com.android.vndk.v31/lib/libhidlbase.so (BuildId: 50f50cc38a6cdc062be70a1bbbb0bad1) (load bias 0x1000)
f0d80000-f0d86fff r-- 0 7000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.allocator@4.0.so (BuildId: d65303a62cdfc79c178c1d1dad4edc38) (load bias 0x1000)
f0d87000-f0d8cfff r-x 6000 6000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.allocator@4.0.so (BuildId: d65303a62cdfc79c178c1d1dad4edc38) (load bias 0x1000)
f0d8d000-f0d8dfff r-- b000 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.allocator@4.0.so (BuildId: d65303a62cdfc79c178c1d1dad4edc38) (load bias 0x1000)
f0d8e000-f0d8efff rw- b000 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.allocator@4.0.so (BuildId: d65303a62cdfc79c178c1d1dad4edc38) (load bias 0x1000)
f0dc6000-f0de0fff r-- 0 1b000 /system/lib/libui.so (BuildId: bc002a1e36a3b21a6290509b34b72e43) (load bias 0x1000)
f0de1000-f0dfafff r-x 1a000 1a000 /system/lib/libui.so (BuildId: bc002a1e36a3b21a6290509b34b72e43) (load bias 0x1000)
f0dfb000-f0dfcfff r-- 33000 2000 /system/lib/libui.so (BuildId: bc002a1e36a3b21a6290509b34b72e43) (load bias 0x1000)
f0dfd000-f0dfdfff rw- 34000 1000 /system/lib/libui.so (BuildId: bc002a1e36a3b21a6290509b34b72e43) (load bias 0x1000)
f0dfe000-f0dfffff rw- 0 2000 [anon:.bss]
f0e29000-f0e29fff r-- 0 1000 /vendor/lib/libavservices_minijail_vendor.so (BuildId: 90984a862fb24c970398e435cfaa52d6) (load bias 0x1000)
f0e2a000-f0e2bfff r-x 0 2000 /vendor/lib/libavservices_minijail_vendor.so (BuildId: 90984a862fb24c970398e435cfaa52d6) (load bias 0x1000)
f0e2c000-f0e2cfff r-- 1000 1000 /vendor/lib/libavservices_minijail_vendor.so (BuildId: 90984a862fb24c970398e435cfaa52d6) (load bias 0x1000)
f0e49000-f0e5ffff r-- 0 17000 /apex/com.android.vndk.v31/lib/libstagefright_bufferqueue_helper.so (BuildId: d8f0aa4644493ed3f4016de6a8e65b57) (load bias 0x1000)
f0e60000-f0e79fff r-x 16000 1a000 /apex/com.android.vndk.v31/lib/libstagefright_bufferqueue_helper.so (BuildId: d8f0aa4644493ed3f4016de6a8e65b57) (load bias 0x1000)
f0e7a000-f0e7bfff r-- 2f000 2000 /apex/com.android.vndk.v31/lib/libstagefright_bufferqueue_helper.so (BuildId: d8f0aa4644493ed3f4016de6a8e65b57) (load bias 0x1000)
f0e7c000-f0e7cfff rw- 30000 1000 /apex/com.android.vndk.v31/lib/libstagefright_bufferqueue_helper.so (BuildId: d8f0aa4644493ed3f4016de6a8e65b57) (load bias 0x1000)
f0e90000-f0e90fff r-- 0 1000 /apex/com.android.runtime/lib/bionic/libdl_android.so (BuildId: 4feb419626be6300efdf3fe134d0e343) (load bias 0x1000)
f0e91000-f0e91fff r-x 0 1000 /apex/com.android.runtime/lib/bionic/libdl_android.so (BuildId: 4feb419626be6300efdf3fe134d0e343) (load bias 0x1000)
f0e92000-f0e92fff r-- 0 1000 /apex/com.android.runtime/lib/bionic/libdl_android.so (BuildId: 4feb419626be6300efdf3fe134d0e343) (load bias 0x1000)
f0ec6000-f0ecbfff r-- 0 6000 /system/lib/libbacktrace.so (BuildId: d73074cfc1f46e1eb37d368ef6501137) (load bias 0x1000)
f0ecc000-f0edefff r-x 5000 13000 /system/lib/libbacktrace.so (BuildId: d73074cfc1f46e1eb37d368ef6501137) (load bias 0x1000)
f0edf000-f0ee0fff r-- 17000 2000 /system/lib/libbacktrace.so (BuildId: d73074cfc1f46e1eb37d368ef6501137) (load bias 0x1000)
f0ee1000-f0ee1fff rw- 18000 1000 /system/lib/libbacktrace.so (BuildId: d73074cfc1f46e1eb37d368ef6501137) (load bias 0x1000)
f0f05000-f0f0afff r-- 0 6000 /apex/com.android.vndk.v31/lib/libbacktrace.so (BuildId: 05c52eac8be1ded3bdc57feccbc824c8) (load bias 0x1000)
f0f0b000-f0f1dfff r-x 5000 13000 /apex/com.android.vndk.v31/lib/libbacktrace.so (BuildId: 05c52eac8be1ded3bdc57feccbc824c8) (load bias 0x1000)
f0f1e000-f0f1ffff r-- 17000 2000 /apex/com.android.vndk.v31/lib/libbacktrace.so (BuildId: 05c52eac8be1ded3bdc57feccbc824c8) (load bias 0x1000)
f0f20000-f0f20fff rw- 18000 1000 /apex/com.android.vndk.v31/lib/libbacktrace.so (BuildId: 05c52eac8be1ded3bdc57feccbc824c8) (load bias 0x1000)
f0f45000-f0f77fff r-- 0 33000 /system/lib/libc++.so (BuildId: 3fa832c317b4e924cf0d0a5779adb44a) (load bias 0x1000)
f0f78000-f0fb6fff r-x 32000 3f000 /system/lib/libc++.so (BuildId: 3fa832c317b4e924cf0d0a5779adb44a) (load bias 0x1000)
f0fb7000-f0fbafff r-- 70000 4000 /system/lib/libc++.so (BuildId: 3fa832c317b4e924cf0d0a5779adb44a) (load bias 0x1000)
f0fbb000-f0fbbfff rw- 73000 1000 /system/lib/libc++.so (BuildId: 3fa832c317b4e924cf0d0a5779adb44a) (load bias 0x1000)
f0fbc000-f0fbcfff rw- 0 1000 [anon:.bss]
f0fc5000-f0fcefff r-- 0 a000 /system/lib/android.hardware.configstore@1.1.so (BuildId: 868af8878e0d3f261a633df589d2e1a0) (load bias 0x1000)
f0fcf000-f0fd5fff r-x 9000 7000 /system/lib/android.hardware.configstore@1.1.so (BuildId: 868af8878e0d3f261a633df589d2e1a0) (load bias 0x1000)
f0fd6000-f0fd6fff r-- f000 1000 /system/lib/android.hardware.configstore@1.1.so (BuildId: 868af8878e0d3f261a633df589d2e1a0) (load bias 0x1000)
f0fd7000-f0fd7fff rw- f000 1000 /system/lib/android.hardware.configstore@1.1.so (BuildId: 868af8878e0d3f261a633df589d2e1a0) (load bias 0x1000)
f101e000-f1020fff r-- 0 3000 /vendor/lib/libcodec2_hidl_plugin.so (BuildId: aa7fdbbd510c1c7e9f0448513c976f7e) (load bias 0x1000)
f1021000-f1029fff r-x 2000 9000 /vendor/lib/libcodec2_hidl_plugin.so (BuildId: aa7fdbbd510c1c7e9f0448513c976f7e) (load bias 0x1000)
f102a000-f102afff r-- a000 1000 /vendor/lib/libcodec2_hidl_plugin.so (BuildId: aa7fdbbd510c1c7e9f0448513c976f7e) (load bias 0x1000)
f1061000-f1062fff r-- 0 2000 /vendor/lib/libladder.so (BuildId: 4945bd755b414cbd71459db0449c96a9) (load bias 0x1000)
f1063000-f1064fff r-x 1000 2000 /vendor/lib/libladder.so (BuildId: 4945bd755b414cbd71459db0449c96a9) (load bias 0x1000)
f1065000-f1065fff r-- 2000 1000 /vendor/lib/libladder.so (BuildId: 4945bd755b414cbd71459db0449c96a9) (load bias 0x1000)
f1066000-f1066fff rw- 2000 1000 /vendor/lib/libladder.so (BuildId: 4945bd755b414cbd71459db0449c96a9) (load bias 0x1000)
f10a5000-f10adfff r-- 0 9000 /system/lib/android.hardware.graphics.mapper@2.1.so (BuildId: 26ff3d3ef9c03edb1ada0881769718fc) (load bias 0x1000)
f10ae000-f10b3fff r-x 8000 6000 /system/lib/android.hardware.graphics.mapper@2.1.so (BuildId: 26ff3d3ef9c03edb1ada0881769718fc) (load bias 0x1000)
f10b4000-f10b5fff r-- d000 2000 /system/lib/android.hardware.graphics.mapper@2.1.so (BuildId: 26ff3d3ef9c03edb1ada0881769718fc) (load bias 0x1000)
f10b6000-f10b6fff rw- e000 1000 /system/lib/android.hardware.graphics.mapper@2.1.so (BuildId: 26ff3d3ef9c03edb1ada0881769718fc) (load bias 0x1000)
f10cb000-f10cbfff r-- 0 1000 /vendor/lib/libgralloc_extra.so (BuildId: 2ea61a840bf2a980b2b4b1ef16bf53c9) (load bias 0x1000)
f10cc000-f10cffff r-x 0 4000 /vendor/lib/libgralloc_extra.so (BuildId: 2ea61a840bf2a980b2b4b1ef16bf53c9) (load bias 0x1000)
f10d0000-f10d0fff r-- 3000 1000 /vendor/lib/libgralloc_extra.so (BuildId: 2ea61a840bf2a980b2b4b1ef16bf53c9) (load bias 0x1000)
f10d1000-f10d1fff rw- 3000 1000 /vendor/lib/libgralloc_extra.so (BuildId: 2ea61a840bf2a980b2b4b1ef16bf53c9) (load bias 0x1000)
f110e000-f1117fff r-- 0 a000 /vendor/lib/libcodec2_hidl@1.2.so (BuildId: 5d44590e71aebaeaad739febea0103e9) (load bias 0x1000)
f1118000-f1121fff r-x 9000 a000 /vendor/lib/libcodec2_hidl@1.2.so (BuildId: 5d44590e71aebaeaad739febea0103e9) (load bias 0x1000)
f1122000-f1122fff r-- 12000 1000 /vendor/lib/libcodec2_hidl@1.2.so (BuildId: 5d44590e71aebaeaad739febea0103e9) (load bias 0x1000)
f1123000-f1123fff rw- 12000 1000 /vendor/lib/libcodec2_hidl@1.2.so (BuildId: 5d44590e71aebaeaad739febea0103e9) (load bias 0x1000)
f1159000-f1167fff r-- 0 f000 /apex/com.android.vndk.v31/lib/android.hardware.media.bufferpool@2.0.so (BuildId: 4429de32da7357bdabd96500ec34f019) (load bias 0x1000)
f1168000-f1177fff r-x e000 10000 /apex/com.android.vndk.v31/lib/android.hardware.media.bufferpool@2.0.so (BuildId: 4429de32da7357bdabd96500ec34f019) (load bias 0x1000)
f1178000-f117bfff r-- 1d000 4000 /apex/com.android.vndk.v31/lib/android.hardware.media.bufferpool@2.0.so (BuildId: 4429de32da7357bdabd96500ec34f019) (load bias 0x1000)
f117c000-f117cfff rw- 20000 1000 /apex/com.android.vndk.v31/lib/android.hardware.media.bufferpool@2.0.so (BuildId: 4429de32da7357bdabd96500ec34f019) (load bias 0x1000)
f11ab000-f11abfff r-- 0 1000 /apex/com.android.vndk.v31/lib/android.hardware.media@1.0.so (BuildId: 5dfb13a1b4c49c5281dfc0e5e402882b) (load bias 0x1000)
f11ac000-f11acfff r-x 0 1000 /apex/com.android.vndk.v31/lib/android.hardware.media@1.0.so (BuildId: 5dfb13a1b4c49c5281dfc0e5e402882b) (load bias 0x1000)
f11ad000-f11adfff r-- 0 1000 /apex/com.android.vndk.v31/lib/android.hardware.media@1.0.so (BuildId: 5dfb13a1b4c49c5281dfc0e5e402882b) (load bias 0x1000)
f11c2000-f11c2fff r-- 0 1000 /system/lib/libgralloc_extra_sys.so (BuildId: cb2f5d0304cb8a3d45ed05567bf8a65b) (load bias 0x1000)
f11c3000-f11c4fff r-x 0 2000 /system/lib/libgralloc_extra_sys.so (BuildId: cb2f5d0304cb8a3d45ed05567bf8a65b) (load bias 0x1000)
f11c5000-f11c5fff r-- 1000 1000 /system/lib/libgralloc_extra_sys.so (BuildId: cb2f5d0304cb8a3d45ed05567bf8a65b) (load bias 0x1000)
f11c6000-f11c6fff rw- 1000 1000 /system/lib/libgralloc_extra_sys.so (BuildId: cb2f5d0304cb8a3d45ed05567bf8a65b) (load bias 0x1000)
f1201000-f1231fff r-- 0 31000 /vendor/lib/libcodec2_vndk.so (BuildId: c379917546800a010bb9013f5446ad06) (load bias 0x1000)
f1232000-f1273fff r-x 30000 42000 /vendor/lib/libcodec2_vndk.so (BuildId: c379917546800a010bb9013f5446ad06) (load bias 0x1000)
f1274000-f1276fff r-- 71000 3000 /vendor/lib/libcodec2_vndk.so (BuildId: c379917546800a010bb9013f5446ad06) (load bias 0x1000)
f1277000-f1277fff rw- 73000 1000 /vendor/lib/libcodec2_vndk.so (BuildId: c379917546800a010bb9013f5446ad06) (load bias 0x1000)
f129d000-f12a5fff r-- 0 9000 /vendor/lib/libformatter.so (BuildId: cf5efaad0b100dd3ee1df60ab27545d4) (load bias 0x1000)
f12a6000-f12b7fff r-x 8000 12000 /vendor/lib/libformatter.so (BuildId: cf5efaad0b100dd3ee1df60ab27545d4) (load bias 0x1000)
f12b8000-f12b8fff r-- 19000 1000 /vendor/lib/libformatter.so (BuildId: cf5efaad0b100dd3ee1df60ab27545d4) (load bias 0x1000)
f12b9000-f12b9fff rw- 19000 1000 /vendor/lib/libformatter.so (BuildId: cf5efaad0b100dd3ee1df60ab27545d4) (load bias 0x1000)
f12ec000-f12ecfff r-- 0 1000 /vendor/lib/libcodec2_vpp_rs_plugin.so (BuildId: f24275b8a9d211e4f110719378751e44) (load bias 0x1000)
f12ed000-f12eefff r-x 0 2000 /vendor/lib/libcodec2_vpp_rs_plugin.so (BuildId: f24275b8a9d211e4f110719378751e44) (load bias 0x1000)
f12ef000-f12effff r-- 1000 1000 /vendor/lib/libcodec2_vpp_rs_plugin.so (BuildId: f24275b8a9d211e4f110719378751e44) (load bias 0x1000)
f130b000-f131efff r-- 0 14000 /vendor/lib/libcodec2_hidl@1.0.so (BuildId: bf14d41fed7e1a61dac9101f5957fa82) (load bias 0x1000)
f131f000-f1338fff r-x 13000 1a000 /vendor/lib/libcodec2_hidl@1.0.so (BuildId: bf14d41fed7e1a61dac9101f5957fa82) (load bias 0x1000)
f1339000-f133bfff r-- 2c000 3000 /vendor/lib/libcodec2_hidl@1.0.so (BuildId: bf14d41fed7e1a61dac9101f5957fa82) (load bias 0x1000)
f133c000-f133cfff rw- 2e000 1000 /vendor/lib/libcodec2_hidl@1.0.so (BuildId: bf14d41fed7e1a61dac9101f5957fa82) (load bias 0x1000)
f134e000-f134efff r-- 0 1000 /vendor/lib/libfmq.so (BuildId: 48fa3a48ede37cc11701fe37dcd7dd60) (load bias 0x1000)
f134f000-f1351fff r-x 0 3000 /vendor/lib/libfmq.so (BuildId: 48fa3a48ede37cc11701fe37dcd7dd60) (load bias 0x1000)
f1352000-f1352fff r-- 2000 1000 /vendor/lib/libfmq.so (BuildId: 48fa3a48ede37cc11701fe37dcd7dd60) (load bias 0x1000)
f1395000-f13a0fff r-- 0 c000 /system/lib/libbase.so (BuildId: f0df3e21334e7c65f09a04aca7f681f9) (load bias 0x1000)
f13a1000-f13bdfff r-x b000 1d000 /system/lib/libbase.so (BuildId: f0df3e21334e7c65f09a04aca7f681f9) (load bias 0x1000)
f13be000-f13befff r-- 27000 1000 /system/lib/libbase.so (BuildId: f0df3e21334e7c65f09a04aca7f681f9) (load bias 0x1000)
f13bf000-f13bffff rw- 27000 1000 /system/lib/libbase.so (BuildId: f0df3e21334e7c65f09a04aca7f681f9) (load bias 0x1000)
f13e5000-f13e7fff r-- 0 3000 /system/lib/liblog.so (BuildId: 87e72dace62234e57df1e1227bce5a6f) (load bias 0x1000)
f13e8000-f13effff r-x 2000 8000 /system/lib/liblog.so (BuildId: 87e72dace62234e57df1e1227bce5a6f) (load bias 0x1000)
f13f0000-f13f0fff r-- 9000 1000 /system/lib/liblog.so (BuildId: 87e72dace62234e57df1e1227bce5a6f) (load bias 0x1000)
f13f1000-f13f1fff rw- 9000 1000 /system/lib/liblog.so (BuildId: 87e72dace62234e57df1e1227bce5a6f) (load bias 0x1000)
f1403000-f1408fff r-- 0 6000 /apex/com.android.vndk.v31/lib/libgralloctypes.so (BuildId: f1b5787ad5ebfd1cdd1456b20621891d) (load bias 0x1000)
f1409000-f140ffff r-x 5000 7000 /apex/com.android.vndk.v31/lib/libgralloctypes.so (BuildId: f1b5787ad5ebfd1cdd1456b20621891d) (load bias 0x1000)
f1410000-f1410fff r-- b000 1000 /apex/com.android.vndk.v31/lib/libgralloctypes.so (BuildId: f1b5787ad5ebfd1cdd1456b20621891d) (load bias 0x1000)
f1411000-f1411fff rw- b000 1000 /apex/com.android.vndk.v31/lib/libgralloctypes.so (BuildId: f1b5787ad5ebfd1cdd1456b20621891d) (load bias 0x1000)
f1412000-f1412fff rw- 0 1000 [anon:.bss]
f1445000-f1473fff r-- 0 2f000 /system/lib/libhidlbase.so (BuildId: d08a58361af836ff75aa90cc31fa003e) (load bias 0x1000)
f1474000-f14b4fff r-x 2e000 41000 /system/lib/libhidlbase.so (BuildId: d08a58361af836ff75aa90cc31fa003e) (load bias 0x1000)
f14b5000-f14bafff r-- 6e000 6000 /system/lib/libhidlbase.so (BuildId: d08a58361af836ff75aa90cc31fa003e) (load bias 0x1000)
f14bb000-f14bbfff rw- 73000 1000 /system/lib/libhidlbase.so (BuildId: d08a58361af836ff75aa90cc31fa003e) (load bias 0x1000)
f14c6000-f14f8fff r-- 0 33000 /apex/com.android.vndk.v31/lib/libc++.so (BuildId: 9269734603b2809fe2849fcd2abf689c) (load bias 0x1000)
f14f9000-f1537fff r-x 32000 3f000 /apex/com.android.vndk.v31/lib/libc++.so (BuildId: 9269734603b2809fe2849fcd2abf689c) (load bias 0x1000)
f1538000-f153bfff r-- 70000 4000 /apex/com.android.vndk.v31/lib/libc++.so (BuildId: 9269734603b2809fe2849fcd2abf689c) (load bias 0x1000)
f153c000-f153cfff rw- 73000 1000 /apex/com.android.vndk.v31/lib/libc++.so (BuildId: 9269734603b2809fe2849fcd2abf689c) (load bias 0x1000)
f153d000-f153dfff rw- 0 1000 [anon:.bss]
f156e000-f1574fff r-- 0 7000 /apex/com.android.vndk.v31/lib/android.hidl.memory.token@1.0.so (BuildId: 4d159e0dc344fa801086ab21a7a50f38) (load bias 0x1000)
f1575000-f1579fff r-x 6000 5000 /apex/com.android.vndk.v31/lib/android.hidl.memory.token@1.0.so (BuildId: 4d159e0dc344fa801086ab21a7a50f38) (load bias 0x1000)
f157a000-f157bfff r-- a000 2000 /apex/com.android.vndk.v31/lib/android.hidl.memory.token@1.0.so (BuildId: 4d159e0dc344fa801086ab21a7a50f38) (load bias 0x1000)
f157c000-f157cfff rw- b000 1000 /apex/com.android.vndk.v31/lib/android.hidl.memory.token@1.0.so (BuildId: 4d159e0dc344fa801086ab21a7a50f38) (load bias 0x1000)
f1580000-f1584fff rw- 0 5000 [anon:libc_malloc]
f158f000-f159cfff r-- 0 e000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.bufferqueue@2.0.so (BuildId: 334f52f097fd3c3c0e5e239223647e3f) (load bias 0x1000)
f159d000-f15acfff r-x d000 10000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.bufferqueue@2.0.so (BuildId: 334f52f097fd3c3c0e5e239223647e3f) (load bias 0x1000)
f15ad000-f15aefff r-- 1c000 2000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.bufferqueue@2.0.so (BuildId: 334f52f097fd3c3c0e5e239223647e3f) (load bias 0x1000)
f15af000-f15affff rw- 1d000 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.bufferqueue@2.0.so (BuildId: 334f52f097fd3c3c0e5e239223647e3f) (load bias 0x1000)
f15d3000-f15d3fff r-- 0 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.common@1.0.so (BuildId: b72217b6ef1130517e637ccd580b2c4f) (load bias 0x1000)
f15d4000-f15d4fff r-x 0 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.common@1.0.so (BuildId: b72217b6ef1130517e637ccd580b2c4f) (load bias 0x1000)
f15d5000-f15d5fff r-- 0 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.common@1.0.so (BuildId: b72217b6ef1130517e637ccd580b2c4f) (load bias 0x1000)
f15d7000-f15d9fff rw- 0 3000 [anon:libc_malloc]
f161f000-f1627fff r-- 0 9000 /apex/com.android.vndk.v31/lib/libutils.so (BuildId: 01cc528c610468531ef44927a06cdeb9) (load bias 0x1000)
f1628000-f1631fff r-x 8000 a000 /apex/com.android.vndk.v31/lib/libutils.so (BuildId: 01cc528c610468531ef44927a06cdeb9) (load bias 0x1000)
f1632000-f1632fff r-- 11000 1000 /apex/com.android.vndk.v31/lib/libutils.so (BuildId: 01cc528c610468531ef44927a06cdeb9) (load bias 0x1000)
f1633000-f1633fff rw- 11000 1000 /apex/com.android.vndk.v31/lib/libutils.so (BuildId: 01cc528c610468531ef44927a06cdeb9) (load bias 0x1000)
f165b000-f165cfff r-- 0 2000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.common-V2-ndk_platform.so (BuildId: 2696a119806aba230483bb259013380d) (load bias 0x1000)
f165d000-f165efff r-x 1000 2000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.common-V2-ndk_platform.so (BuildId: 2696a119806aba230483bb259013380d) (load bias 0x1000)
f165f000-f165ffff r-- 2000 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.common-V2-ndk_platform.so (BuildId: 2696a119806aba230483bb259013380d) (load bias 0x1000)
f1660000-f1660fff rw- 2000 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.common-V2-ndk_platform.so (BuildId: 2696a119806aba230483bb259013380d) (load bias 0x1000)
f1661000-f1666fff rw- 0 6000 [anon:libc_malloc]
f16a5000-f16a9fff r-- 0 5000 /system/lib/libcutils.so (BuildId: 4b492fe1ed424cc321c63f65e7fc4718) (load bias 0x1000)
f16aa000-f16b0fff r-x 4000 7000 /system/lib/libcutils.so (BuildId: 4b492fe1ed424cc321c63f65e7fc4718) (load bias 0x1000)
f16b1000-f16b2fff r-- a000 2000 /system/lib/libcutils.so (BuildId: 4b492fe1ed424cc321c63f65e7fc4718) (load bias 0x1000)
f16b3000-f16b3fff rw- b000 1000 /system/lib/libcutils.so (BuildId: 4b492fe1ed424cc321c63f65e7fc4718) (load bias 0x1000)
f16b4000-f16b4fff rw- 0 1000 [anon:libc_malloc]
f16ca000-f16cafff r-- 0 1000 /apex/com.android.vndk.v31/lib/android.hidl.safe_union@1.0.so (BuildId: a224ed3b39e02e3db9579fe15c0a53a9) (load bias 0x1000)
f16cb000-f16cbfff r-x 0 1000 /apex/com.android.vndk.v31/lib/android.hidl.safe_union@1.0.so (BuildId: a224ed3b39e02e3db9579fe15c0a53a9) (load bias 0x1000)
f16cc000-f16ccfff r-- 0 1000 /apex/com.android.vndk.v31/lib/android.hidl.safe_union@1.0.so (BuildId: a224ed3b39e02e3db9579fe15c0a53a9) (load bias 0x1000)
f172e000-f1736fff r-- 0 9000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@2.1.so (BuildId: be13a9c60140b86da4e3c6ca55ae2055) (load bias 0x1000)
f1737000-f173cfff r-x 8000 6000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@2.1.so (BuildId: be13a9c60140b86da4e3c6ca55ae2055) (load bias 0x1000)
f173d000-f173efff r-- d000 2000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@2.1.so (BuildId: be13a9c60140b86da4e3c6ca55ae2055) (load bias 0x1000)
f173f000-f173ffff rw- e000 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.mapper@2.1.so (BuildId: be13a9c60140b86da4e3c6ca55ae2055) (load bias 0x1000)
f1747000-f1753fff r-- 0 d000 /system/lib/libEGL.so (BuildId: 939a23e8565c0ac2943ded27ca01c92f) (load bias 0x1000)
f1754000-f1764fff r-x c000 11000 /system/lib/libEGL.so (BuildId: 939a23e8565c0ac2943ded27ca01c92f) (load bias 0x1000)
f1765000-f1767fff r-- 1c000 3000 /system/lib/libEGL.so (BuildId: 939a23e8565c0ac2943ded27ca01c92f) (load bias 0x1000)
f1768000-f1768fff rw- 1e000 1000 /system/lib/libEGL.so (BuildId: 939a23e8565c0ac2943ded27ca01c92f) (load bias 0x1000)
f1769000-f176cfff rw- 0 4000 [anon:.bss]
f176e000-f1770fff rw- 0 3000 [anon:libc_malloc]
f1796000-f1798fff r-- 0 3000 /system/lib/libnativewindow.so (BuildId: 3e550f405850757ef344911e5b3c89f4) (load bias 0x1000)
f1799000-f179afff r-x 2000 2000 /system/lib/libnativewindow.so (BuildId: 3e550f405850757ef344911e5b3c89f4) (load bias 0x1000)
f179b000-f179bfff r-- 3000 1000 /system/lib/libnativewindow.so (BuildId: 3e550f405850757ef344911e5b3c89f4) (load bias 0x1000)
f17cf000-f17defff r-- 0 10000 /vendor/lib/android.hardware.media.c2@1.2.so (BuildId: ab2610687e6088d535041493a3cd0c72) (load bias 0x1000)
f17df000-f17edfff r-x f000 f000 /vendor/lib/android.hardware.media.c2@1.2.so (BuildId: ab2610687e6088d535041493a3cd0c72) (load bias 0x1000)
f17ee000-f17f0fff r-- 1d000 3000 /vendor/lib/android.hardware.media.c2@1.2.so (BuildId: ab2610687e6088d535041493a3cd0c72) (load bias 0x1000)
f17f1000-f17f1fff rw- 1f000 1000 /vendor/lib/android.hardware.media.c2@1.2.so (BuildId: ab2610687e6088d535041493a3cd0c72) (load bias 0x1000)
f180e000-f1817fff r-- 0 a000 /system/lib/android.hardware.configstore@1.0.so (BuildId: 32bf0026f4737c143b9b18805d59989e) (load bias 0x1000)
f1818000-f1820fff r-x 9000 9000 /system/lib/android.hardware.configstore@1.0.so (BuildId: 32bf0026f4737c143b9b18805d59989e) (load bias 0x1000)
f1821000-f1822fff r-- 11000 2000 /system/lib/android.hardware.configstore@1.0.so (BuildId: 32bf0026f4737c143b9b18805d59989e) (load bias 0x1000)
f1823000-f1823fff rw- 12000 1000 /system/lib/android.hardware.configstore@1.0.so (BuildId: 32bf0026f4737c143b9b18805d59989e) (load bias 0x1000)
f1860000-f1861fff r-- 0 2000 /system/lib/libutilscallstack.so (BuildId: 584eb30d288c02735ceea0d216abfa87) (load bias 0x1000)
f1862000-f1863fff r-x 1000 2000 /system/lib/libutilscallstack.so (BuildId: 584eb30d288c02735ceea0d216abfa87) (load bias 0x1000)
f1864000-f1865fff r-- 2000 2000 /system/lib/libutilscallstack.so (BuildId: 584eb30d288c02735ceea0d216abfa87) (load bias 0x1000)
f1868000-f186afff rw- 0 3000 [anon:libc_malloc]
f1899000-f189cfff r-- 0 4000 /system/lib/liblzma.so (BuildId: 93d004e182e7a6c2e1cafb08c4f1efdb) (load bias 0x1000)
f189d000-f18b4fff r-x 3000 18000 /system/lib/liblzma.so (BuildId: 93d004e182e7a6c2e1cafb08c4f1efdb) (load bias 0x1000)
f18b5000-f18b5fff r-- 1a000 1000 /system/lib/liblzma.so (BuildId: 93d004e182e7a6c2e1cafb08c4f1efdb) (load bias 0x1000)
f18b6000-f18b6fff rw- 1a000 1000 /system/lib/liblzma.so (BuildId: 93d004e182e7a6c2e1cafb08c4f1efdb) (load bias 0x1000)
f18b7000-f18bcfff rw- 0 6000 [anon:.bss]
f18d1000-f18d7fff r-- 0 7000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.allocator@3.0.so (BuildId: dc8a6447810fff91e0b98edd7260d44e) (load bias 0x1000)
f18d8000-f18ddfff r-x 6000 6000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.allocator@3.0.so (BuildId: dc8a6447810fff91e0b98edd7260d44e) (load bias 0x1000)
f18de000-f18dffff r-- b000 2000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.allocator@3.0.so (BuildId: dc8a6447810fff91e0b98edd7260d44e) (load bias 0x1000)
f18e0000-f18e0fff rw- c000 1000 /apex/com.android.vndk.v31/lib/android.hardware.graphics.allocator@3.0.so (BuildId: dc8a6447810fff91e0b98edd7260d44e) (load bias 0x1000)
f1923000-f1923fff r-- 0 1000 /system/lib/libnativebridge_lazy.so (BuildId: eba545eac959f1cedf025174f3ff1962) (load bias 0x1000)
f1924000-f1924fff r-x 0 1000 /system/lib/libnativebridge_lazy.so (BuildId: eba545eac959f1cedf025174f3ff1962) (load bias 0x1000)
f1925000-f1925fff r-- 0 1000 /system/lib/libnativebridge_lazy.so (BuildId: eba545eac959f1cedf025174f3ff1962) (load bias 0x1000)
f1926000-f1926fff rw- 0 1000 /system/lib/libnativebridge_lazy.so (BuildId: eba545eac959f1cedf025174f3ff1962) (load bias 0x1000)
f1930000-f1934fff rw- 0 5000 [anon:libc_malloc]
f1942000-f1942fff rw- 0 1000 [anon:libc_malloc]
f1948000-f1961fff r-- 0 1a000 /vendor/lib/libcodec2_mtk_venc.so (BuildId: dd576886813fc12c08aa38bf1b882f9d) (load bias 0x1000)
f1962000-f1a08fff r-x 19000 a7000 /vendor/lib/libcodec2_mtk_venc.so (BuildId: dd576886813fc12c08aa38bf1b882f9d) (load bias 0x1000)
f1a09000-f1a0dfff r-- bf000 5000 /vendor/lib/libcodec2_mtk_venc.so (BuildId: dd576886813fc12c08aa38bf1b882f9d) (load bias 0x1000)
f1a0e000-f1a0efff rw- c3000 1000 /vendor/lib/libcodec2_mtk_venc.so (BuildId: dd576886813fc12c08aa38bf1b882f9d) (load bias 0x1000)
f1a0f000-f1a0ffff rw- 0 1000 [anon:.bss]
f1a14000-f1a14fff rw- 0 1000 [anon:libc_malloc]
f1a2b000-f1a4afff r-- 0 20000 /dev/__properties__/u:object_r:use_memfd_prop:s0
f1a4b000-f1a53fff r-- 0 9000 /apex/com.android.runtime/lib/bionic/libm.so (BuildId: 472ab5cba2223997f46fd7548a6bd73d) (load bias 0x1000)
f1a54000-f1a68fff r-x 8000 15000 /apex/com.android.runtime/lib/bionic/libm.so (BuildId: 472ab5cba2223997f46fd7548a6bd73d) (load bias 0x1000)
f1a69000-f1a69fff r-- 1c000 1000 /apex/com.android.runtime/lib/bionic/libm.so (BuildId: 472ab5cba2223997f46fd7548a6bd73d) (load bias 0x1000)
f1a6a000-f1a6afff rw- 1c000 1000 /apex/com.android.runtime/lib/bionic/libm.so (BuildId: 472ab5cba2223997f46fd7548a6bd73d) (load bias 0x1000)
f1a79000-f1a7dfff rw- 0 5000 [anon:libc_malloc]
f1a8d000-f1ab4fff r-- 0 28000 /system/lib/libbinder.so (BuildId: 7c601ac21493e365aafc5c0fd5215523) (load bias 0x1000)
f1ab5000-f1ae6fff r-x 27000 32000 /system/lib/libbinder.so (BuildId: 7c601ac21493e365aafc5c0fd5215523) (load bias 0x1000)
f1ae7000-f1aedfff r-- 58000 7000 /system/lib/libbinder.so (BuildId: 7c601ac21493e365aafc5c0fd5215523) (load bias 0x1000)
f1aee000-f1aeffff rw- 5e000 2000 /system/lib/libbinder.so (BuildId: 7c601ac21493e365aafc5c0fd5215523) (load bias 0x1000)
f1af9000-f1b12fff rw- 0 1a000 [anon:libc_malloc]
f1b13000-f1b21fff r-- 0 f000 /vendor/lib/android.hardware.media.c2@1.1.so (BuildId: d78731aafc9bee774886b68cfac9e856) (load bias 0x1000)
f1b22000-f1b2ffff r-x e000 e000 /vendor/lib/android.hardware.media.c2@1.1.so (BuildId: d78731aafc9bee774886b68cfac9e856) (load bias 0x1000)
f1b30000-f1b31fff r-- 1b000 2000 /vendor/lib/android.hardware.media.c2@1.1.so (BuildId: d78731aafc9bee774886b68cfac9e856) (load bias 0x1000)
f1b32000-f1b32fff rw- 1c000 1000 /vendor/lib/android.hardware.media.c2@1.1.so (BuildId: d78731aafc9bee774886b68cfac9e856) (load bias 0x1000)
f1b35000-f1b35fff rw- 0 1000 [anon:libc_malloc]
f1b4b000-f1b6afff r-- 0 20000 /dev/__properties__/u:object_r:codec2_config_prop:s0
f1b6b000-f1b6bfff r-- 0 1000 /system/lib/android.hardware.graphics.common@1.0.so (BuildId: 9bb22b0fcf6189e7432d88a132c5858b) (load bias 0x1000)
f1b6c000-f1b6cfff r-x 0 1000 /system/lib/android.hardware.graphics.common@1.0.so (BuildId: 9bb22b0fcf6189e7432d88a132c5858b) (load bias 0x1000)
f1b6d000-f1b6dfff r-- 0 1000 /system/lib/android.hardware.graphics.common@1.0.so (BuildId: 9bb22b0fcf6189e7432d88a132c5858b) (load bias 0x1000)
f1b6e000-f1b6efff rw- 0 1000 [anon:libc_malloc]
f1b73000-f1b73fff rw- 0 1000 [anon:libc_malloc]
f1b77000-f1b82fff rw- 0 c000 [anon:libc_malloc]
f1b83000-f1b89fff r-- 0 7000 /system/lib/android.hardware.graphics.allocator@2.0.so (BuildId: e279cd21d6cb10fde1af1486279f9c8a) (load bias 0x1000)
f1b8a000-f1b8ffff r-x 6000 6000 /system/lib/android.hardware.graphics.allocator@2.0.so (BuildId: e279cd21d6cb10fde1af1486279f9c8a) (load bias 0x1000)
f1b90000-f1b91fff r-- b000 2000 /system/lib/android.hardware.graphics.allocator@2.0.so (BuildId: e279cd21d6cb10fde1af1486279f9c8a) (load bias 0x1000)
f1b92000-f1b92fff rw- c000 1000 /system/lib/android.hardware.graphics.allocator@2.0.so (BuildId: e279cd21d6cb10fde1af1486279f9c8a) (load bias 0x1000)
f1ba4000-f1baafff rw- 0 7000 [anon:libc_malloc]
f1bc4000-f1bd7fff r-- 0 14000 /system/lib/libprocessgroup.so (BuildId: 6493cfd1a222de5bf78a3ab82a45c7fb) (load bias 0x1000)
f1bd8000-f1bfcfff r-x 13000 25000 /system/lib/libprocessgroup.so (BuildId: 6493cfd1a222de5bf78a3ab82a45c7fb) (load bias 0x1000)
f1bfd000-f1bfdfff r-- 37000 1000 /system/lib/libprocessgroup.so (BuildId: 6493cfd1a222de5bf78a3ab82a45c7fb) (load bias 0x1000)
f1bfe000-f1bfefff --- 0 1000
f1bff000-f1bfffff rw- 0 1000 [anon:.bss]
f1c05000-f1c0ffff r-- 0 b000 /vendor/lib/libsfplugin_ccodec_utils.so (BuildId: 875e6f5aabe6a893269b9a789e6e68b9) (load bias 0x1000)
f1c10000-f1c10fff --- 0 1000
f1c11000-f1c38fff r-x b000 28000 /vendor/lib/libsfplugin_ccodec_utils.so (BuildId: 875e6f5aabe6a893269b9a789e6e68b9) (load bias 0x1000)
f1c39000-f1c39fff r-- 32000 1000 /vendor/lib/libsfplugin_ccodec_utils.so (BuildId: 875e6f5aabe6a893269b9a789e6e68b9) (load bias 0x1000)
f1c3a000-f1c3afff rw- 32000 1000 /vendor/lib/libsfplugin_ccodec_utils.so (BuildId: 875e6f5aabe6a893269b9a789e6e68b9) (load bias 0x1000)
f1c3b000-f1c3bfff rw- 0 1000 [anon:.bss]
f1c3c000-f1c3efff rw- 0 3000 [anon:libc_malloc]
f1c51000-f1c76fff r-- 0 26000 /apex/com.android.vndk.v31/lib/libbinder.so (BuildId: e8283d1fcdb5131aac09bc61b03b567d) (load bias 0x1000)
f1c77000-f1ca6fff r-x 25000 30000 /apex/com.android.vndk.v31/lib/libbinder.so (BuildId: e8283d1fcdb5131aac09bc61b03b567d) (load bias 0x1000)
f1ca7000-f1cadfff r-- 54000 7000 /apex/com.android.vndk.v31/lib/libbinder.so (BuildId: e8283d1fcdb5131aac09bc61b03b567d) (load bias 0x1000)
f1cae000-f1caefff rw- 5a000 1000 /apex/com.android.vndk.v31/lib/libbinder.so (BuildId: e8283d1fcdb5131aac09bc61b03b567d) (load bias 0x1000)
f1cb0000-f1cb2fff rw- 0 3000 [anon:libc_malloc]
f1cb3000-f1ce3fff rw- 0 31000 /dev/ashmem/MessageQueue (deleted)
f1ce4000-f1ce8fff r-- 0 5000 /vendor/lib/libcodec2_soft_common.so (BuildId: 397c93a3912eca6ed50a7a7c7bfafa49) (load bias 0x1000)
f1ce9000-f1ce9fff --- 0 1000
f1cea000-f1cfdfff r-x 5000 14000 /vendor/lib/libcodec2_soft_common.so (BuildId: 397c93a3912eca6ed50a7a7c7bfafa49) (load bias 0x1000)
f1cfe000-f1cfffff r-- 18000 2000 /vendor/lib/libcodec2_soft_common.so (BuildId: 397c93a3912eca6ed50a7a7c7bfafa49) (load bias 0x1000)
f1d00000-f1d00fff rw- 0 1000 [anon:libc_malloc]
f1d03000-f1d09fff rw- 0 7000 [anon:libc_malloc]
f1d0d000-f1d2ffff r-- 0 23000 /vendor/lib/android.hardware.media.c2@1.0.so (BuildId: d56a8cfe262ccabc2ed09bc51f7fe8bd) (load bias 0x1000)
f1d30000-f1d5ffff r-x 22000 30000 /vendor/lib/android.hardware.media.c2@1.0.so (BuildId: d56a8cfe262ccabc2ed09bc51f7fe8bd) (load bias 0x1000)
f1d60000-f1d65fff r-- 51000 6000 /vendor/lib/android.hardware.media.c2@1.0.so (BuildId: d56a8cfe262ccabc2ed09bc51f7fe8bd) (load bias 0x1000)
f1d66000-f1d66fff rw- 56000 1000 /vendor/lib/android.hardware.media.c2@1.0.so (BuildId: d56a8cfe262ccabc2ed09bc51f7fe8bd) (load bias 0x1000)
f1d68000-f1d68fff --- 0 1000
f1d69000-f1d6cfff rw- 0 4000 [anon:thread signal stack]
f1d6e000-f1d6ffff rw- 0 2000 [anon:libc_malloc]
f1d72000-f1d72fff rw- 0 1000 [anon:libc_malloc]
f1d7b000-f1d7efff rw- 0 4000 [anon:libc_malloc]
f1d80000-f1d82fff rw- 0 3000 [anon:libc_malloc]
f1d86000-f1d88fff rw- 0 3000 [anon:libc_malloc]
f1d90000-f1d97fff rw- 0 8000 [anon:libc_malloc]
f1d99000-f1d9bfff rw- 0 3000 [anon:libc_malloc]
f1d9f000-f1da6fff r-- 0 8000 /system/lib/android.hardware.graphics.mapper@2.0.so (BuildId: c9c4756cbe22d8a6a650144f920f3768) (load bias 0x1000)
f1da7000-f1dadfff r-x 7000 7000 /system/lib/android.hardware.graphics.mapper@2.0.so (BuildId: c9c4756cbe22d8a6a650144f920f3768) (load bias 0x1000)
f1dae000-f1daffff r-- d000 2000 /system/lib/android.hardware.graphics.mapper@2.0.so (BuildId: c9c4756cbe22d8a6a650144f920f3768) (load bias 0x1000)
f1db0000-f1db0fff rw- e000 1000 /system/lib/android.hardware.graphics.mapper@2.0.so (BuildId: c9c4756cbe22d8a6a650144f920f3768) (load bias 0x1000)
f1db9000-f1dbbfff rw- 0 3000 [anon:libc_malloc]
f1dc3000-f1dc7fff rw- 0 5000 [anon:libc_malloc]
f1dd7000-f1de6fff r-- 0 10000 /vendor/lib/libstagefright_bufferpool@2.0.1.so (BuildId: fe5e46c7b6588cd75ef96d653af29f3f) (load bias 0x1000)
f1de7000-f1df6fff r-x f000 10000 /vendor/lib/libstagefright_bufferpool@2.0.1.so (BuildId: fe5e46c7b6588cd75ef96d653af29f3f) (load bias 0x1000)
f1df7000-f1df8fff r-- 1e000 2000 /vendor/lib/libstagefright_bufferpool@2.0.1.so (BuildId: fe5e46c7b6588cd75ef96d653af29f3f) (load bias 0x1000)
f1df9000-f1df9fff rw- 1f000 1000 /vendor/lib/libstagefright_bufferpool@2.0.1.so (BuildId: fe5e46c7b6588cd75ef96d653af29f3f) (load bias 0x1000)
f1dfa000-f1e03fff rw- 0 a000 [anon:libc_malloc]
f1e05000-f1e07fff rw- 0 3000 [anon:libc_malloc]
f1e09000-f1e0ffff rw- 0 7000 [anon:libc_malloc]
f1e10000-f1e10fff rw- 0 1000 [anon:libc_malloc]
f1e15000-f1e19fff rw- 0 5000 [anon:libc_malloc]
f1e26000-f1e26fff r-- 0 1000 /vendor/lib/libion_mtk.so (BuildId: eec64901961c742d4a46f407e8971a27) (load bias 0x1000)
f1e27000-f1e28fff r-x 0 2000 /vendor/lib/libion_mtk.so (BuildId: eec64901961c742d4a46f407e8971a27) (load bias 0x1000)
f1e29000-f1e29fff r-- 1000 1000 /vendor/lib/libion_mtk.so (BuildId: eec64901961c742d4a46f407e8971a27) (load bias 0x1000)
f1e30000-f1e4ffff r-- 0 20000 /dev/__properties__/u:object_r:vendor_mtk_pq_prop:s0
f1e50000-f1e7bfff r-- 0 2c000 /apex/com.android.runtime/lib/bionic/libc.so (BuildId: c3f479705b82c55801158aefde571341) (load bias 0x1000)
f1e7c000-f1f03fff r-x 2b000 88000 /apex/com.android.runtime/lib/bionic/libc.so (BuildId: c3f479705b82c55801158aefde571341) (load bias 0x1000)
f1f04000-f1f08fff r-- b2000 5000 /apex/com.android.runtime/lib/bionic/libc.so (BuildId: c3f479705b82c55801158aefde571341) (load bias 0x1000)
f1f09000-f1f09fff rw- b6000 1000 /apex/com.android.runtime/lib/bionic/libc.so (BuildId: c3f479705b82c55801158aefde571341) (load bias 0x1000)
f1f0a000-f1f0dfff rw- 0 4000 [anon:.bss]
f1f0e000-f1f0efff r-- 0 1000 [anon:.bss]
f1f0f000-f1f1afff rw- 0 c000 [anon:.bss]
f1f1c000-f1f1cfff rw- 0 1000 [anon:libc_malloc]
f1f1f000-f1f21fff rw- 0 3000 [anon:libc_malloc]
f1f29000-f1f68fff rw- 0 40000
f1f69000-f1f6bfff r-- 0 3000 /apex/com.android.vndk.v31/lib/libhidlmemory.so (BuildId: 48cf79675f47885a448bc9bbbd51f669) (load bias 0x1000)
f1f6c000-f1f6cfff r-x 2000 1000 /apex/com.android.vndk.v31/lib/libhidlmemory.so (BuildId: 48cf79675f47885a448bc9bbbd51f669) (load bias 0x1000)
f1f6d000-f1f6efff r-- 2000 2000 /apex/com.android.vndk.v31/lib/libhidlmemory.so (BuildId: 48cf79675f47885a448bc9bbbd51f669) (load bias 0x1000)
f1f6f000-f1f6ffff rw- 3000 1000 /apex/com.android.vndk.v31/lib/libhidlmemory.so (BuildId: 48cf79675f47885a448bc9bbbd51f669) (load bias 0x1000)
f1f73000-f1f74fff rw- 0 2000 [anon:libc_malloc]
f1f76000-f1f76fff rw- 0 1000 [anon:libc_malloc]
f1f7b000-f1f7bfff rw- 0 1000 [anon:libc_malloc]
f1f81000-f1f9dfff r-- 0 1d000 /apex/com.android.vndk.v31/lib/libunwindstack.so (BuildId: 2af854a1987d4aaaee465804b868491a) (load bias 0x1000)
f1f9e000-f1fdafff r-x 1c000 3d000 /apex/com.android.vndk.v31/lib/libunwindstack.so (BuildId: 2af854a1987d4aaaee465804b868491a) (load bias 0x1000)
f1fdb000-f1fdefff r-- 58000 4000 /apex/com.android.vndk.v31/lib/libunwindstack.so (BuildId: 2af854a1987d4aaaee465804b868491a) (load bias 0x1000)
f1fdf000-f1fdffff rw- 5b000 1000 /apex/com.android.vndk.v31/lib/libunwindstack.so (BuildId: 2af854a1987d4aaaee465804b868491a) (load bias 0x1000)
f1fe0000-f1fe3fff rw- 0 4000 [anon:libc_malloc]
f1fe6000-f1feafff rw- 0 5000 [anon:libc_malloc]
f1ff0000-f1ff0fff rw- 0 1000 [anon:libc_malloc]
f1ff5000-f1ff5fff --- 0 1000
f1ff6000-f1ff9fff rw- 0 4000 [anon:thread signal stack]
f1ffb000-f2000fff rw- 0 6000 [anon:libc_malloc]
f2002000-f2009fff rw- 0 8000 [anon:libc_malloc]
f2010000-f202ffff r-- 0 20000 /dev/__properties__/u:object_r:vendor_mtk_pq_ro_prop:s0
f2030000-f2030fff r-- 0 1000 /system/lib/libion.so (BuildId: 3b1873e14719ce13b1d5b3cae5f6bb6f) (load bias 0x1000)
f2031000-f2032fff r-x 0 2000 /system/lib/libion.so (BuildId: 3b1873e14719ce13b1d5b3cae5f6bb6f) (load bias 0x1000)
f2033000-f2033fff r-- 1000 1000 /system/lib/libion.so (BuildId: 3b1873e14719ce13b1d5b3cae5f6bb6f) (load bias 0x1000)
f2034000-f2034fff rw- 1000 1000 /system/lib/libion.so (BuildId: 3b1873e14719ce13b1d5b3cae5f6bb6f) (load bias 0x1000)
f203f000-f2051fff rw- 0 13000 [anon:libc_malloc]
f2052000-f2052fff rw- 0 1000 [anon:libc_malloc]
f2056000-f2061fff rw- 0 c000 [anon:libc_malloc]
f2067000-f2067fff r-- 0 1000 /apex/com.android.vndk.v31/lib/android.hardware.common-V2-ndk_platform.so (BuildId: ff1e31e052b1aed6b1a3b1a39f33233a) (load bias 0x1000)
f2068000-f2069fff r-x 0 2000 /apex/com.android.vndk.v31/lib/android.hardware.common-V2-ndk_platform.so (BuildId: ff1e31e052b1aed6b1a3b1a39f33233a) (load bias 0x1000)
f206a000-f206afff r-- 1000 1000 /apex/com.android.vndk.v31/lib/android.hardware.common-V2-ndk_platform.so (BuildId: ff1e31e052b1aed6b1a3b1a39f33233a) (load bias 0x1000)
f206b000-f206bfff rw- 1000 1000 /apex/com.android.vndk.v31/lib/android.hardware.common-V2-ndk_platform.so (BuildId: ff1e31e052b1aed6b1a3b1a39f33233a) (load bias 0x1000)
f206c000-f206cfff rw- 0 1000 [anon:libc_malloc]
f206e000-f206efff rw- 0 1000 [anon:libc_malloc]
f2072000-f2091fff r-- 0 20000 /dev/__properties__/u:object_r:vendor_mtk_mdp_debug_log_prop:s0
f2092000-f20b1fff r-- 0 20000 /dev/__properties__/u:object_r:vendor_mtk_gpu_prop:s0
f20b2000-f20b2fff r-- 0 1000 /system/lib/android.hardware.configstore-utils.so (BuildId: c770a70e76a5f5bbf97d99c6de39d781) (load bias 0x1000)
f20b3000-f20b3fff r-x 0 1000 /system/lib/android.hardware.configstore-utils.so (BuildId: c770a70e76a5f5bbf97d99c6de39d781) (load bias 0x1000)
f20b4000-f20b4fff r-- 0 1000 /system/lib/android.hardware.configstore-utils.so (BuildId: c770a70e76a5f5bbf97d99c6de39d781) (load bias 0x1000)
f20b6000-f20bafff rw- 0 5000 [anon:libc_malloc]
f20c2000-f20cbfff r-- 0 a000 /vendor/lib/libcodec2_hidl@1.1.so (BuildId: 4bb8f80e10ab578ec9ac362679ec6f8f) (load bias 0x1000)
f20cc000-f20d3fff r-x 9000 8000 /vendor/lib/libcodec2_hidl@1.1.so (BuildId: 4bb8f80e10ab578ec9ac362679ec6f8f) (load bias 0x1000)
f20d4000-f20d5fff r-- 10000 2000 /vendor/lib/libcodec2_hidl@1.1.so (BuildId: 4bb8f80e10ab578ec9ac362679ec6f8f) (load bias 0x1000)
f20d6000-f20d6fff rw- 11000 1000 /vendor/lib/libcodec2_hidl@1.1.so (BuildId: 4bb8f80e10ab578ec9ac362679ec6f8f) (load bias 0x1000)
f20d7000-f20d8fff rw- 0 2000 [anon:libc_malloc]
f20da000-f20ddfff rw- 0 4000 [anon:libc_malloc]
f20df000-f20dffff rw- 0 1000 [anon:libc_malloc]
f20e3000-f20e5fff rw- 0 3000 [anon:libc_malloc]
f20e6000-f2105fff r-- 0 20000 /dev/__properties__/u:object_r:vndk_prop:s0
f2106000-f2125fff r-- 0 20000 /dev/__properties__/u:object_r:vendor_default_prop:s0
f2126000-f212afff r-- 0 5000 /system/lib/libgraphicsenv.so (BuildId: c2b8b0009ccf2b4a204d23bc82505789) (load bias 0x1000)
f212b000-f212efff r-x 4000 4000 /system/lib/libgraphicsenv.so (BuildId: c2b8b0009ccf2b4a204d23bc82505789) (load bias 0x1000)
f212f000-f2130fff r-- 7000 2000 /system/lib/libgraphicsenv.so (BuildId: c2b8b0009ccf2b4a204d23bc82505789) (load bias 0x1000)
f2131000-f2131fff rw- 8000 1000 /system/lib/libgraphicsenv.so (BuildId: c2b8b0009ccf2b4a204d23bc82505789) (load bias 0x1000)
f2134000-f2134fff rw- 0 1000 [anon:libc_malloc]
f2139000-f2139fff rw- 0 1000 [anon:libc_malloc]
f213c000-f213cfff rw- 0 1000 [anon:libc_malloc]
f2143000-f2143fff rw- 0 1000 [anon:libc_malloc]
f214a000-f214efff rw- 0 5000 [anon:libc_malloc]
f214f000-f214ffff rw- 0 1000 [anon:bionic_alloc_small_objects]
f2150000-f2151fff rw- 0 2000 [anon:libc_malloc]
f2164000-f2164fff rw- 0 1000 [anon:libc_malloc]
f216a000-f216efff rw- 0 5000 [anon:libc_malloc]
f2175000-f217bfff rw- 0 7000 [anon:libc_malloc]
f217c000-f217cfff --- 0 1000
f217d000-f2180fff rw- 0 4000 [anon:thread signal stack]
f218a000-f218efff rw- 0 5000 [anon:libc_malloc]
f2195000-f2195fff rw- 0 1000 [anon:libc_malloc]
f2199000-f219ffff rw- 0 7000 [anon:libc_malloc]
f21a5000-f21a5fff rw- 0 1000 [anon:libc_malloc]
f21a7000-f21a8fff rw- 0 2000 [anon:libc_malloc]
f21aa000-f21aefff rw- 0 5000 [anon:libc_malloc]
f21b3000-f21b3fff --- 0 1000
f21b4000-f21b7fff rw- 0 4000 [anon:thread signal stack]
f21b8000-f21b8fff --- 0 1000
f21b9000-f21bcfff rw- 0 4000 [anon:thread signal stack]
f21bd000-f21bdfff --- 0 1000
f21be000-f21c1fff rw- 0 4000 [anon:thread signal stack]
f21c2000-f21ccfff rw- 0 b000 [anon:libc_malloc]
f21ce000-f21dcfff rw- 0 f000 [anon:libc_malloc]
f21de000-f21e6fff rw- 0 9000 [anon:libc_malloc]
f21e8000-f21e8fff --- 0 1000
f21e9000-f21ecfff rw- 0 4000 [anon:thread signal stack]
f21ed000-f21effff rw- 0 3000 [anon:libc_malloc]
f21f1000-f21f6fff rw- 0 6000 [anon:libc_malloc]
f21f7000-f21f7fff rw- 0 1000 [anon:libc_malloc]
f21f9000-f21f9fff --- 0 1000
f21fa000-f21fdfff rw- 0 4000 [anon:thread signal stack]
f21fe000-f21fefff --- 0 1000
f21ff000-f2202fff rw- 0 4000 [anon:thread signal stack]
f2203000-f2215fff rw- 0 13000 [anon:libc_malloc]
f2216000-f2216fff rw- 0 1000 [anon:bionic_alloc_small_objects]
f2219000-f221cfff rw- 0 4000 [anon:libc_malloc]
f221e000-f2228fff rw- 0 b000 [anon:libc_malloc]
f222d000-f222dfff --- 0 1000
f222e000-f2231fff rw- 0 4000 [anon:thread signal stack]
f2232000-f2232fff --- 0 1000
f2233000-f2236fff rw- 0 4000 [anon:thread signal stack]
f223a000-f223cfff rw- 0 3000 [anon:libc_malloc]
f223d000-f223dfff rw- 0 1000 [anon:libc_malloc]
f223f000-f224afff rw- 0 c000 [anon:libc_malloc]
f224b000-f224bfff rw- 0 1000 [anon:libc_malloc]
f224d000-f224efff rw- 0 2000 [anon:libc_malloc]
f2250000-f2250fff rw- 0 1000 [anon:libc_malloc]
f2252000-f2252fff --- 0 1000
f2253000-f2256fff rw- 0 4000 [anon:thread signal stack]
f2257000-f2354fff r-- 0 fe000 /dev/binderfs/vndbinder
f2355000-f2355fff rw- 0 1000 [anon:bionic_alloc_small_objects]
f2357000-f235efff rw- 0 8000 [anon:libc_malloc]
f2361000-f2365fff rw- 0 5000 [anon:libc_malloc]
f2367000-f2368fff rw- 0 2000 [anon:libc_malloc]
f236a000-f236cfff rw- 0 3000 [anon:libc_malloc]
f2371000-f2375fff rw- 0 5000 [anon:libc_malloc]
f2376000-f2395fff r-- 0 20000 /dev/__properties__/u:object_r:exported_system_prop:s0
f2396000-f239efff rw- 0 9000 [anon:libc_malloc]
f23a0000-f23a7fff rw- 0 8000 [anon:libc_malloc]
f23a9000-f23a9fff rw- 0 1000 [anon:libc_malloc]
f23aa000-f23aafff rw- 0 1000 [anon:bionic_alloc_small_objects]
f23ab000-f23abfff rw- 0 1000 [anon:libc_malloc]
f23ae000-f23affff rw- 0 2000 [anon:libc_malloc]
f23b1000-f23b8fff rw- 0 8000 [anon:libc_malloc]
f23b9000-f23d8fff r-- 0 20000 /dev/__properties__/u:object_r:vendor_mtk_sec_video_path_support_prop:s0
f23d9000-f23dffff rw- 0 7000 [anon:libc_malloc]
f23e0000-f23e0fff --- 0 1000
f23e1000-f23e4fff rw- 0 4000 [anon:thread signal stack]
f23e6000-f23e7fff rw- 0 2000 [anon:bionic_alloc_small_objects]
f23e8000-f23ecfff rw- 0 5000 [anon:libc_malloc]
f23ed000-f23edfff rw- 0 1000 [anon:bionic_alloc_small_objects]
f23ee000-f23effff rw- 0 2000 [anon:libc_malloc]
f23f0000-f23f0fff rw- 0 1000 [anon:bionic_alloc_small_objects]
f23f1000-f23f1fff --- 0 1000
f23f2000-f23f5fff rw- 0 4000 [anon:thread signal stack]
f23f6000-f23f6fff --- 0 1000
f23f7000-f23fafff rw- 0 4000 [anon:thread signal stack]
f23fb000-f23fbfff --- 0 1000
f23fc000-f23fffff rw- 0 4000 [anon:thread signal stack]
f2400000-f240cfff rw- 0 d000 [anon:libc_malloc]
f240d000-f240dfff --- 0 1000
f240e000-f2411fff rw- 0 4000 [anon:thread signal stack]
f2412000-f2412fff --- 0 1000
f2413000-f2416fff rw- 0 4000 [anon:thread signal stack]
f2417000-f2436fff r-- 0 20000 /dev/__properties__/u:object_r:hwservicemanager_prop:s0
f2437000-f243dfff rw- 0 7000 [anon:libc_malloc]
f243e000-f243efff --- 0 1000
f243f000-f2442fff rw- 0 4000 [anon:thread signal stack]
f2443000-f244afff rw- 0 8000 [anon:libc_malloc]
f244b000-f2467fff r-- 0 1d000 /vendor/lib/libpq_cust_base.so (BuildId: f45ecc2a1026af4f08ee7e181dce566a) (load bias 0x1000)
f2468000-f2468fff r-x 1c000 1000 /vendor/lib/libpq_cust_base.so (BuildId: f45ecc2a1026af4f08ee7e181dce566a) (load bias 0x1000)
f2469000-f2469fff r-- 1c000 1000 /vendor/lib/libpq_cust_base.so (BuildId: f45ecc2a1026af4f08ee7e181dce566a) (load bias 0x1000)
f246a000-f247cfff rw- 1c000 13000 /vendor/lib/libpq_cust_base.so (BuildId: f45ecc2a1026af4f08ee7e181dce566a) (load bias 0x1000)
f247d000-f2480fff rw- 0 4000 [anon:libc_malloc]
f2481000-f2481fff rw- 0 1000 [anon:bionic_alloc_small_objects]
f2482000-f2483fff rw- 0 2000 [anon:libc_malloc]
f2484000-f2484fff rw- 30000 1000 /dev/ashmem/MessageQueue (deleted)
f2485000-f2485fff rw- 0 1000 /dev/ashmem/MessageQueue (deleted)
f2486000-f24a2fff rw- 0 1d000 [anon:libc_malloc]
f24a3000-f24c2fff r-- 0 20000 /dev/__properties__/u:object_r:vendor_mtk_c2_log_prop:s0
f24c3000-f24e2fff r-- 0 20000 /dev/__properties__/u:object_r:vendor_mtk_app_prop:s0
f24e3000-f2502fff r-- 0 20000 /dev/__properties__/u:object_r:log_tag_prop:s0
f2503000-f2522fff r-- 0 20000 /dev/__properties__/u:object_r:bootloader_prop:s0
f2523000-f2542fff r-- 0 20000 /dev/__properties__/u:object_r:exported_default_prop:s0
f2543000-f2546fff r-- 0 4000 [anon:atexit handlers]
f2547000-f2566fff r-- 0 20000 /dev/__properties__/u:object_r:bq_config_prop:s0
f2567000-f256efff rw- 0 8000 [anon:libc_malloc]
f256f000-f256ffff rw- 0 1000 /dev/ashmem/MessageQueue (deleted)
f2570000-f2570fff rw- 0 1000 [anon:libc_malloc]
f2571000-f2571fff rw- 0 1000 /dev/ashmem/MessageQueue (deleted)
f2572000-f2575fff rw- 0 4000 [anon:libc_malloc]
f2576000-f2576fff --- 0 1000
f2577000-f257afff rw- 0 4000 [anon:thread signal stack]
f257b000-f2580fff rw- 0 6000 [anon:libc_malloc]
f2581000-f2582fff r-- 0 2000 /system/lib/libnetd_client.so (BuildId: c61c6549f6d81aa56f3b72fca3f5a14b) (load bias 0x1000)
f2583000-f2583fff --- 0 1000
f2584000-f2588fff r-x 2000 5000 /system/lib/libnetd_client.so (BuildId: c61c6549f6d81aa56f3b72fca3f5a14b) (load bias 0x1000)
f2589000-f2589fff r-- 6000 1000 /system/lib/libnetd_client.so (BuildId: c61c6549f6d81aa56f3b72fca3f5a14b) (load bias 0x1000)
f258a000-f258afff rw- 6000 1000 /system/lib/libnetd_client.so (BuildId: c61c6549f6d81aa56f3b72fca3f5a14b) (load bias 0x1000)
f258b000-f25aafff rw- 0 20000 [anon:.bss]
f25ab000-f25cafff r-- 0 20000 /dev/__properties__/u:object_r:build_prop:s0
f25cb000-f25d9fff rw- 0 f000 [anon:libc_malloc]
f25da000-f25f9fff r-- 0 20000 /dev/__properties__/u:object_r:heapprofd_prop:s0
f25fa000-f2619fff r-- 0 20000 /dev/__properties__/u:object_r:libc_debug_prop:s0
f261a000-f2639fff r-- 0 20000 /dev/__properties__/u:object_r:debug_prop:s0
f263a000-f2659fff r-- 0 20000 /dev/__properties__/properties_serial
f265a000-f265dfff rw- 0 4000 [anon:System property context nodes]
f265e000-f267cfff r-- 0 1f000 /dev/__properties__/property_info
f267d000-f267dfff r-- 0 1000 [anon:cfi shadow]
f267e000-f2683fff --- 0 6000 [anon:cfi shadow]
f2684000-f2684fff r-- 0 1000 [anon:cfi shadow]
f2685000-f2685fff --- 0 1000
f2686000-f2688fff rw- 0 3000 [anon:stack_and_tls:main]
f2689000-f2689fff --- 0 1000
f268a000-f2697fff rw- 0 e000 [anon:libc_malloc]
f2698000-f26cdfff rw- 0 36000 [anon:libc_malloc]
f26ce000-f26edfff r-- 0 20000 /dev/__properties__/u:object_r:vendor_socket_hook_prop:s0
f26ee000-f27b5fff r-- 0 c8000 [anon:linker_alloc]
f27b6000-f27bafff rw- 0 5000 [anon:bionic_alloc_small_objects]
f27bb000-f27bbfff rw- 0 1000 [anon:libc_malloc]
f27bc000-f27c0fff rw- 0 5000 [anon:bionic_alloc_small_objects]
f27c1000-f27c2fff rw- 0 2000 [anon:libc_malloc]
f27c3000-f27c4fff rw- 0 2000 [anon:bionic_alloc_small_objects]
f27c5000-f27c5fff rw- 0 1000 [anon:bionic_alloc_lob]
f27c6000-f27c7fff rw- 0 2000 [anon:bionic_alloc_small_objects]
f27c8000-f27e7fff r-- 0 20000 /dev/__properties__/u:object_r:vndk_prop:s0
f27e8000-f27e8fff rw- 0 1000 [anon:bionic_alloc_small_objects]
f27e9000-f284cfff r-- 0 64000 [anon:linker_alloc]
f284d000-f284dfff rw- 0 1000 [anon:bionic_alloc_small_objects]
f284e000-f286dfff r-- 0 20000 /dev/__properties__/u:object_r:debug_prop:s0
f286e000-f288dfff r-- 0 20000 /dev/__properties__/u:object_r:build_prop:s0
f288e000-f288efff --- 0 1000
f288f000-f2896fff rw- 0 8000
f2897000-f2897fff --- 0 1000
f2898000-f28b7fff r-- 0 20000 /dev/__properties__/properties_serial
f28b8000-f28bbfff rw- 0 4000 [anon:System property context nodes]
f28bc000-f28dafff r-- 0 1f000 /dev/__properties__/property_info
f28db000-f293efff r-- 0 64000 [anon:linker_alloc]
f293f000-f2940fff rw- 0 2000 [anon:bionic_alloc_small_objects]
f2941000-f2941fff r-- 0 1000 [anon:atexit handlers]
f2942000-f2942fff --- 0 1000
f2943000-f2946fff rw- 0 4000 [anon:thread signal stack]
f2947000-f2947fff rw- 0 1000 [anon:arc4random data]
f2948000-f2949fff rw- 0 2000 [anon:libc_malloc]
f294a000-f294afff rw- 0 1000 [anon:arc4random data]
f294b000-f2966fff r-- 0 1c000 /apex/com.android.runtime/bin/linker (BuildId: b55971db965c409080102b2369efcd68) (load bias 0x1000)
f2967000-f2a0bfff r-x 1b000 a5000 /apex/com.android.runtime/bin/linker (BuildId: b55971db965c409080102b2369efcd68) (load bias 0x1000)
f2a0c000-f2a10fff r-- bf000 5000 /apex/com.android.runtime/bin/linker (BuildId: b55971db965c409080102b2369efcd68) (load bias 0x1000)
f2a11000-f2a11fff rw- c3000 1000 /apex/com.android.runtime/bin/linker (BuildId: b55971db965c409080102b2369efcd68) (load bias 0x1000)
f2a12000-f2a14fff rw- 0 3000 [anon:.bss]
f2a15000-f2a15fff r-- 0 1000 [anon:.bss]
f2a16000-f2a1bfff rw- 0 6000 [anon:.bss]
ff89c000-ff8bcfff rw- 0 21000 [stack]
ffff0000-ffff0fff r-x 0 1000 [vectors]

View File

@@ -6,6 +6,8 @@
import logging
import os
from mvt.common.config import settings
from mvt.common.indicators import Indicators
from ..utils import get_artifact_folder
@@ -100,6 +102,8 @@ class TestIndicators:
def test_env_stix(self, indicator_file):
os.environ["MVT_STIX2"] = indicator_file
settings.__init__() # Reset settings
ind = Indicators(log=logging)
ind.load_indicators_files([], load_default=False)
assert ind.total_ioc_count == 9

View File

@@ -8,6 +8,7 @@ import os
from click.testing import CliRunner
from mvt.android.cli import check_androidqf
from mvt.common.config import settings
from .utils import get_artifact_folder
@@ -56,6 +57,8 @@ class TestCheckAndroidqfCommand:
)
os.environ["MVT_ANDROID_BACKUP_PASSWORD"] = TEST_BACKUP_PASSWORD
settings.__init__() # Reset settings
runner = CliRunner()
path = os.path.join(get_artifact_folder(), "androidqf_encrypted")
result = runner.invoke(check_androidqf, [path])
@@ -63,3 +66,4 @@ class TestCheckAndroidqfCommand:
assert prompt_mock.call_count == 0
assert result.exit_code == 0
del os.environ["MVT_ANDROID_BACKUP_PASSWORD"]
settings.__init__() # Reset settings

View File

@@ -9,6 +9,7 @@ import os
from click.testing import CliRunner
from mvt.android.cli import check_backup
from mvt.common.config import settings
from .utils import get_artifact_folder
@@ -63,6 +64,8 @@ class TestCheckAndroidBackupCommand:
)
os.environ["MVT_ANDROID_BACKUP_PASSWORD"] = TEST_BACKUP_PASSWORD
settings.__init__() # Reset settings
runner = CliRunner()
path = os.path.join(get_artifact_folder(), "androidqf_encrypted/backup.ab")
result = runner.invoke(check_backup, [path])
@@ -70,3 +73,4 @@ class TestCheckAndroidBackupCommand:
assert prompt_mock.call_count == 0
assert result.exit_code == 0
del os.environ["MVT_ANDROID_BACKUP_PASSWORD"]
settings.__init__() # Reset settings