overhaul usage guide Camera docs for our new app
This commit is contained in:
parent
42856dc17b
commit
d335e4eaf2
@ -76,7 +76,13 @@
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#web-browsing">Web browsing</a></li>
|
||||
<li><a href="#camera">Camera</a></li>
|
||||
<li>
|
||||
<a href="#camera">Camera</a>
|
||||
<ul>
|
||||
<li><a href="#grapheneos-camera-app">GrapheneOS Camera app</a></li>
|
||||
<li><a href="#google-camera">Google Camera</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#exec-spawning">Exec spawning</a></li>
|
||||
<li><a href="#bugs-uncovered-by-security-features">Bugs uncovered by security features</a></li>
|
||||
<li>
|
||||
@ -492,38 +498,120 @@
|
||||
<section id="camera">
|
||||
<h2><a href="#camera">Camera</a></h2>
|
||||
|
||||
<p>GrapheneOS itself has the same camera capabilities and quality as the stock OS.
|
||||
It will match the stock OS when comparing the same app on each OS.</p>
|
||||
<p>GrapheneOS has the same camera capabilities and quality as the stock OS. It
|
||||
will match the stock OS when comparing the same app on each OS.</p>
|
||||
|
||||
<p>The Camera app included in GrapheneOS is very basic and can't take full advantage
|
||||
of the hardware. It doesn't offer much in the way of configuration. In the long term,
|
||||
it's going to be replaced. In the short term, there are other apps available providing
|
||||
more capabilities and better support for taking advantage of the hardware.</p>
|
||||
<section id="grapheneos-camera-app">
|
||||
<h3><a href="#grapheneos-camera-app">GrapheneOS Camera app</a></h3>
|
||||
|
||||
<p>Open Camera is somewhat more advanced and much more configurable. You should
|
||||
make sure to configure it to use the Camera2 API since it uses the legacy camera
|
||||
APIs by default for broader compatibility with devices. It isn't currently able to
|
||||
make use of special purpose cameras and doesn't have any advanced image capturing
|
||||
or processing technology. It has a traditional software-based HDR mode which
|
||||
captures 3 images and merges them in a way that isn't at all intelligent and
|
||||
causes a lot of blur and distortion. You probably don't want to use this unless
|
||||
you have a way to mount the phone in a stable position and aren't taking a picture
|
||||
of anything that's not almost entirely still.</p>
|
||||
<p>GrapheneOS includes our own modern Camera app based on the bleeding edge
|
||||
release channel of Android's CameraX library. It provides modes for QR
|
||||
scanning, image capture and video recording as tabs at the bottom of the
|
||||
screen. You can either use the tab interface or swipe left and right anywhere
|
||||
on the screen above it to switch between them. The arrow button at the top of
|
||||
the screen opens the settings panel and you can close it by pressing anywhere
|
||||
outside the settings panel. You can also swipe down to open the settings and
|
||||
swipe up to close it. Outside of the QR scanning mode, there's a row of large
|
||||
buttons above the tab bar for switching between the cameras (left), capturing
|
||||
images and starting/stopping video recording (middle) and opening the gallery
|
||||
(right). The volume keys can also be used as an equivalent to pressing the
|
||||
capture button. While recording a video, the gallery button becomes an image
|
||||
capture button for capturing images.</p>
|
||||
|
||||
<p>Google Camera can be used with the <a href="#sandboxed-play-services">sandboxed
|
||||
Play services compatibility layer</a> and can take full advantage of the available
|
||||
cameras and image processing hardware as it can on the stock OS. Other camera apps
|
||||
could provide the same image quality and features but there aren't any comparable
|
||||
alternatives in practice. HDR+ is enabled by default and is a much more advanced
|
||||
replacement for HDR taking bursts of pictures and intelligently combining those
|
||||
which is what makes the image quality so much higher, especially for low light.
|
||||
The Night Sight feature is essentially the same thing, but with the light of the
|
||||
picture unnaturally increased through combining the data.</p>
|
||||
<p>Our Camera app provides the system media intents used by other apps to
|
||||
capture images / record videos via the OS provided camera implementation.
|
||||
These intents can only be provided by a system app since Android 11, so the
|
||||
quality of the system camera is quite important.</p>
|
||||
|
||||
<p>Since there isn't a project making a serious, high quality open source camera
|
||||
app able to even compete with Google Camera without HDR+ and the fancy features,
|
||||
GrapheneOS is funding the creation of a new app as a replacement for the AOSP
|
||||
Camera app.</p>
|
||||
<p>The in-app gallery / video player doesn't yet support zooming and depends
|
||||
on opening an external image/video editor. This will be improved in the
|
||||
future. We'll eventually be making our own gallery/editor app sharing a lot of
|
||||
the code with the in-app gallery in the camera.</p>
|
||||
|
||||
<p>Using the default 4:3 aspect ratio for image capture is recommended since
|
||||
16:9 is simply cropped output on all supported devices. A device oriented
|
||||
towards video recording might actually have a wider image sensor but that's
|
||||
not the case for Pixels or nearly any other smartphone.</p>
|
||||
|
||||
<p>Image capture uses lightweight HDR+ on all supported Pixels and HDRnet for the
|
||||
preview on 5th generation Pixels. Using the torch or camera flash will result
|
||||
in HDR+ being disabled which is why automatic flash isn't enabled by default.
|
||||
The lightweight HDR+ doesn't use as many frames as the more aggressive Google
|
||||
Camera HDR+. CameraX extensions will eventually provide support for an HDR
|
||||
mode with more aggressive HDR+ taking/combining more than only around 3 frames
|
||||
along with a Night mode providing the Night Sight variant of HDR+ inflating
|
||||
the light of the scene through combining the frames. Other fancy features like
|
||||
Portrait mode will also depend on CameraX extensions being provided in the
|
||||
future. There isn't a timeline for this but an initial implementation will
|
||||
likely be shipped within the next year for Pixels.</p>
|
||||
|
||||
<p>Zooming via pinch to zoom or the zoom slider will automatically make use of
|
||||
the wide angle and telephoto cameras on Pixels. 4th generation Pixels have a
|
||||
telephoto camera for 2x zoom and above. 5th generation Pixels have a wide
|
||||
angle lens for zooming out from 1x to 0.6x. Images taken with the wide angle
|
||||
lens won't match the quality of the normal camera but it offers a much wider
|
||||
field of view.</p>
|
||||
|
||||
<p>By default, continuous auto focus, auto exposure and auto white balance are
|
||||
used across the whole scene. Tapping to focus will switch to auto focus, auto
|
||||
exposure and auto white balance based on that location. The focus timeout
|
||||
setting determines the timeout before it switches back the default mode. The
|
||||
exposure compensation slider on the left allows manually tuning exposure and
|
||||
will automatically adjust shutter speed, aperture and ISO without disrupting
|
||||
lightweight HDR+ support. Further configuration / tuning over the algorithms
|
||||
will be provided in the future. Direct manual control doesn't make much sense
|
||||
with the modern camera stack and isn't planned.</p>
|
||||
|
||||
<p>CameraX only recently gained official support for video recording in
|
||||
October 2021 and there are still some quirks. The preview can sometimes end up
|
||||
misaligned but the recorded videos won't be impacted. 16:9 is currently the
|
||||
only supported video aspect ratio. 1080p (FHD) is the default but 2160p (UHD)
|
||||
is supported. CameraX UHD support may be buggy on some devices.</p>
|
||||
|
||||
<p>The QR scanning mode only scans within the scanning square marked on the
|
||||
screen. The QR code should be aligned with the edges of the square but can
|
||||
have any 90 degree orientation. Non-standard inverted QR codes are fully
|
||||
supported. It's a very quick and high quality QR scanner able to easily scan
|
||||
very high density QR codes from Pixels. Every 2 seconds, it will refresh auto
|
||||
focus, auto exposure and auto white balance on the scanning square. It has
|
||||
full support for zooming in and out. Support for other kinds of barcodes will
|
||||
be added in the future, but adding them transparently would result in getting
|
||||
false positives and would substantially harm the QR scanning capability. It
|
||||
will need to be done in a way offering more control without having an overly
|
||||
complex user interface.</p>
|
||||
|
||||
<p>Camera permission is the only one that's required. Images and videos are
|
||||
stored via the Media Store API so media/storage permissions aren't required.
|
||||
The Microphone permission is needed for video recording by default but not
|
||||
when including audio is disabled. Location permission is only needed if you
|
||||
explicitly enabling location tagging, which is an experimental feature.</p>
|
||||
|
||||
<p>Captured images currently include an EXIF timestamp, the phone model and an
|
||||
abstraction of the exposure configuration. This will become fully optional in
|
||||
the future and will likely be opt-in rather than opt-out. EXIF orientation
|
||||
data is crucial for setting the proper orientation of the image. Videos have
|
||||
their own similar metadata.</p>
|
||||
</section>
|
||||
|
||||
<section id="google-camera">
|
||||
<h3><a href="#google-camera">Google Camera</a></h3>
|
||||
|
||||
<p>Google Camera can be used with the <a href="#sandboxed-play-services">sandboxed
|
||||
Play services compatibility layer</a> and can take full advantage of the
|
||||
available cameras and image processing hardware as it can on the stock OS.
|
||||
Other camera apps could provide the same image quality and features but there
|
||||
aren't any comparable alternatives in practice. HDR+ is enabled by default and
|
||||
is a much more advanced replacement for HDR taking bursts of pictures and
|
||||
intelligently combining those which is what makes the image quality so much
|
||||
higher, especially for low light. The Night Sight feature is essentially the
|
||||
same thing, but with the light of the picture unnaturally increased through
|
||||
combining the data.</p>
|
||||
|
||||
<p>Since there isn't a project making a serious, high quality open source
|
||||
camera app able to even compete with Google Camera without HDR+ and the fancy
|
||||
features, GrapheneOS is funding the creation of a new app as a replacement for
|
||||
the AOSP Camera app.</p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="exec-spawning">
|
||||
|
Loading…
x
Reference in New Issue
Block a user