Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6d8d9680 authored by Cody Northrop's avatar Cody Northrop
Browse files

Remove app preference from ANGLE logic

* The use of meta-data to specify app preference for ANGLE was
  temporary, so remove it.
* Since we no longer plan to allow apps to specify a preference
  at all, remove the JNI plumbing.

Bug: 80239516
Test: Manual build, ensure rules are followed
Test: cts-tradefed run singleCommand cts -m CtsAngleIntegrationHostTestCases
Change-Id: If8eb6087ae85bb82eae6625778e1c3a926fe038a
parent c5cee1e4
Loading
Loading
Loading
Loading
+2 −30
Original line number Diff line number Diff line
@@ -55,7 +55,6 @@ public class GraphicsEnvironment {
    private static final String PROPERTY_GFX_DRIVER = "ro.gfx.driver.0";
    private static final String PROPERTY_GFX_DRIVER_WHITELIST = "ro.gfx.driver.whitelist.0";
    private static final String ANGLE_PACKAGE_NAME = "com.android.angle";
    private static final String GLES_MODE_METADATA_KEY = "com.android.angle.GLES_MODE";
    private static final String ANGLE_RULES_FILE = "a4a_rules.json";

    private ClassLoader mClassLoader;
@@ -212,33 +211,6 @@ public class GraphicsEnvironment {
            devOptIn = true;
        }

        ApplicationInfo appInfo;
        try {
            appInfo = context.getPackageManager().getApplicationInfo(packageName,
                PackageManager.GET_META_DATA);
        } catch (PackageManager.NameNotFoundException e) {
            Log.w(TAG, "Failed to get info about current application: " + packageName);
            return;
        }

        String appPref = "dontcare";
        final BaseBundle metadata = appInfo.metaData;
        if (metadata != null) {
            final String glesMode = metadata.getString(GLES_MODE_METADATA_KEY);
            if (glesMode != null) {
                if (glesMode.equals("angle")) {
                    appPref = "angle";
                    if (DEBUG) Log.v(TAG, packageName + " opted for ANGLE via AndroidManifest");
                } else if (glesMode.equals("native")) {
                    appPref = "native";
                    if (DEBUG) Log.v(TAG, packageName + " opted for NATIVE via AndroidManifest");
                } else {
                    Log.w(TAG, "Unrecognized GLES_MODE (\"" + glesMode + "\") for " + packageName
                               + ". Supported values are \"angle\" or \"native\"");
                }
            }
        }

        ApplicationInfo angleInfo;
        try {
            angleInfo = context.getPackageManager().getApplicationInfo(ANGLE_PACKAGE_NAME,
@@ -293,7 +265,7 @@ public class GraphicsEnvironment {
        }

        // Further opt-in logic is handled in native, so pass relevant info down
        setAngleInfo(paths, packageName, appPref, devOptIn,
        setAngleInfo(paths, packageName, devOptIn,
                     rulesFd, rulesOffset, rulesLength);
    }

@@ -434,7 +406,7 @@ public class GraphicsEnvironment {
    private static native void setDebugLayers(String layers);
    private static native void setDebugLayersGLES(String layers);
    private static native void setDriverPath(String path);
    private static native void setAngleInfo(String path, String appPackage, String appPref,
    private static native void setAngleInfo(String path, String appPackage,
                                            boolean devOptIn, FileDescriptor rulesFd,
                                            long rulesOffset, long rulesLength);
}
+3 −4
Original line number Diff line number Diff line
@@ -32,16 +32,15 @@ void setDriverPath(JNIEnv* env, jobject clazz, jstring path) {
    android::GraphicsEnv::getInstance().setDriverPath(pathChars.c_str());
}

void setAngleInfo_native(JNIEnv* env, jobject clazz, jstring path, jstring appName, jstring appPref, jboolean devOptIn,
void setAngleInfo_native(JNIEnv* env, jobject clazz, jstring path, jstring appName, jboolean devOptIn,
                         jobject rulesFd, jlong rulesOffset, jlong rulesLength) {
    ScopedUtfChars pathChars(env, path);
    ScopedUtfChars appNameChars(env, appName);
    ScopedUtfChars appPrefChars(env, appPref);

    int rulesFd_native = jniGetFDFromFileDescriptor(env, rulesFd);

    android::GraphicsEnv::getInstance().setAngleInfo(pathChars.c_str(), appNameChars.c_str(),
            appPrefChars.c_str(), devOptIn, rulesFd_native, rulesOffset, rulesLength);
            devOptIn, rulesFd_native, rulesOffset, rulesLength);
}

void setLayerPaths_native(JNIEnv* env, jobject clazz, jobject classLoader, jstring layerPaths) {
@@ -68,7 +67,7 @@ void setDebugLayersGLES_native(JNIEnv* env, jobject clazz, jstring layers) {
const JNINativeMethod g_methods[] = {
    { "getCanLoadSystemLibraries", "()I", reinterpret_cast<void*>(getCanLoadSystemLibraries_native) },
    { "setDriverPath", "(Ljava/lang/String;)V", reinterpret_cast<void*>(setDriverPath) },
    { "setAngleInfo", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZLjava/io/FileDescriptor;JJ)V", reinterpret_cast<void*>(setAngleInfo_native) },
    { "setAngleInfo", "(Ljava/lang/String;Ljava/lang/String;ZLjava/io/FileDescriptor;JJ)V", reinterpret_cast<void*>(setAngleInfo_native) },
    { "setLayerPaths", "(Ljava/lang/ClassLoader;Ljava/lang/String;)V", reinterpret_cast<void*>(setLayerPaths_native) },
    { "setDebugLayers", "(Ljava/lang/String;)V", reinterpret_cast<void*>(setDebugLayers_native) },
    { "setDebugLayersGLES", "(Ljava/lang/String;)V", reinterpret_cast<void*>(setDebugLayersGLES_native) },