Next month will see multiple high-profile smartphone announcements. We expect to see the LG V40 ThinQ, Google Pixel 3, Razer Phone 2, a new Samsung Galaxy A phone, the Huawei Mate 20, the OnePlus 6T, and the Honor Magic 2. While we basically know everything there is to know about the Pixel 3, the other smartphones aren't as well documented. We know the basic design and hardware of the Huawei Mate 20 thanks to previous leaks, and we can now share some insight into the possible features of its camera app. We can't guarantee that the features will launch with the Huawei Mate 20, but these new EMUI 9 camera features are bound to show up in some future Huawei or Honor device.

An APK teardown can often predict features that may arrive in a future update of an application, but it is possible that any of the features we mention here may not make it in a future release. This is because these features are currently unimplemented in the live build and may be pulled at any time by Google in a future build.

Special thanks to PNF Software for providing us with JEB Decompiler. JEB made it possible for us to decompile and analyze the code of the EMUI 9 camera app. The Huawei Mate 20 firmware (dated September 13th) we analyzed was provided to us by FunkyHuawei.club, a service which allows users to updateunbrick, or rebrand Huawei and Honor phones for a fee. FunkyHuawei is planning to fully support the upcoming Huawei Mate 20 series and is currently offering a sale for XDA readers.


Underwater Mode

This is by far the strangest new feature I found in the EMUI 9 camera app. The Huawei P20 Pro is IP67 rated for dust and water resistance, but it's not fully waterproof so you could ruin your phone by trying to take a video while it's submerged underwater. We don't know if the upcoming Huawei Mate 20 or Huawei Mate 20 Pro will be waterproof, but it doesn't seem like that'll matter because this Underwater Mode is designed to work with or without a waterproof phone.

According to the strings I found, Underwater Mode is designed to help you "take clear shots in underwater environments." You can press the volume down button to take a photo, press the volume up button to shoot a video, press the power button to turn the camera on/off, or touch and hold the button at the bottom to exit. All of this can be done by tapping on the screen through a waterproof phone case, and apparently, Huawei will be offering such cases themselves. Although, the company warns that any damage caused to your phone by not following the instructions properly will not be covered by warranty.

Huawei Mate 20 possible camera features

I found a relevant graphic for Underwater Mode, and it looks like a picture of a phone in a bag. Huawei is encouraging you to stick your really expensive smartphone in a bag and submerge it underwater to take great photos. Some of you may find that really cool, but I think I'll pass.

Huawei Mate 20 possible camera features

The two screenshots below show how we used JEB Decompiler to aid us in the discovery of this feature. The screenshot on the left shows us cross-referencing the image field in the code with the actual asset, while the screenshot to the right shows that the property ro.hwcamera_underwater_enable must be set to true for this feature to be usable. We checked local.prop in /product/etc/prop, however, the flag was missing. It's possible this feature won't launch with the Huawei Mate 20, but since we examined pre-release software we don't know if Huawei will flip the switch at a later date. Underwater Mode does not seem to require special hardware (such as the new HiSilicon Kirin 980) to work, as there isn't a Huawei camera capability flag for it defined in the app.

AI Cinema

This next feature is hardly surprising to see since Huawei explicitly told us during the launch of the HiSilicon Kirin 980 that the chipset would be capable of real-time object recognition in videos thanks to its dual NPUs. Called "AI Cinema," it looks like the feature will apply certain filters in real-time during video recording. The available filters are AI Color, Background Blur, Fresh, Vintage, and Suspense. The image below shows the sample graphics for each filter that Huawei included in the EMUI 9 camera app.

Huawei Mate 20 AI Movie

Below are the strings which I used to obtain the true names of each filter.

        <string name="ai_cinema_effect_none">None</string>
<string name="ai_cinema_effect_bokeh">Background blur</string>
<string name="ai_cinema_effect_color">AI color</string>
<string name="ai_cinema_effect_fresh">Fresh</string>
<string name="ai_cinema_effect_nostalgia">Vintage</string>
<string name="ai_cinema_effect_hitchcock">Suspense</string>
<string name="ai_cinema_color_tip_select">Touch to select colors.</string>

Lastly, for this feature to be enabled, ro.hwcamera.aimovie_enable must be set to true. This is not the case in the current build I was looking at, but given the capabilities of the Kirin 980, we would be surprised if a feature like this isn't enabled by the time the device is shipped. The Kirin 980 should support the AI Movie feature, however, as the camera capability flag for it is defined.

Huawei Mate 20

AI Zoom

If you struggle with finding the perfect zoom level to take a great picture, then Huawei's AI Zoom feature may be for you. The strings state that the feature will automatically adjust the zoom level to keep your subject centered. Apart from that, the strings don't tell us much else about the feature.

        <string name="title_smart_zoom">AI zoom</string>
<string name="remark_smart_zoom">Automatically adjust the zoom level to keep your subject centered</string>
<string name="toast_smart_zoom_enter">AI zoom enabled.</string>
<string name="toast_smart_zoom_quit">AI zoom disabled.</string>
<string name="toast_smart_zoom_fail">Unable to lock on to subject.</string>
<string name="toast_smart_zoom_first_tip">Touch the padlock to lock on and enable AI zoom.</string>

Digging into the code, we can see that there are three requirements for the feature to be enabled:

  • The video recording resolution must be at least 1080p.
  • AI Cinema must be enabled.
  • The beauty level must be 0 (off).

We can also see that the "subject" the strings refer to is a person's face judging by the reference to Smart Zoom (AI Zoom) in the FaceDetectionExtension class. Lastly, we can see that there may be manual compensation for AI Zoom in case the algorithm zooms in on the wrong subject. Parts of the code mention grabbing the touch or tap position and then calculating a rectangle to zoom in on.

For AI Zoom to be enabled, ro.hwcamera.smartzoom_enable must be set to true. Again, this feature isn't enabled in the build I'm looking at, but the HiSilicon Kirin 980 is certainly capable of this feature so I wouldn't be surprised to see this feature on the Huawei Mate 20.

Video Bokeh

Bokeh is the process of highlighting the foreground subject by blurring the background surrounding the subject. Bokeh effects place shapes in the background, such as stars or circles, which gives the illusion of lights. Huawei will be offering multiple video bokeh effects, as shown by the sample graphics below.

Huawei Mate 20

Video Bokeh, like AI Zoom and AI Cinema, will require support in the camera HAL. Specifically, the videoBokehSpotShapeSupported and videoBokehSpotShapeValueSupported camera capabilities must be defined. We believe the Mate 20 will support this, though we can't confirm if the feature is actually enabled on the device.


That's about all we could learn from the EMUI 9 camera app in the Huawei Mate 20 firmware dump. If we learn more about the Huawei Mate 20 or Huawei Mate 20 Pro, we'll let you all know. We have some special goodies for our readers that don't require you to own a Huawei or Honor device to appreciate, so stay tuned!

Join the Huawei Mate 20 Forums

Join the Huawei Mate 20 Pro Forums

Note: Huawei has stopped providing official bootloader unlock codes for its devices. Therefore, the bootloader of the Huawei Mate 20 and Huawei Mate 20 Pro cannot be unlocked, which means that users cannot flash Magisk/TWRP/Project Treble Generic System Images/AOSP-based custom ROMs.