[Xiaomi Mi A1 Themes, Apps, and Mods] JortonMV:
[MENTION=4860033]Arnova8G2[/MENTION]. Mi A1 with Android 8.0.

Portrait mode fails with 1.4 version. 1.3 and 1.4 beta are working.

Device info with Camera2Test:

Camera 0 (BACK)

android.flash.info:

- available = true

android.info:

- supportedHardwareLevel = HARDWARE_LEVEL_3

android.tonemap:

- availableToneMapModes = [0,1,2]

- maxCurvePoints = 64

android.hotPixel:

- availableHotPixelModes = [1,2]

android.scaler:

- availableMaxDigitalZoom = 10.0

- croppingType = SCALER_CROPPING_TYPE_CENTER_ONLY

- streamConfigurationMap =

OutputFormats:

[4096x3072, RAW_SENSOR(32), min_dur:40000000, stall:200000000]
[4000x3000, JPEG(256), min_dur:40000000, stall:258000000]
[4000x2250, JPEG(256), min_dur:33333333, stall:253000000]
[4000x2000, JPEG(256), min_dur:33333333, stall:243000000]
[3840x2160, JPEG(256), min_dur:33333333, stall:179000000]
[3264x2448, JPEG(256), min_dur:40000000, stall:161000000]
[3200x2400, JPEG(256), min_dur:40000000, stall:144000000]
[2976x2976, JPEG(256), min_dur:40000000, stall:133000000]
[2592x1944, JPEG(256), min_dur:33333333, stall:116000000]
[2688x1512, JPEG(256), min_dur:33333333, stall:108000000]
[2592x1458, JPEG(256), min_dur:33333333, stall:103000000]
[2592x1296, JPEG(256), min_dur:33333333, stall:99000000]
[2048x1536, JPEG(256), min_dur:33333333, stall:91000000]
[1920x1080, JPEG(256), min_dur:33333333, stall:85000000]
[1920x960, JPEG(256), min_dur:33333333, stall:80000000]
[1600x1200, JPEG(256), min_dur:33333333, stall:75000000]
[1440x1080, JPEG(256), min_dur:33333333, stall:68000000]
[1280x960, JPEG(256), min_dur:33333333, stall:67000000]
[1280x768, JPEG(256), min_dur:33333333, stall:66000000]
[1280x720, JPEG(256), min_dur:33333333, stall:65000000]
[1280x640, JPEG(256), min_dur:33333333, stall:61000000]
[1200x1200, JPEG(256), min_dur:33333333, stall:59000000]
[1024x768, JPEG(256), min_dur:33333333, stall:55000000]
[800x600, JPEG(256), min_dur:33333333, stall:49000000]
[864x480, JPEG(256), min_dur:33333333, stall:49000000]
[800x480, JPEG(256), min_dur:33333333, stall:48000000]
[720x480, JPEG(256), min_dur:33333333, stall:45000000]
[640x480, JPEG(256), min_dur:33333333, stall:35000000]
[640x360, JPEG(256), min_dur:33333333, stall:30000000]
[480x640, JPEG(256), min_dur:33333333, stall:25000000]
[480x360, JPEG(256), min_dur:33333333, stall:18000000]
[480x320, JPEG(256), min_dur:33333333, stall:9277129363456]
[352x288, JPEG(256), min_dur:33333333, stall:9277129363200]
[320x240, JPEG(256), min_dur:33333333, stall:4638564681600]
[240x320, JPEG(256), min_dur:33333333, stall:4123168605440]
[4000x3000, PRIVATE(34), min_dur:40000000, stall:0]
[4000x2250, PRIVATE(34), min_dur:33333333, stall:0]
[4000x2000, PRIVATE(34), min_dur:33333333, stall:0]
[3840x2160, PRIVATE(34), min_dur:33333333, stall:0]
[3264x2448, PRIVATE(34), min_dur:40000000, stall:0]
[3200x2400, PRIVATE(34), min_dur:40000000, stall:0]
[2976x2976, PRIVATE(34), min_dur:40000000, stall:0]
[2592x1944, PRIVATE(34), min_dur:33333333, stall:0]
[2688x1512, PRIVATE(34), min_dur:33333333, stall:0]
[2592x1458, PRIVATE(34), min_dur:33333333, stall:0]
[2592x1296, PRIVATE(34), min_dur:33333333, stall:0]
[2048x1536, PRIVATE(34), min_dur:33333333, stall:0]
[1920x1080, PRIVATE(34), min_dur:33333333, stall:0]
[1920x960, PRIVATE(34), min_dur:33333333, stall:0]
[1600x1200, PRIVATE(34), min_dur:33333333, stall:0]
[1440x1080, PRIVATE(34), min_dur:33333333, stall:0]
[1280x960, PRIVATE(34), min_dur:33333333, stall:0]
[1280x768, PRIVATE(34), min_dur:33333333, stall:0]
[1280x720, PRIVATE(34), min_dur:33333333, stall:0]
[1280x640, PRIVATE(34), min_dur:33333333, stall:0]
[1200x1200, PRIVATE(34), min_dur:33333333, stall:0]
[1024x768, PRIVATE(34), min_dur:33333333, stall:0]
[800x600, PRIVATE(34), min_dur:33333333, stall:0]
[864x480, PRIVATE(34), min_dur:33333333, stall:0]
[800x480, PRIVATE(34), min_dur:33333333, stall:0]
[720x480, PRIVATE(34), min_dur:33333333, stall:0]
[640x480, PRIVATE(34), min_dur:33333333, stall:0]
[640x360, PRIVATE(34), min_dur:33333333, stall:0]
[480x640, PRIVATE(34), min_dur:33333333, stall:0]
[480x360, PRIVATE(34), min_dur:33333333, stall:0]
[480x320, PRIVATE(34), min_dur:33333333, stall:0]
[352x288, PRIVATE(34), min_dur:33333333, stall:0]
[320x240, PRIVATE(34), min_dur:33333333, stall:0]
[240x320, PRIVATE(34), min_dur:33333333, stall:0]
[4000x3000, YUV_420_888(35), min_dur:40000000, stall:0]
[4000x2250, YUV_420_888(35), min_dur:33333333, stall:0]
[4000x2000, YUV_420_888(35), min_dur:33333333, stall:0]
[3840x2160, YUV_420_888(35), min_dur:33333333, stall:0]
[3264x2448, YUV_420_888(35), min_dur:40000000, stall:0]
[3200x2400, YUV_420_888(35), min_dur:40000000, stall:0]
[2976x2976, YUV_420_888(35), min_dur:40000000, stall:0]
[2592x1944, YUV_420_888(35), min_dur:33333333, stall:0]
[2688x1512, YUV_420_888(35), min_dur:33333333, stall:0]
[2592x1458, YUV_420_888(35), min_dur:33333333, stall:0]
[2592x1296, YUV_420_888(35), min_dur:33333333, stall:0]
[2048x1536, YUV_420_888(35), min_dur:33333333, stall:0]
[1920x1080, YUV_420_888(35), min_dur:33333333, stall:0]
[1920x960, YUV_420_888(35), min_dur:33333333, stall:0]
[1600x1200, YUV_420_888(35), min_dur:33333333, stall:0]
[1440x1080, YUV_420_888(35), min_dur:33333333, stall:0]
[1280x960, YUV_420_888(35), min_dur:33333333, stall:0]
[1280x768, YUV_420_888(35), min_dur:33333333, stall:0]
[1280x720, YUV_420_888(35), min_dur:33333333, stall:0]
[1280x640, YUV_420_888(35), min_dur:33333333, stall:0]
[1200x1200, YUV_420_888(35), min_dur:33333333, stall:0]
[1024x768, YUV_420_888(35), min_dur:33333333, stall:0]
[800x600, YUV_420_888(35), min_dur:33333333, stall:0]
[864x480, YUV_420_888(35), min_dur:33333333, stall:0]
[800x480, YUV_420_888(35), min_dur:33333333, stall:0]
[720x480, YUV_420_888(35), min_dur:33333333, stall:0]
[640x480, YUV_420_888(35), min_dur:33333333, stall:0]
[640x360, YUV_420_888(35), min_dur:33333333, stall:0]
[480x640, YUV_420_888(35), min_dur:33333333, stall:0]
[480x360, YUV_420_888(35), min_dur:33333333, stall:0]
[480x320, YUV_420_888(35), min_dur:33333333, stall:0]
[352x288, YUV_420_888(35), min_dur:33333333, stall:0]
[320x240, YUV_420_888(35), min_dur:33333333, stall:0]
[240x320, YUV_420_888(35), min_dur:33333333, stall:0]
[4096x3072, RAW_PRIVATE(36), min_dur:40000000, stall:0]
[4096x3072, RAW10(37), min_dur:40000000, stall:0]

