sefcontext_parser is a module and utility (
sefparse) that can be used to parse/decode compiled SEAndroid "file_context.bin" files.
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.
The following commands can be used to install
git clone https://github.com/jakev/sefcontext-parser cd sefcontext-parser sudo python setup.py install
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.
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.