Parser for SEAndroid "file_contexts.bin" written in Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
sefcontext_parser Initial commit Sep 30, 2017
.gitignore Initial commit Sep 30, 2017
LICENSE Initial commit Sep 30, 2017
README.md Updated readme Oct 21, 2017
setup.py Initial commit Sep 30, 2017

README.md

sefcontext_parser (sefparse)

sefcontext_parser is a module and utility (sefparse) that can be used to parse/decode compiled SEAndroid "file_context.bin" files.

About

Google switched from using a cleartext "file_context" format to a binary format in Android API 24 ("Nougat"). This format was changed and expanded in API 25 and API 26 ("Oreo"). The format is documented by Google here. I was inspired to write this library based on the sefcontext_decompile developed by GitHub user wuxianlin. The functionality is roughly the same, but is implemented in python instead of C.

Setup

The following commands can be used to install sefcontext_parser:

git clone https://github.com/jakev/sefcontext-parser
cd sefcontext-parser
sudo python setup.py install

Usage

There are two ways to use this project: by importing it into your current project, or by running the sefparse utility from the command-line. Using sefparse is straightforward and can be used as follows:

adb pull /file_contexts.bin
sefparse file_contexts.bin

To integrate the module into an existing python project, you can use the library as follows:

from sefcontext_parser import sefcontext_parser as sefparse

parser = sefparse.SefContextParser("file_context.bin")
for entry in parser.process_file():
    print "Regex=%s, Context=%s" % (entry.regex, entry.context)

Results returned by process_file will be sorted by regex pattern.

License

sefcontext_parser is licened under the Apache License, Version 2.0. This means it is freely available for use and modification in a personal and professional capacity.