HighSpeedVideoConfigurations:

[1280x720, min_fps:30, max_fps:120], [1280x720, min_fps:120, max_fps:120], [720x480, min_fps:30, max_fps:120], [720x480, min_fps:120, max_fps:120], [480x320, min_fps:30, max_fps:120], [480x320, min_fps:120, max_fps:120], [480x360, min_fps:30, max_fps:120], [480x360, min_fps:120, max_fps:120]

InputsString:

4000x3000, PRIVATE(34),
4000x3000, YUV_420_888(35),

ValidOutputFormatsForInputString:

PRIVATE(34), out:JPEG(256), YUV_420_888(35)
YUV_420_888(35), out:JPEG(256), YUV_420_888(35)

android.sensor:

- availableTestPatternModes = [0,1,2,4]

- blackLevelPattern = BlackLevelPattern([64, 64], [64, 64])

- calibrationTransform1 = ColorSpaceTransform([129/128, 0/128, 0/128], [0/128, 128/128, 0/128], [0/128, 0/128, 133/128])

- calibrationTransform2 = ColorSpaceTransform([129/128, 0/128, 0/128], [0/128, 128/128, 0/128], [0/128, 0/128, 133/128])

- colorTransform1 = ColorSpaceTransform([85/128, -12/128, -17/128], [-128/128, 246/128, 3/128], [-47/128, 62/128, 71/128])

