Skip to content

Instantly share code, notes, and snippets.

@Juul
Last active October 16, 2021 06:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Juul/d1cd880a418a85ed3269289b32bfb4ca to your computer and use it in GitHub Desktop.
Save Juul/d1cd880a418a85ed3269289b32bfb4ca to your computer and use it in GitHub Desktop.
Filmic pro on Galaxy S7 on non-stock Android

I have an old Galaxy S7 (herolte) that I wanted to use for filming. Looking for a rom with a maintained and fairly modern Android I found pixelexperience.

I found both the built-in camera app and the OpenCamera app from F-droid somewhat lacking. Don't get my wrong, OpenCamera is a great piece of software, I just wanted some more "pro" features like real-time anamorphic demorphing and such.

While I try to avoid proprietary software in my day to day I decided to give Filmic Pro a try to see if it could turn this old device into a useful camera.

This guide was written based on Filmic Pro version 6.9.1

Unfortunately Filmic fails to launch getting stuck at the splash screen after asking for various permissions. Looking at adb logcat output it was clear that it was looking for the file scamera_sdk_util.jar in the /system/framework and not finding it.

I found a copy of this file in the Superman ROM which is sadly based on Android 8 and unmaintained. You can also find a copy of the .jar here.

In the Superman ROM zip file, the .jar is present in the /system/framework/ directory.

To get Filmic Pro running on pixelexperience you can simply copy this file to phone using adb like so:

adb root
adb shell
mount -o remount,ro /
exit
adb push scamera_sdk_util.jar /system/framework/
adb reboot

Now Filmic should start properly.

I haven't been able to find the source code for this jar but it seems to only contain the following java classes and methods and no native code:

KeyMaker
  <init>
  createKey
  isKeyExist
  
ProcessorImageImpl
  <init>
  -wrap0
  clear
  getBuffer
  getPixelStride
  getRowStride
  
ProcessorImageImpl$ImagePlane
  <clinit>
  <init>
  close
  finalize
  getFormat
  getHeight
  getPlanes
  getTimestamp
  getWidth
  setTimestamp

So it looks like it's some tiny camera-realted utility library of little significance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment