Home

Awesome

FreeDcam

<img src="/playstoreimages/freedcam.jpg" width="500" height="280">

<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" alt="Get it on F-Droid" height="80">

Build

To build use latest Android Studio

Supported Apis:

android.hardware.camera

android.hardware.camera2

Projects used by FreeDcam

Libtiff

Special Thanks @ Dave Coffin for dcraw and the bayer extracting to 16bit

Libraw

TouchImageview

Q&A

Hidden Oem Settings

Huawei Code:

*#*#2846579#*#*

Camera Ui Icons

<img src="/playstoreimages/cameraui.png" width="500" height="280"> <table> <tr> <td>Modes:</td> <td>Manuals:</td> </tr> <tr> <td> <table bgcolor="#6f6f6f"> <tr> <td><img src="/app/src/main/res/drawable-hdpi/quck_set_wb.png" width="50" height="50"></td> <td>Whitebalance Mode</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/manual_iso.png" width="50" height="50"></td> <td>Iso Mode</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/quck_set_flash.png" width="50" height="50"></td> <td>Flash Mode</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/manual_focus.png" width="50" height="50"></td> <td>Focus Mode</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/quck_set_ae.png" width="50" height="50"></td> <td>Exposure Mode</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/ae_priority.png" width="50" height="50"></td> <td>Ae Priority Mode</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/quck_set_night.png" width="50" height="50"></td> <td>Night Mode</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/quck_set_contin.png" width="50" height="50"></td> <td>Continouse Capture Mode</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/quck_set_hdr.png" width="50" height="50"></td> <td>HDR Mode</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/quck_set_format2.png" width="50" height="50"></td> <td>Picture Format Mode</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/quck_set_exit.png" width="50" height="50"></td> <td>Exit App</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/quck_set_mode.png" width="50" height="50"></td> <td>Switch Mode/Module</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/quck_set_zebra.png" width="50" height="50"></td> <td>FocusPeak/ZebraPattern</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/quck_set_cswitch.png" width="50" height="50"></td> <td>Switch Camera</td> </tr> </table> </td> <td> <table bgcolor="#6f6f6f"> <tr> <td><img src="/app/src/main/res/drawable-hdpi/manual_focus.png" width="50" height="50"></td> <td>Manual Focus</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/manual_iso.png" width="50" height="50"></td> <td>Manual Iso</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/manual_shutter.png" width="50" height="50"></td> <td>Shutter/Exposure Time</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/manual_fnum.png" width="50" height="50"></td> <td>Manual Aperture/F~Number</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/manual_exposure.png" width="50" height="50"></td> <td>Manual Exposure</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/brightness.png" width="50" height="50"></td> <td>Manual Brightness</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/manual_burst.png" width="50" height="50"></td> <td>Burst Count</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/manual_wb.png" width="50" height="50"></td> <td>Manual WhiteBalance Correction</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/manual_contrast.png" width="50" height="50"></td> <td>Contrast</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/manual_saturation.png" width="50" height="50"></td> <td>Saturation</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/manual_sharpness.png" width="50" height="50"></td> <td>Sharpness</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/manual_shift.png" width="50" height="50"></td> <td>Program Shift</td> </tr> <tr> <td ><img src="/app/src/main/res/drawable-hdpi/manual_zoom.png" width="50" height="50"></td> <td>Zoom</td> </tr> <tr> <td><img src="/app/src/main/res/drawable-hdpi/manual_convergence.png" width="50" height="50"></td> <td>3D deepth on on o3d</td> </tr> </table> </td> </tr> </table>

Camera1 Dng Supported Devices

List is not up to date

KK = Kitkat,L = Lollipop , M = Marshmallow

DeviceDngMFShutterIso
Alcatel 985ntruefalsefalsefalse
Alcatel Idol3/smalltruetruetruetrue
Aquaris E5truetruetruetrue
Aquaris M5truetruetruetrue
Blackberry Privtruetruetruetrue
Elephone P9000truetruetruetrue
FowardArttruetruetruetrue
Gione E7truefalsefalsefalse
Htc Desire500truefalsefalsefalse
Htc M8/9truetruetruefalse
Htc One A9truefalsefalsefalse
Htc One E8truefalsefalsefalse
Htc One SVtruefalsefalsefalse
Htc One XLtruefalsefalsefalse
Huawei GX8truetruefalsefalse
Huawei Honor 5Xtruetruefalsefalse
I Mobile IStylteQ6truetruetruetrue
Jiayu S3truetruetruetrue
Lenovo K4 Notetruetruetruetrue
Lenovo K50truetruetruetrue
Lenovo K910truefalsefalsefalse
Lenovo K920truetruetruetrue
Lenovo VibeP1truetruetruetrue
Lenovo VibeShot Z90truetruetruetrue
Lumigon T3truetruetruetrue
LG G2truetruefalsefalse
LG G2protruetruetruefalse
LG G3trueKK=true,L=false,M=truefalsefalse
LG G4truetruetruetrue
Meizu M1 Metaltruetruetruetrue
Meizu M2 Notetruetruetruetrue
Meizu MX4/5truetruetruetrue
Mlais M52 Red Notetruetruetruetrue
Moto X 2015truefalsefalsefalse
Moto X Style Pure Playtruetruetruetrue
MyPhone Infinity 2Struetruetruetrue
OnePlus Onetruetruetruefalse
OnePlus Twotruetruetruefalse
Prestigio Multipad Colortruetruetruetrue
Retrotruefalsefalsefalse
Sony C4truetruetruetrue
Sony C5truetruetruetrue
Sony M4truetruetruetrue
Sony M5truetruetruetrue
Sony XperiaLtruefalsefalsefalse
THL5000truetruetruetrue
Umi Rome Xtruetruetruetrue
Vivo Xplaytruefalsefalsefalse
WileyFox Swifttruetruetruefalse
Xiaomi Mi A1truetruetruetrue
Xiaomi Mi3truetruetruefalse
Xiaomi Mi3wtruetruetruefalse
Xiaomi Mi4ctruetruetruefalse
Xiaomi Mi4wtruetruetruefalse
Xiaomi Mi 5falsebroken raw streamtruetruefalse
Xiaomi Mi Maxtruetruetruefalse
Xiaomi Mi Note Protruetruetruefalse
Xiaomi Redmi Notetruetruetruefalse
Xiaomi Redmi Note 2truetruetruetrue
Xiaomi Redmi Note 3 (Snap/MTK)truetruetruetrue
Xolo Omega5truetruetruetrue
Yu Yurekatruefalsefalsefalse
Zoppo 8Speedtruetruetruetrue