- colorTransform2 = ColorSpaceTransform([103/128, -1/128, -63/128], [-144/128, 306/128, -58/128], [-23/128, 42/128, 80/128])

- forwardMatrix1 = ColorSpaceTransform([90/128, 1/128, 32/128], [46/128, 66/128, 16/128], [14/128, -43/128, 135/128])

- forwardMatrix2 = ColorSpaceTransform([97/128, -24/128, 51/128], [47/128, 45/128, 36/128], [10/128, -67/128, 162/128])

- maxAnalogSensitivity = 1550

- orientation = 90

- referenceIlluminant1 = 21

- referenceIlluminant2 = 17

android.jpeg:

- availableThumbnailSizes = [0x0,176x144,240x144,256x144,240x160,256x154,240x240,320x240]

android.sync:

- maxLatency = SYNC_MAX_LATENCY_PER_FRAME_CONTROL

android.statistics.info:

- availableFaceDetectModes = [0,1]

- availableHotPixelMapModes = [false]

- availableLensShadingMapModes = [0,1]

- maxFaceCount = 10

android.lens.info:

- availableApertures = [2.2]

- availableFilterDensities = [0.0]

- availableFocalLengths = [3.81]

- availableOpticalStabilization = [0]

- focusDistanceCalibration = 2

- hyperfocalDistance = 0.37888965

- minimumFocusDistance = 10.0

android.lens:

- facing = LENS_FACING_BACK

android.request:

- availableCapabilities = [0,1,2,5,6,4,7,9,3]

- maxNumInputStreams = 1

- maxNumOutputProc = 3

- maxNumOutputProcStalling = 1

- maxNumOutputRaw = 1

- partialResultCount = 2

- pipelineMaxDepth = 8

android.colorCorrection:

- availableAberrationModes = [0]

android.control:

- aeAvailableAntibandingModes = [0,2,1,3]

- aeAvailableModes = [0,1,2,3,4]

- aeAvailableTargetFpsRanges = [[15, 15],[20, 20],[24, 24],[7, 25],[25, 25],[7, 30],[30, 30]]

- aeCompensationRange = [-12, 12]

- aeCompensationStep = 1/6

- aeLockAvailable = true

- afAvailableModes = [1,0,2,3,4]

- availableEffects = [0,1,2,3,4,5,6,7,8]

