Skip to content

Oreo : patch framework source

Peter Yoon edited this page Sep 3, 2017 · 1 revision

Put delay in android.hardware.graphics.allocator

Until android.hardware.graphics.mapper retain the buffer.

Apply following patch under hardware/interfaces.

graphics/allocator/2.0/default/Gralloc1Allocator.cpp
@@ line 167 @@ Gralloc1Allocator::allocate(const BufferDescriptor& descriptor,
     hidl_cb(error, stride, hidl_buffers);
 +   usleep(1000);
 // free the buffers
 for (const auto& buffer : buffers) {

Add TvSettings icon to the Launcher

Since Tablet Settings is not working, Add TvSettings entry point.

Apply following path under packages/apps/TvSettings.

Settings/AndroidManifest.xml
@@ line 67 @@
         <action android:name="android.intent.action.MAIN" />
         <category android:name="android.intent.category.LEANBACK_SETTINGS" />
+        <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
</activity>

Enable GLSurfaceView

Currently mesa3d vc4 build is supporting only following formats.

  • RGB 565, Alpha 0, Depth 24 or 0, Stencil 8 or 0
  • RGB 888, Alpha 8, Depth 24 or 0, Stencil 8 or 0

Then apply following patch under frameworks/base, to modify default EGL config.

opengl/java/android/opengl/GLSurfaceView.java
@@ line 1004 @@ public class GLSurfaceView extends SurfaceView implements SurfaceHolder.Callback
         public SimpleEGLConfigChooser(boolean withDepthBuffer) {
-            super(8, 8, 8, 0, withDepthBuffer ? 16 : 0, 0);
+            super(8, 8, 8, 8, withDepthBuffer ? 24 : 0, 0);
         }

Avoid screen flashing

On eng build, Strict mode behavior - flash screen when apps do long operations on main thread - is enabled by default. We can avoid it by applying following patch under frameworks/base.
This option could be turned on via Settings -> Developer options -> Strict mode enabled.

core/java/android/os/StrictMode.java
@@ line 1199 @@ public final class StrictMode {
     if (IS_ENG_BUILD) {
-            doFlashes = true;
     }