How to create a Custom Matrix

First you need a Colorchecker Passport without it, its useless to continue

colorchecker

Set it somewhere in the Scene and capture a Dng from it.
When done you need Adobes Dng Profile Editor
Load there the Dng and choose Chart tab and place the dots to the edges of the chart.
Then click Create Color Table. Now you can tune the matrixes. When done save the dcp profile into camera raw appData folder.
C:\Users\ UserName\AppData\Roaming\Adobe\CameraRaw\CameraProfiles.
Then open the Dng into CameraRaw and go to tab Camera Calibration.
Select there the created dcp profile and click on Save Image... and save the Dng with the choosen profile, do not open the image!

Open the saved Dng now into exiftools or a simliar tool, wich can read metadata, and copy out the matrixes into a txt file in the bottom order.

<matrixes>
    <matrix name="G4">
        <color1>1.15625, -0.2890625, -0.3203125, -0.53125, 1.5625f, 0.0625, -0.078125, 0.28125, 0.5625</color1>
        <color2>0.5859375, 0.0546875, -0.125, -0.6484375, 1.5546875, 0.0546875, -0.2421875, 0.5625, 0.390625</color2>
        <neutral>0.53125, 1, 0.640625</neutral>
        <forward1>0.820300, -0.218800, 0.359400, 0.343800, 0.570300,0.093800, 0.015600, -0.726600, 1.539100</forward1>
        <forward2>0.679700, -0.078100, 0.359400, 0.210900, 0.703100,0.085900, -0.046900, -0.828100, 1.695300</forward2>
        <reduction1>0.9921875, 0, 0, 0, 1, 0, 0, 0, 1.015625</reduction1>
        <reduction2>0.9921875, 0, 0, 0, 1, 0, 0, 0, 1.015625</reduction2>
        <noise>0.8853462669953089, 0,  0.8853462669953089f, 0, 0.8853462669953089f,0</noise>
    </matrix> 
</matrixes>

How to create a ToneMapProfile

Can get used to apply custom profiles direct to a dng.
data can get created with various tools.
like from a dcp with dcamprof or dcptools.
or extracted from a existing dng with exiftools.

tonemapprofiles.xml

<tonemapprofiles>

<!-- thats the first profile -->
    <tonemapprofile name="linear">
        <tonecurve>0,0,0.25,0.25,0.5,0.5,0.75,0.75,1,1</tonecurve> use "," to split. ignores whitespace and line breaks,
    
    <baselineexposure>0.35</baselineexposure> set to avoid the hidden exposure
    <huesatmapdims>90 25 1</huesatmapdims> should only contain whitespaces for splitting no line breaks!
    <huesatmapdata1>0 0 .... 1 1</huesatmapdata1> should only contain whitespaces for splitting no line breaks!
    </tonemapprofile>


    <!-- next profile -->
    <tonemapprofile name="srgb">
        <tonecurve>0,0,......,1,1</tonecurve>
    </tonemapprofile>
    
    <tonemapprofile name="iso100">
        <baselineexposure>-0.35</baselineexposure>
    </tonemapprofile>
</tonemapprofiles>

Copy that file now on your phones internalSD/DCIM/FreeDcam/config/matrixes.xml and you can select it inside Freedcam.
Its gets then applied to each new dng

MSM Camera Blobs Logging for DEVS

Create File in /data/misc/camera/camera_dbg.txt
Valid values:
none - no logging
error - error message logging only, default
high - log high priority messages and up
warn - log warnings and higher
low - verbose logging
debug - debug logging level

 cam_dbglevel=debug
 mct_dbglevel=debug
 sensor_dbglevel=debug
 iface_dbglevel=debug
 isp_dbglevel=debug
 stats_dbglevel=debug
 pproc_dbglevel=debug
 imglib_dbglevel=debug
 cpp_dbglevel=debug
 hal_dbglevel=debug
 jpeg_dbglevel=debug
 c2d_dbglevel=debug

Permission #chmod 770
persist.camera.global.debug 4
persist.camera.debug.logfile 1

License

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.