• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

[APP] [MOD] [v3.2] Camera X - Burst, 240FPS Slow-Motion, EIS & More

Are you rooted?


  • Total voters
    531
Search This thread

ViRb3

Senior Member
Aug 25, 2014
386
810
I came across a thread that claimed it's possible to enable EIS (Electronic Image Stabilization) on Nexus 5X through a build.prop line. I was skeptical at first, but when I tried it for myself, it really worked! I immediately thought about the other features our device was mysteriously missing, but are available on the Nexus 6P, which has the same camera. The same day I opened up 5 desktops on my Windows laptop, launched my magic tools and denied sleep for a few days.

Today, I am proud to present Camera X!

Features:
  1. This is a Google Camera mod
  2. Burst mode
    To enable, simply disable 'Smart Burst' from the camera app settings.
  3. Smart Burst mode
  4. 240fps slow-motion*
  5. Video EIS**

How to enable EIS? **
EIS (electronic image stabilization) is triggered in the camera driver library and is impossible to alter without root access (source code of EIS check, found in 'camera.msm8992.so').

If you are a root user, you can:
  • Edit your 'build.prop' file (using root file manager or Build Prop Editor app from PlayStore) and add these two lines:
    Code:
    persist.camera.eis.enable=1
    persist.camera.is_mode=4
  • Use the following flashable ZIP. Thank you synesthete for your work!
You will see 'Camera Settings > Resolution & Quality > Enable video stabilization' after a phone reboot.

NOTE: EIS does not work with 4K video due to hardware limitations!

NOTE: persist lines will have an effect even if you remove them, so set them back to '0' if you want to disable them!

What's IS mode?
Code:
       //IS type will be 0 unless EIS is supported. If EIS is supported
        //it could either be 1 or 4 depending on the stream and video size
        if (setEis) {
            if (!m_bEisSupportedSize) {
                is_type = IS_TYPE_DIS;
            } else {
                is_type = IS_TYPE_EIS_2_0;
            }
            mStreamConfigInfo.is_type = is_type;
        } else {
            mStreamConfigInfo.is_type = IS_TYPE_NONE;
        }

Story behind Camera X:
I have a Nexus 5X. I began by modding Google Camera to think that it's running on a Nexus 6P. Surprisingly, this enabled Burst Mode!
I started digging in. After 2-3 days of sleepless analysis I found where all features reside and how to enable them. I am constantly trying new tweaks and updating my mod accordingly if something is useful.

Why didn't Google enable these features by default? *
While 240fps works, you will notice that the quality is very low compared to the Nexus 6P, especially in low light. This is due to the processing limitations our device has. The bit rate cannot be increased any more than this (at least software-wise).

Download:
Click me (Google Drive)

Note: In order to avoid having to remove the original camera app, my mod has the package name com.google.android.GoogleCameraX and app name Camera X.
 
Last edited:

ViRb3

Senior Member
Aug 25, 2014
386
810
Changelog:

30 Apr 2016 -1
  • Fixed HDR+ not working
30 Apr 2016
  • Updated mod to Google Camera v3.2.042:
    Android N support, UI improvements, faster camera, experimental RAW support, ZSL support
  • Re-implemented mod with new, more stable methods
  • CameraX version system now matches official Google Camera versions
27 Dec 2015 - Renamed app name and package name to avoid having to uninstall the original app (no root required anymore)
27 Dec 2015 - Initial release
 
Last edited:

ViRb3

Senior Member
Aug 25, 2014
386
810
Tunables:

Device-specific Native Memory Override in MB

Nexus 5 - 525
Nexus 6 - 580
Nexus 6P - 420
Nexus 5X - 370

Blacklisted Preview Resolutions - Back Camera

Nexus 5X - "1440x1080,1920x1080"

Blacklisted Preview Resolutions - Front Camera

Nexus 5X - "1440x1080,1920x1080"

Max. Allowed Image Reader Count

Default - 15
Samsung Galaxy S6 - 9
Nexus 6 - 9
Nexus 6P - 9
Nexus 5X - 3

//result + 6

Max. HDR+ Burst Frame Count

Default - 8
Nexus 5X - 5
Nexus 6P - 7

Re-processing Image Reader/Writer Count

Default - 1
Nexus 6X - 1
Nexus 6P - 3

Low Resolution Crop Rectangle

//custom calculation for Nexus 6P
 
Last edited:

peikojose

Senior Member
May 13, 2012
1,036
178
Wow, it works and it works fine.. I recorded some 240fps videos, no problem! No crashes or FC!

Maybe, we can enable a way (using custom kernels) to make all the cores work at full speed when Camera app is running!