- availableModes = [0,1,2]

- availableSceneModes = [4,9,8,10,5,3,13,11,15,12,14,6,7,2,1]

- availableVideoStabilizationModes = [0,1]

- awbAvailableModes = [1,2,3,4,5,6,7,8,0]

- awbLockAvailable = true

- maxRegionsAe = 1

- maxRegionsAf = 1

- maxRegionsAwb = 0

- postRawSensitivityBoostRange = [100, 3199]

android.shading:

- availableModes = [0,1,2]

android.edge:

- availableEdgeModes = [0,1,2,3]

android.noiseReduction:

- availableNoiseReductionModes = [0,1,2,3,4]

android.sensor.info:

- activeArraySize = Rect(8, 8 - 4104, 3080)

- colorFilterArrangement = 3

- exposureTimeRange = [10823, 121561475]

- maxFrameDuration = 121640379

- physicalSize = 5.14x3.86

- pixelArraySize = 4112x3088

- preCorrectionActiveArraySize = Rect(8, 8 - 4104, 3080)

- sensitivityRange = [100, 1550]

- timestampSource = SOURCE_UNKNOWN

- whiteLevel = 1023

Camera 1 (FRONT)

android.flash.info:

- available = false

android.info:

- supportedHardwareLevel = HARDWARE_LEVEL_3

android.tonemap:

- availableToneMapModes = [0,1,2]

- maxCurvePoints = 64

android.hotPixel:

- availableHotPixelModes = [1,2]

android.scaler:

- availableMaxDigitalZoom = 4.0

- croppingType = SCALER_CROPPING_TYPE_CENTER_ONLY

- streamConfigurationMap =

OutputFormats:

[2592x1944, RAW_SENSOR(32), min_dur:33333333, stall:60000000]
[2592x1944, JPEG(256), min_dur:33333333, stall:116000000]
[2592x1458, JPEG(256), min_dur:33333333, stall:103000000]
[2592x1296, JPEG(256), min_dur:33333333, stall:99000000]
[2048x1536, JPEG(256), min_dur:33333333, stall:91000000]
[1920x1080, JPEG(256), min_dur:33333333, stall:80000000]
[1920x960, JPEG(256), min_dur:33333333, stall:77000000]
[1600x1200, JPEG(256), min_dur:33333333, stall:75000000]
[1440x1080, JPEG(256), min_dur:33333333, stall:68000000]
[1280x960, JPEG(256), min_dur:33333333, stall:67000000]
[1280x768, JPEG(256), min_dur:33333333, stall:66000000]
[1280x720, JPEG(256), min_dur:33333333, stall:65000000]
[1280x640, JPEG(256), min_dur:33333333, stall:61000000]
[1200x1200, JPEG(256), min_dur:33333333, stall:59000000]
[1024x768, JPEG(256), min_dur:33333333, stall:55000000]
[800x600, JPEG(256), min_dur:33333333, stall:49000000]
[864x480, JPEG(256), min_dur:33333333, stall:49000000]
[800x480, JPEG(256), min_dur:33333333, stall:48000000]
[720x480, JPEG(256), min_dur:33333333, stall:45000000]
[640x480, JPEG(256), min_dur:33333333, stall:35000000]
[640x360, JPEG(256), min_dur:33333333, stall:30000000]
[480x640, JPEG(256), min_dur:33333333, stall:25000000]
[480x360, JPEG(256), min_dur:33333333, stall:18000000]
[480x320, JPEG(256), min_dur:33333333, stall:779000000]
[352x288, JPEG(256), min_dur:33333333, stall:682000000]
[320x240, JPEG(256), min_dur:33333333, stall:506000000]
[240x320, JPEG(256), min_dur:33333333, stall:425000000]
[2592x1944, PRIVATE(34), min_dur:33333333, stall:0]
[2592x1458, PRIVATE(34), min_dur:33333333, stall:0]
[2592x1296, PRIVATE(34), min_dur:33333333, stall:0]
[2048x1536, PRIVATE(34), min_dur:33333333, stall:0]
[1920x1080, PRIVATE(34), min_dur:33333333, stall:0]
[1920x960, PRIVATE(34), min_dur:33333333, stall:0]
[1600x1200, PRIVATE(34), min_dur:33333333, stall:0]
[1440x1080, PRIVATE(34), min_dur:33333333, stall:0]
[1280x960, PRIVATE(34), min_dur:33333333, stall:0]
[1280x768, PRIVATE(34), min_dur:33333333, stall:0]
[1280x720, PRIVATE(34), min_dur:33333333, stall:0]
[1280x640, PRIVATE(34), min_dur:33333333, stall:0]
[1200x1200, PRIVATE(34), min_dur:33333333, stall:0]
[1024x768, PRIVATE(34), min_dur:33333333, stall:0]
[800x600, PRIVATE(34), min_dur:33333333, stall:0]
[864x480, PRIVATE(34), min_dur:33333333, stall:0]
[800x480, PRIVATE(34), min_dur:33333333, stall:0]
[720x480, PRIVATE(34), min_dur:33333333, stall:0]
[640x480, PRIVATE(34), min_dur:33333333, stall:0]
[640x360, PRIVATE(34), min_dur:33333333, stall:0]
[480x640, PRIVATE(34), min_dur:33333333, stall:0]
[480x360, PRIVATE(34), min_dur:33333333, stall:0]
[480x320, PRIVATE(34), min_dur:33333333, stall:0]
[352x288, PRIVATE(34), min_dur:33333333, stall:0]
[320x240, PRIVATE(34), min_dur:33333333, stall:0]
[240x320, PRIVATE(34), min_dur:33333333, stall:0]
[2592x1944, YUV_420_888(35), min_dur:33333333, stall:0]
[2592x1458, YUV_420_888(35), min_dur:33333333, stall:0]
[2592x1296, YUV_420_888(35), min_dur:33333333, stall:0]
[2048x1536, YUV_420_888(35), min_dur:33333333, stall:0]
[1920x1080, YUV_420_888(35), min_dur:33333333, stall:0]
[1920x960, YUV_420_888(35), min_dur:33333333, stall:0]
[1600x1200, YUV_420_888(35), min_dur:33333333, stall:0]
[1440x1080, YUV_420_888(35), min_dur:33333333, stall:0]
[1280x960, YUV_420_888(35), min_dur:33333333, stall:0]
[1280x768, YUV_420_888(35), min_dur:33333333, stall:0]
[1280x720, YUV_420_888(35), min_dur:33333333, stall:0]
[1280x640, YUV_420_888(35), min_dur:33333333, stall:0]
[1200x1200, YUV_420_888(35), min_dur:33333333, stall:0]
[1024x768, YUV_420_888(35), min_dur:33333333, stall:0]
[800x600, YUV_420_888(35), min_dur:33333333, stall:0]
[864x480, YUV_420_888(35), min_dur:33333333, stall:0]
[800x480, YUV_420_888(35), min_dur:33333333, stall:0]
[720x480, YUV_420_888(35), min_dur:33333333, stall:0]
[640x480, YUV_420_888(35), min_dur:33333333, stall:0]
[640x360, YUV_420_888(35), min_dur:33333333, stall:0]
[480x640, YUV_420_888(35), min_dur:33333333, stall:0]
[480x360, YUV_420_888(35), min_dur:33333333, stall:0]
[480x320, YUV_420_888(35), min_dur:33333333, stall:0]
[352x288, YUV_420_888(35), min_dur:33333333, stall:0]
[320x240, YUV_420_888(35), min_dur:33333333, stall:0]
[240x320, YUV_420_888(35), min_dur:33333333, stall:0]
[2592x1944, RAW_PRIVATE(36), min_dur:33333333, stall:0]
[2592x1944, RAW10(37), min_dur:33333333, stall:0]

HighSpeedVideoConfigurations:

[720x480, min_fps:30, max_fps:120], [720x480, min_fps:120, max_fps:120], [480x320, min_fps:30, max_fps:120], [480x320, min_fps:120, max_fps:120], [480x360, min_fps:30, max_fps:120], [480x360, min_fps:120, max_fps:120]

InputsString:

2592x1944, PRIVATE(34),
2592x1944, YUV_420_888(35),

ValidOutputFormatsForInputString:

