INNER CODE UNIT · Java
createContext
termux/termux-x11 · lorie/src/main/java/com/termux/x11/CmdEntryPoint.java:145
public static Context createContext() {
Context context;
PrintStream err = System.err;
try {
java.lang.reflect.Field f = Class.forName("sun.misc.Unsafe").getDeclaredField("theUnsafe");
f.setAccessible(true);
Object unsafe = f.get(null);
// Hiding harmless framework errors, like this:
// java.io.FileNotFoundException: /data/system/theme_config/theme_compatibility.xml: open failed: ENOENT (No such file or directory)
System.setErr(new PrintStream(new OutputStream() { public void write(int arg0) {} }));
if (System.getenv("OLD_CONTEXT") != null) {
context = android.app.ActivityThread.systemMain().getSystemContext();
} else {
context = ((android.app.ActivityThread) Class.
forName("sun.misc.Unsafe").
getMethod("allocateInstance", Class.class).
invoke(unsafe, android.app.ActivityThread.class))
.getSystemContext();