Thanks!!!

BTW can you somehow change the name of the app? Maybe "Camera 6P", that way people wouldn't need to uninstall Camera app (which requires root I think...)
 

dLeTe

Senior Member
Jun 5, 2010
105
15
Is there a way to add 4 burst shot without a modded apk?
I was hoping for a simple solution like how adding eis was just a build.prop addition.
 

ViRb3

Senior Member
Aug 25, 2014
386
810
Pardon me for asking, but you say no root required and yet your instructions require uninstalling a system app? :confused:

I just realized this as I was going to bed yesterday. I use a custom ROM here and Google Camera is not a system app. I can easily change the package name (and icon), but I am not exactly sure how happy Google would be with that. Any law-knowledgeable person can enlighten me, please?

Maybe, we can enable a way (using custom kernels) to make all the cores work at full speed when Camera app is running

I believe that the interactive governor already does that. One thing we can absolutely do, however, is overclock the CPU for the camera. I will investigate on that, thanks for the suggestion.

Is there a way to add 4 burst shot without a modded apk?
I was hoping for a simple solution like how adding eis was just a build.prop addition.

It *might* be just possible. As far as I could see the build.prop line for EIS is not checked from within Google Camera, therefore there should be another package responsible for that. The existence of a line for burst mode could be very possible. I will look around for that soon.
 
Last edited:
  • Like
Reactions: Jagoflax

darkfangex5

Senior Member
Aug 29, 2010
215
43
Glad to report back that I haven't found any issues so far. I turned off smart burst and tried it out, and I could only store maybe 19 shots with the shutter held down, doesn't bother me much as I don't know what the actual limit of non hdr photos are for burst. I was wondering if there was any way of increasing 240fps bit rate. The fact that 240fps works is already a miracle.
 

X7-Ghost

Member
Sep 21, 2015
5
2
I did some research about this before hand and the snapdragon 808 and 810 share the same throughput so the only thing stopping the 5x from having the same 19Mbps bitrate is probably the CPU and maybe the lack of additional ram might have something to do with it. In either case the best option in my opinion would be a custom kernel working in conjunction with the camera app.:cowboy:

---------- Post added at 09:45 PM ---------- Previous post was at 09:41 PM ----------

You could also message Gandalf on how he implemented EIS into omnirom. Not sure if he implemented it the same way you did.:confused:
 

0.0

Senior Member
Jan 12, 2010
6,829
3,275
In terms of legality, I see users who post modded versions of other apps from companies that will install separately from the original app, e.g., Moto Cam, by changing the package name. I don't see why you couldn't since it isn't a paid app

It would be cool if you did upload one that doesn't require uninstalling the system app for those who do not have and do not want to root
 
Last edited:
  • Like
Reactions: ViRb3

thatgreekgod

Member
Dec 15, 2015
17
2
32
Lexington
gotcha thanks

Titanium Backup will uninstall system apps.


---------- Post added at 01:42 AM ---------- Previous post was at 01:40 AM ----------

awesome thanks! that worked. I used an app called System app remover (ROOT)
You have to be rooted and with a root explorer delete /system/app/Camera folder. You can do it with an app but I don't know which one uninstall system apps.

Sent from my Nexus 5X using Tapatalk
 

ViRb3

Senior Member
Aug 25, 2014
386
810

Top Liked Posts

  • There are no posts matching your filters.
  • 160
    I came across a thread that claimed it's possible to enable EIS (Electronic Image Stabilization) on Nexus 5X through a build.prop line. I was skeptical at first, but when I tried it for myself, it really worked! I immediately thought about the other features our device was mysteriously missing, but are available on the Nexus 6P, which has the same camera. The same day I opened up 5 desktops on my Windows laptop, launched my magic tools and denied sleep for a few days.

    Today, I am proud to present Camera X!

    Features:
    1. This is a Google Camera mod
    2. Burst mode
      To enable, simply disable 'Smart Burst' from the camera app settings.
    3. Smart Burst mode
    4. 240fps slow-motion*
    5. Video EIS**

    How to enable EIS? **
    EIS (electronic image stabilization) is triggered in the camera driver library and is impossible to alter without root access (source code of EIS check, found in 'camera.msm8992.so').

    If you are a root user, you can:
    • Edit your 'build.prop' file (using root file manager or Build Prop Editor app from PlayStore) and add these two lines:
      Code:
      persist.camera.eis.enable=1
      persist.camera.is_mode=4
    • Use the following flashable ZIP. Thank you synesthete for your work!
    You will see 'Camera Settings > Resolution & Quality > Enable video stabilization' after a phone reboot.

    NOTE: EIS does not work with 4K video due to hardware limitations!

    NOTE: persist lines will have an effect even if you remove them, so set them back to '0' if you want to disable them!

    What's IS mode?
    Code:
           //IS type will be 0 unless EIS is supported. If EIS is supported
            //it could either be 1 or 4 depending on the stream and video size
            if (setEis) {
                if (!m_bEisSupportedSize) {
                    is_type = IS_TYPE_DIS;
                } else {
                    is_type = IS_TYPE_EIS_2_0;
                }
                mStreamConfigInfo.is_type = is_type;
            } else {
                mStreamConfigInfo.is_type = IS_TYPE_NONE;
            }

    Story behind Camera X:
    I have a Nexus 5X. I began by modding Google Camera to think that it's running on a Nexus 6P. Surprisingly, this enabled Burst Mode!
    I started digging in. After 2-3 days of sleepless analysis I found where all features reside and how to enable them. I am constantly trying new tweaks and updating my mod accordingly if something is useful.

    Why didn't Google enable these features by default? *
    While 240fps works, you will notice that the quality is very low compared to the Nexus 6P, especially in low light. This is due to the processing limitations our device has. The bit rate cannot be increased any more than this (at least software-wise).

    Download:
    Click me (Google Drive)

    Note: In order to avoid having to remove the original camera app, my mod has the package name com.google.android.GoogleCameraX and app name Camera X.
    34
    Good news fellows, 240 fps is back and working! Even greater news: I might be able to get better quality of 240fps on our Nexus 5X! That's right, I said it! I used to use the 120 fps video profile for 240 fps, which resulted in very bad bit rate and quality. For this update I had to dig deeper until I found a way to hopefully adjust the bitstream as well. I am still experimenting with this, but it might end up surprisingly well! Stay tuned :)
    26
    I made a flashable zip script to add the build.prop entries for EIS. It seems to work fine for me. I have only tested it myself, so I would recommend making a backup, just in case (I'm not very experienced with scripting update zips). I figured I would share it, since I know it is a bit tedious to manually edit the file after flashing a new ROM. Currently, this does not include the camera app apk.

    Edit: I originally uploaded an unsigned zip. Use the "Enable_EIS-signed.zip" file instead.

    The script in the zip is as follows:

    Code:
    #!/sbin/sh
    #
    # Enable EIS
    # Made By Synesthete
    # Lisence : Do whatever the hell you want! :D
    #
    # ----- WHAT IT DOES ------
    #
    # This script adds entries to your build.prop file in order to enable
    # EIS (Electronic Image Stabilization) in the Google Camera app.
    mount system
    mount data
    # Set Variables
    echo "*  Setting Variables ..."
    echo
    STRING1="persist.camera.eis.enable=1"
    STRING2="persist.camera.is_mode=4"
    echo "*  Variables Set"
    echo
    
    # Check to see if string 1 already exists is build.prop
    echo "*  Checking to see if string #1 already exist in build.prop ..."
    echo
    if grep -Fxq "$STRING1" /system/build.prop
    then
        echo "   String #1 Found. No need to add it."
    else
        echo "   String #1 Not Found. Adding String ..."
        echo "persist.camera.eis.enable=1" >> /system/build.prop
        echo
        echo "   String #1 set."
    fi
    echo
    # Check to see if the string 2 already exists is build.prop
    echo "*  Checking to see if string #2 already exist in build.prop ..."
    echo
    if grep -Fxq "$STRING2" /system/build.prop
    then
        echo "   String #2 Found. No need to add it."
    else
        echo "   String #2 Not Found. Adding String ..."
        echo "persist.camera.is_mode=4" >> /system/build.prop
        echo
        echo "   String #2 set."
    fi
    echo
    echo "*  Done!"
    22
    Hey guys, sorry for being away for so long. I just came back to my home county, settled back in, and I am now somewhat ready to code again. I still have exams and school to catch up with, so don't expect 24/7 work.

    Here is a new idea I came up with: front camera flash (Retina Flash) for my Google Camera mod! Would you guys like to see this? And yes it should work on all phones!
    18
    Changelog:

    30 Apr 2016 -1
    • Fixed HDR+ not working
    30 Apr 2016
    • Updated mod to Google Camera v3.2.042:
      Android N support, UI improvements, faster camera, experimental RAW support, ZSL support
    • Re-implemented mod with new, more stable methods
    • CameraX version system now matches official Google Camera versions
    27 Dec 2015 - Renamed app name and package name to avoid having to uninstall the original app (no root required anymore)
    27 Dec 2015 - Initial release