PRIVATE(34), out:JPEG(256), YUV_420_888(35)
YUV_420_888(35), out:JPEG(256), YUV_420_888(35)

android.sensor:

- availableTestPatternModes = [0,1,2,3]

- blackLevelPattern = BlackLevelPattern([64, 64], [64, 64])

- calibrationTransform1 = ColorSpaceTransform([0/128, 0/128, 0/128], [0/128, 128/128, 0/128], [0/128, 0/128, 0/128])

- calibrationTransform2 = ColorSpaceTransform([0/128, 0/128, 0/128], [0/128, 128/128, 0/128], [0/128, 0/128, 0/128])

- colorTransform1 = ColorSpaceTransform([59/128, 18/128, -13/128], [-85/128, 195/128, 13/128], [-31/128, 54/128, 59/128])

- colorTransform2 = ColorSpaceTransform([123/128, -15/128, -67/128], [-60/128, 205/128, -33/128], [-2/128, 29/128, 72/128])

- forwardMatrix1 = ColorSpaceTransform([124/128, -38/128, 37/128], [53/128, 71/128, 4/128], [12/128, -64/128, 157/128])

- forwardMatrix2 = ColorSpaceTransform([83/128, -20/128, 61/128], [18/128, 78/128, 31/128], [-16/128, -77/128, 199/128])

- maxAnalogSensitivity = 1600

- orientation = 270

- referenceIlluminant1 = 21

- referenceIlluminant2 = 17

android.jpeg:

- availableThumbnailSizes = [0x0,176x144,240x144,256x144,240x160,256x154,240x240,320x240]

android.sync:

- maxLatency = SYNC_MAX_LATENCY_PER_FRAME_CONTROL

android.statistics.info:

- availableFaceDetectModes = [0,1]

- availableHotPixelMapModes = [false]

- availableLensShadingMapModes = [0,1]

- maxFaceCount = 10

android.lens.info:

- availableApertures = [2.0]

- availableFilterDensities = [0.0]

- availableFocalLengths = [2.639]

- availableOpticalStabilization = [0]

- focusDistanceCalibration = 0

- hyperfocalDistance = 0.64327884

- minimumFocusDistance = 0.0

android.lens:

- facing = LENS_FACING_FRONT

android.request:

- availableCapabilities = [0,1,2,5,6,4,7,9,3]

- maxNumInputStreams = 1

- maxNumOutputProc = 3

- maxNumOutputProcStalling = 1

- maxNumOutputRaw = 1

- partialResultCount = 2

- pipelineMaxDepth = 8

android.colorCorrection:

- availableAberrationModes = [0]

android.control:

- aeAvailableAntibandingModes = [0,2,1,3]

- aeAvailableModes = [0,1]

- aeAvailableTargetFpsRanges = [[15, 15],[20, 20],[24, 24],[7, 30],[30, 30]]

- aeCompensationRange = [-12, 12]

- aeCompensationStep = 1/6

- aeLockAvailable = true

- afAvailableModes = [0]

- availableEffects = [0,1,2,3,4,5,6,7,8]

- availableModes = [0,1,2]

- availableSceneModes = [4,9,8,10,5,3,13,11,15,12,14,6,7,2,1]

- availableVideoStabilizationModes = [0]

- awbAvailableModes = [1,2,3,4,5,6,7,8,0]

- awbLockAvailable = true

- maxRegionsAe = 1

- maxRegionsAf = 0

- maxRegionsAwb = 0

- postRawSensitivityBoostRange = [100, 3199]

android.shading:

- availableModes = [0,1,2]

android.edge:

- availableEdgeModes = [0,1,2,3]

android.noiseReduction:

- availableNoiseReductionModes = [0,1,2,3,4]

android.sensor.info:

- activeArraySize = Rect(8, 8 - 2600, 1952)

- colorFilterArrangement = 1

- exposureTimeRange = [16938, 270733792]

- maxFrameDuration = 270832408

- physicalSize = 2.92096x2.1952

- pixelArraySize = 2608x1960

- preCorrectionActiveArraySize = Rect(8, 8 - 2600, 1952)

- sensitivityRange = [100, 1600]

- timestampSource = SOURCE_UNKNOWN

- whiteLevel = 1023