Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More granular Google Camera keyword support #396

Open
osm0sis opened this issue Dec 9, 2016 · 21 comments
Open

More granular Google Camera keyword support #396

osm0sis opened this issue Dec 9, 2016 · 21 comments

Comments

@osm0sis
Copy link
Member

osm0sis commented Dec 9, 2016

Noted here: http://forum.xda-developers.com/showpost.php?p=69991796&postcount=120

Camera 4.x is getting installed on hammerhead with Nougat but these don't have working HDR(+) on this device due to deprecated drivers.

Another issue is 3.2.x will attempt to update via Play Store to 4.2.x.

@mfonville wondered if downgrading the related framework jar(s) would limit that, and I wondered if perhaps custom ROMs might need to add something to the build.prop that was missing -perhaps a value from Marshmallow, to restrict that.

N5 CM14.1 build.prop:

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=NMF26O
ro.build.display.id=cm_hammerhead-userdebug 7.1.1 NMF26O 5cdff541c5 test-keys
ro.build.version.incremental=5cdff541c5
ro.build.version.sdk=25
ro.build.version.preview_sdk=0
ro.build.version.codename=REL
ro.build.version.all_codenames=REL
ro.build.version.release=7.1.1
ro.build.version.security_patch=2016-12-05
ro.build.version.base_os=
ro.build.date=Wed Dec  7 18:30:58 PST 2016
ro.build.date.utc=1481164258
ro.build.type=userdebug
ro.build.user=jenkins
ro.build.host=cyanogenmod
ro.build.tags=test-keys
ro.build.flavor=cm_hammerhead-userdebug
ro.product.brand=google
ro.product.name=hammerhead
ro.product.board=hammerhead
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.cpu.abilist=armeabi-v7a,armeabi
ro.product.cpu.abilist32=armeabi-v7a,armeabi
ro.product.cpu.abilist64=
ro.product.manufacturer=LGE
ro.product.locale=en-US
ro.wifi.channels=
ro.board.platform=msm8974
# ro.build.product is obsolete; use ro.product.device
ro.build.product=hammerhead
ro.product.model=Nexus 5
ro.product.device=hammerhead
# Do not try to parse description, fingerprint, or thumbprint
ro.build.description=hammerhead-user 6.0.1 M4B30X 3237893 release-keys
ro.build.fingerprint=google/hammerhead/hammerhead:6.0.1/M4B30X/3237893:user/release-keys
ro.build.characteristics=nosdcard
ro.cm.device=hammerhead
# end build properties

#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.error.receiver.system.apps=org.cyanogenmod.bugreport
ro.com.google.clientidbase=android-google
keyguard.no_require_sim=true
ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html
ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html
ro.com.android.wifi-watchlist=GoogleGuest
ro.setupwizard.enterprise_mode=1
ro.com.android.dateformat=MM-dd-yyyy
ro.com.android.dataroaming=false
ro.build.selinux=1
ro.config.notification_sound=Argon.ogg
ro.config.alarm_alert=Hassium.ogg
persist.sys.dun.override=0
ro.cm.build.version.plat.sdk=7
ro.cm.build.version.plat.rev=0
media.sf.omx-plugin=libffmpeg_omx.so
media.sf.extractor-plugin=libffmpeg_extractor.so
ro.storage_manager.enabled=true
persist.sys.root_access=0
ro.cm.version=14.1-20161208-NIGHTLY-hammerhead
ro.cm.releasetype=NIGHTLY
ro.modversion=14.1-20161208-NIGHTLY-hammerhead
ro.cmlegal.url=https://cyngn.com/legal/privacy-policy
ro.cm.display.version=14.1-20161208-NIGHTLY-hammerhead
ro.config.ringtone=Orion.ogg
ro.carrier=unknown
ro.opengles.version=196608
ro.sf.lcd_density=480
persist.hwc.mdpcomp.enable=true
ro.hwui.texture_cache_size=72
ro.hwui.layer_cache_size=48
ro.hwui.r_buffer_cache_size=8
ro.hwui.path_cache_size=32
ro.hwui.gradient_cache_size=1
ro.hwui.drop_shadow_cache_size=6
ro.hwui.texture_cache_flushrate=0.4
ro.hwui.text_small_cache_width=1024
ro.hwui.text_small_cache_height=1024
ro.hwui.text_large_cache_width=2048
ro.hwui.text_large_cache_height=1024
drm.service.enabled=true
ro.qti.sensors.max_geomag_rotv=60
ro.qti.sensors.max_gyro_rate=200
ro.qti.sensors.max_accel_rate=200
ro.qti.sensors.max_grav=200
ro.qti.sensors.max_rotvec=200
ro.qti.sensors.max_orient=200
ro.qti.sensors.max_linacc=200
ro.qti.sensors.max_gamerv_rate=200
ro.qti.sensors.smd=true
ro.qti.sensors.game_rv=true
ro.qti.sensors.georv=true
ro.qti.sensors.smgr_mag_cal_en=true
ro.qti.sensors.step_detector=true
ro.qti.sensors.step_counter=true
ro.qti.sensors.tap=false
ro.qti.sensors.facing=false
ro.qti.sensors.tilt=false
ro.qti.sensors.amd=false
ro.qti.sensors.rmd=false
ro.qti.sensors.vmd=false
ro.qti.sensors.pedometer=false
ro.qti.sensors.pam=false
ro.qti.sdk.sensors.gestures=false
persist.debug.sensors.hal=w
debug.qualcomm.sns.daemon=w
debug.qualcomm.sns.libsensor1=w
ro.telephony.call_ring.multiple=0
wifi.interface=wlan0
wifi.supplicant_scan_interval=15
media.aac_51_output_enabled=true
persist.radio.apm_sim_not_pwdn=1
ro.ril.force_eri_from_xml=true
ro.telephony.default_network=10
telephony.lteOnCdmaDevice=1
persist.radio.mode_pref_nv10=1
persist.radio.data_no_toggle=1
persist.audio.handset.mic.type=digital
persist.audio.dualmic.config=endfire
persist.audio.fluence.voicecall=true
persist.audio.fluence.voicecomm=true
persist.audio.fluence.voicerec=false
persist.audio.fluence.speaker=false
ro.config.vc_call_vol_steps=6
persist.radio.custom_ecc=1
persist.radio.always_send_plmn=true
net.tethering.noprovisioning=true
ro.input.noresample=1
af.fast_track_multiplier=1
dalvik.vm.dex2oat-swap=false
dalvik.vm.heapstartsize=8m
dalvik.vm.heapgrowthlimit=192m
dalvik.vm.heapsize=512m
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapminfree=512k
dalvik.vm.heapmaxfree=8m
persist.sys.dalvik.vm.lib.2=libart.so
dalvik.vm.isa.arm.variant=krait
dalvik.vm.isa.arm.features=default
dalvik.vm.lockprof.threshold=500
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
ro.expect.recovery_id=0xa6eadbe1c89ff6e66a255c40bc63dbdebf611a61000000000000000000000000

and getprop values:

[af.fast_track_multiplier]: [1]
[camera.disable_zsl_mode]: [1]
[dalvik.vm.appimageformat]: [lz4]
[dalvik.vm.dex2oat-Xms]: [64m]
[dalvik.vm.dex2oat-Xmx]: [512m]
[dalvik.vm.dex2oat-swap]: [false]
[dalvik.vm.heapgrowthlimit]: [192m]
[dalvik.vm.heapmaxfree]: [8m]
[dalvik.vm.heapminfree]: [2m]
[dalvik.vm.heapsize]: [512m]
[dalvik.vm.heapstartsize]: [8m]
[dalvik.vm.heaptargetutilization]: [0.75]
[dalvik.vm.image-dex2oat-Xms]: [64m]
[dalvik.vm.image-dex2oat-Xmx]: [64m]
[dalvik.vm.isa.arm.features]: [default]
[dalvik.vm.isa.arm.variant]: [krait]
[dalvik.vm.lockprof.threshold]: [500]
[dalvik.vm.stack-trace-file]: [/data/anr/traces.txt]
[dalvik.vm.usejit]: [true]
[dalvik.vm.usejitprofiles]: [true]
[debug.atrace.tags.enableflags]: [0]
[debug.force_rtl]: [0]
[debug.qualcomm.sns.daemon]: [w]
[debug.qualcomm.sns.libsensor1]: [w]
[dev.bootcomplete]: [1]
[drm.service.enabled]: [true]
[fku.profiles]: [1]
[gsm.current.phone-type]: [1]
[gsm.defaultpdpcontext.active]: [false]
[gsm.network.type]: [LTE]
[gsm.nitz.time]: [1481282834019]
[gsm.operator.alpha]: [Eastlink]
[gsm.operator.iso-country]: [ca]
[gsm.operator.isroaming]: [false]
[gsm.operator.numeric]: [302270]
[gsm.sim.operator.alpha]: [Eastlink]
[gsm.sim.operator.iso-country]: [ca]
[gsm.sim.operator.numeric]: [302270]
[gsm.sim.state]: [READY]
[gsm.version.baseband]: [M8974A-2.0.50.2.30]
[gsm.version.ril-impl]: [Qualcomm RIL 1.0]
[init.svc.adbd]: [stopped]
[init.svc.audioserver]: [running]
[init.svc.bdAddrLoader]: [stopped]
[init.svc.bootanim]: [stopped]
[init.svc.bridgemgrd]: [running]
[init.svc.console]: [running]
[init.svc.debuggerd]: [running]
[init.svc.drm]: [running]
[init.svc.gatekeeperd]: [running]
[init.svc.healthd]: [running]
[init.svc.installd]: [running]
[init.svc.irsc_util]: [stopped]
[init.svc.keystore]: [running]
[init.svc.lmkd]: [running]
[init.svc.logd]: [running]
[init.svc.logd-reinit]: [stopped]
[init.svc.media]: [running]
[init.svc.mediacodec]: [running]
[init.svc.mediadrm]: [running]
[init.svc.mediaextractor]: [running]
[init.svc.netd]: [running]
[init.svc.netmgrd]: [running]
[init.svc.p2p_supplicant]: [running]
[init.svc.perfprofd]: [running]
[init.svc.qcamerasvr]: [running]
[init.svc.qmuxd]: [running]
[init.svc.qseecomd]: [running]
[init.svc.ril-daemon]: [running]
[init.svc.rmt_storage]: [running]
[init.svc.sensors]: [running]
[init.svc.servicemanager]: [running]
[init.svc.ssr_ramdump]: [running]
[init.svc.su_daemon]: [stopped]
[init.svc.surfaceflinger]: [running]
[init.svc.sysinit]: [stopped]
[init.svc.time_daemon]: [running]
[init.svc.ueventd]: [running]
[init.svc.vold]: [running]
[init.svc.zygote]: [running]
[keyguard.no_require_sim]: [true]
[log.tag.WifiHAL]: [D]
[media.aac_51_output_enabled]: [true]
[media.sf.extractor-plugin]: [libffmpeg_extractor.so]
[media.sf.omx-plugin]: [libffmpeg_omx.so]
[media.stagefright.legacyencoder]: [true]
[media.stagefright.less-secure]: [true]
[net.bt.name]: [Android]
[net.change]: [net.dns2]
[net.dns1]: [24.222.0.96]
[net.dns2]: [24.222.0.97]
[net.hostname]: [android-7853daf14a6728b5]
[net.qtaguid_enabled]: [1]
[net.rmnet0.dns1]: [24.222.0.96]
[net.rmnet0.dns2]: [24.222.0.97]
[net.rmnet0.gw]: [100.70.70.45]
[net.tcp.default_init_rwnd]: [60]
[net.tcp.delack.default]: [1]
[net.tcp.delack.lte]: [8]
[net.tcp.delack.wifi]: [20]
[net.tcp.usercfg.default]: [0]
[net.tcp.usercfg.lte]: [1]
[net.tcp.usercfg.wifi]: [1]
[net.tethering.noprovisioning]: [true]
[persist.audio.dualmic.config]: [endfire]
[persist.audio.fluence.speaker]: [false]
[persist.audio.fluence.voicecall]: [true]
[persist.audio.fluence.voicecomm]: [true]
[persist.audio.fluence.voicerec]: [false]
[persist.audio.handset.mic.type]: [digital]
[persist.debug.sensors.hal]: [w]
[persist.hwc.mdpcomp.enable]: [true]
[persist.radio.adb_log_on]: [0]
[persist.radio.always_send_plmn]: [true]
[persist.radio.apm_sim_not_pwdn]: [1]
[persist.radio.custom_ecc]: [1]
[persist.radio.data_no_toggle]: [1]
[persist.radio.eons.enabled]: [false]
[persist.radio.mode_pref_nv10]: [1]
[persist.radio.nitz_lons_0_0]: [EASTLINK WIRELESS ]
[persist.radio.nitz_lons_1_0]: []
[persist.radio.nitz_lons_2_0]: []
[persist.radio.nitz_lons_3_0]: []
[persist.radio.nitz_plmn_0]: [302 270]
[persist.radio.nitz_sons_0_0]: [EASTLINK]
[persist.radio.nitz_sons_1_0]: []
[persist.radio.nitz_sons_2_0]: []
[persist.radio.nitz_sons_3_0]: []
[persist.radio.snapshot_enabled]: [1]
[persist.radio.snapshot_timer]: [2]
[persist.radio.use_cc_names]: [true]
[persist.service.bdroid.bdaddr]: [CC:FA:00:12:E3:E1]
[persist.sys.dalvik.vm.lib.2]: [libart.so]
[persist.sys.dun.override]: [0]
[persist.sys.gps.lpp]: []
[persist.sys.locale]: [en-US]
[persist.sys.profiler_ms]: [0]
[persist.sys.root_access]: [0]
[persist.sys.timezone]: [America/Halifax]
[persist.sys.ui.hw]: [true]
[persist.sys.usb.config]: [none]
[persist.sys.webview.vmsize]: [104857600]
[pm.dexopt.ab-ota]: [speed-profile]
[pm.dexopt.bg-dexopt]: [speed-profile]
[pm.dexopt.boot]: [verify-profile]
[pm.dexopt.core-app]: [speed]
[pm.dexopt.first-boot]: [interpret-only]
[pm.dexopt.forced-dexopt]: [speed]
[pm.dexopt.install]: [interpret-only]
[pm.dexopt.nsys-library]: [speed]
[pm.dexopt.shared-apk]: [speed]
[ril.ecclist]: [911,112,*911,#911]
[rild.libpath]: [/system/lib/libril-qc-qmi-1.so]
[ro.allow.mock.location]: [0]
[ro.baseband]: [msm]
[ro.board.platform]: [msm8974]
[ro.boot.baseband]: [msm]
[ro.boot.bootdevice]: [msm_sdcc.1]
[ro.boot.bootloader]: [HHZ20h]
[ro.boot.emmc]: [true]
[ro.boot.hardware]: [hammerhead]
[ro.boot.hardware.ddr]: [hynix]
[ro.boot.hardware.display]: [orise]
[ro.boot.hardware.sku]: [D820]
[ro.boot.revision]: [11]
[ro.boot.serialno]: [04ad326d002d39ed]
[ro.bootimage.build.date]: [Wed Dec 7 18:30:58 PST 2016]
[ro.bootimage.build.date.utc]: [1481164258]
[ro.bootimage.build.fingerprint]: [google/cm_hammerhead/hammerhead:7.1.1/NMF26O/5cdff541c5:userdebug/test-keys]
[ro.bootloader]: [HHZ20h]
[ro.bootmode]: [unknown]
[ro.build.characteristics]: [nosdcard]
[ro.build.date]: [Wed Dec  7 18:30:58 PST 2016]
[ro.build.date.utc]: [1481164258]
[ro.build.description]: [hammerhead-user 6.0.1 M4B30X 3237893 release-keys]
[ro.build.display.id]: [cm_hammerhead-userdebug 7.1.1 NMF26O 5cdff541c5 test-keys]
[ro.build.fingerprint]: [google/hammerhead/hammerhead:6.0.1/M4B30X/3237893:user/release-keys]
[ro.build.flavor]: [cm_hammerhead-userdebug]
[ro.build.host]: [cyanogenmod]
[ro.build.id]: [NMF26O]
[ro.build.product]: [hammerhead]
[ro.build.selinux]: [1]
[ro.build.tags]: [test-keys]
[ro.build.type]: [userdebug]
[ro.build.user]: [jenkins]
[ro.build.version.all_codenames]: [REL]
[ro.build.version.base_os]: []
[ro.build.version.codename]: [REL]
[ro.build.version.incremental]: [5cdff541c5]
[ro.build.version.preview_sdk]: [0]
[ro.build.version.release]: [7.1.1]
[ro.build.version.sdk]: [25]
[ro.build.version.security_patch]: [2016-12-05]
[ro.carrier]: [unknown]
[ro.cm.build.version.plat.rev]: [0]
[ro.cm.build.version.plat.sdk]: [7]
[ro.cm.device]: [hammerhead]
[ro.cm.display.version]: [14.1-20161208-NIGHTLY-hammerhead]
[ro.cm.releasetype]: [NIGHTLY]
[ro.cm.version]: [14.1-20161208-NIGHTLY-hammerhead]
[ro.cmlegal.url]: [https://cyngn.com/legal/privacy-policy]
[ro.com.android.dataroaming]: [false]
[ro.com.android.dateformat]: [MM-dd-yyyy]
[ro.com.android.wifi-watchlist]: [GoogleGuest]
[ro.com.google.clientidbase]: [android-google]
[ro.config.alarm_alert]: [Hassium.ogg]
[ro.config.notification_sound]: [Argon.ogg]
[ro.config.ringtone]: [Orion.ogg]
[ro.config.vc_call_vol_steps]: [6]
[ro.crypto.state]: [unencrypted]
[ro.dalvik.vm.native.bridge]: [0]
[ro.debuggable]: [1]
[ro.device.cache_dir]: [/cache]
[ro.error.receiver.system.apps]: [org.cyanogenmod.bugreport]
[ro.expect.recovery_id]: [0xa6eadbe1c89ff6e66a255c40bc63dbdebf611a61000000000000000000000000]
[ro.hardware]: [hammerhead]
[ro.hwui.drop_shadow_cache_size]: [6]
[ro.hwui.gradient_cache_size]: [1]
[ro.hwui.layer_cache_size]: [48]
[ro.hwui.path_cache_size]: [32]
[ro.hwui.r_buffer_cache_size]: [8]
[ro.hwui.text_large_cache_height]: [1024]
[ro.hwui.text_large_cache_width]: [2048]
[ro.hwui.text_small_cache_height]: [1024]
[ro.hwui.text_small_cache_width]: [1024]
[ro.hwui.texture_cache_flushrate]: [0.4]
[ro.hwui.texture_cache_size]: [72]
[ro.input.noresample]: [1]
[ro.modversion]: [14.1-20161208-NIGHTLY-hammerhead]
[ro.opengles.version]: [196608]
[ro.product.board]: [hammerhead]
[ro.product.brand]: [google]
[ro.product.cpu.abi]: [armeabi-v7a]
[ro.product.cpu.abi2]: [armeabi]
[ro.product.cpu.abilist]: [armeabi-v7a,armeabi]
[ro.product.cpu.abilist32]: [armeabi-v7a,armeabi]
[ro.product.cpu.abilist64]: []
[ro.product.device]: [hammerhead]
[ro.product.locale]: [en-US]
[ro.product.manufacturer]: [LGE]
[ro.product.model]: [Nexus 5]
[ro.product.name]: [hammerhead]
[ro.qti.sdk.sensors.gestures]: [false]
[ro.qti.sensors.amd]: [false]
[ro.qti.sensors.facing]: [false]
[ro.qti.sensors.game_rv]: [true]
[ro.qti.sensors.georv]: [true]
[ro.qti.sensors.max_accel_rate]: [200]
[ro.qti.sensors.max_gamerv_rate]: [200]
[ro.qti.sensors.max_geomag_rotv]: [60]
[ro.qti.sensors.max_grav]: [200]
[ro.qti.sensors.max_gyro_rate]: [200]
[ro.qti.sensors.max_linacc]: [200]
[ro.qti.sensors.max_orient]: [200]
[ro.qti.sensors.max_rotvec]: [200]
[ro.qti.sensors.pam]: [false]
[ro.qti.sensors.pedometer]: [false]
[ro.qti.sensors.rmd]: [false]
[ro.qti.sensors.smd]: [true]
[ro.qti.sensors.smgr_mag_cal_en]: [true]
[ro.qti.sensors.step_counter]: [true]
[ro.qti.sensors.step_detector]: [true]
[ro.qti.sensors.tap]: [false]
[ro.qti.sensors.tilt]: [false]
[ro.qti.sensors.vmd]: [false]
[ro.recovery_id]: [0xfcbe30e2dd9f2a624db8547ea5c6b84b58ffa2f5000000000000000000000000]
[ro.revision]: [11]
[ro.ril.force_eri_from_xml]: [true]
[ro.ril.svdo]: [false]
[ro.ril.svlte1x]: [false]
[ro.runtime.firstboot]: [1481272581444]
[ro.secure]: [1]
[ro.serialno]: [04ad326d002d39ed]
[ro.setupwizard.enterprise_mode]: [1]
[ro.sf.lcd_density]: [480]
[ro.storage_manager.enabled]: [true]
[ro.telephony.call_ring.multiple]: [0]
[ro.telephony.default_network]: [10]
[ro.url.legal]: [http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html]
[ro.url.legal.android_privacy]: [http://www.google.com/intl/%s/mobile/android/basic/privacy.html]
[ro.wifi.channels]: []
[ro.zygote]: [zygote32]
[security.perf_harden]: [1]
[selinux.reload_policy]: [1]
[service.bootanim.exit]: [1]
[sys.boot_completed]: [1]
[sys.cm_settings_secure_version]: [1]
[sys.sysctl.extra_free_kbytes]: [24300]
[sys.sysctl.tcp_def_init_rwnd]: [60]
[sys.usb.config]: [mtp]
[sys.usb.configfs]: [0]
[sys.usb.state]: [mtp]
[telephony.lteOnCdmaDevice]: [1]
[vold.has_adoptable]: [0]
[vold.post_fs_data_done]: [1]
[wifi.interface]: [wlan0]
[wifi.supplicant_scan_interval]: [15]
[wlan.driver.status]: [ok]
@KreAch3R
Copy link
Contributor

Interesting, I would also like to work on this.

Why do you think that a build.prop value will help with this? Is a Nexus 5 running marshmallow limited to 3.2 Google Camera from the Play Store? I haven't tested it.

@osm0sis
Copy link
Member Author

osm0sis commented Dec 15, 2016

No basis for that idea, just a hope, and thinking-out-loud/spitballing between @mfonville and myself when we chatted about the issue.

Marshmallow hammerhead is definitely limited to 3.2.x, but I'm hopeful that Android version is not the only limiting factor and we can find a way to have it installed to system on Nougat and not have it try to update itself to 4.x via Play Store.

@KreAch3R
Copy link
Contributor

If marshmallow is limited to 3.2.x, then we can test if it's the version. Can you modify the build prop and check if an update comes?

I doubt it too that they only check the prop. The problem is finding out what else they check. I thought about permissions in frameworks/native and checked them, but it seems they are the same as in marshmallow branches. Do opengapps add such permissions? Maybe we add something we shouldn't, I didn't check that.

@osm0sis
Copy link
Member Author

osm0sis commented Dec 23, 2016

Unfortunately swapping out the Marshmallow build.prop for that of Nougat results in a broken device (constant Google Play services, etc., crashes), so unfortunately it seems it's not as easy as that to test.

For comparison I've added the stock values below.

N5 Stock build.prop:

# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=M4B30Z
ro.build.display.id=M4B30Z
ro.build.version.incremental=3437181
ro.build.version.sdk=23
ro.build.version.preview_sdk=0
ro.build.version.codename=REL
ro.build.version.all_codenames=REL
ro.build.version.release=6.0.1
ro.build.version.security_patch=2016-10-05
ro.build.version.base_os=
ro.build.date=Thu Nov  3 20:03:42 UTC 2016
ro.build.date.utc=1478203422
ro.build.type=user
ro.build.user=android-build
ro.build.host=wpdu6.hot.corp.google.com
ro.build.tags=release-keys
ro.build.flavor=hammerhead-user
ro.product.model=Nexus 5
ro.product.brand=google
ro.product.name=hammerhead
ro.product.device=hammerhead
ro.product.board=hammerhead
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.cpu.abilist=armeabi-v7a,armeabi
ro.product.cpu.abilist32=armeabi-v7a,armeabi
ro.product.cpu.abilist64=
ro.product.manufacturer=LGE
ro.product.locale=en-US
ro.wifi.channels=
ro.board.platform=msm8974
# ro.build.product is obsolete; use ro.product.device
ro.build.product=hammerhead
# Do not try to parse description, fingerprint, or thumbprint
ro.build.description=hammerhead-user 6.0.1 M4B30Z 3437181 release-keys
ro.build.fingerprint=google/hammerhead/hammerhead:6.0.1/M4B30Z/3437181:user/release-keys
ro.build.characteristics=nosdcard
# end build properties

#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.config.ringtone=Titania.ogg
ro.config.notification_sound=Tethys.ogg
ro.config.alarm_alert=Oxygen.ogg
ro.com.android.dataroaming=false
ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html
ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html
ro.com.google.clientidbase=android-google
ro.carrier=unknown
ro.com.android.wifi-watchlist=GoogleGuest
ro.error.receiver.system.apps=com.google.android.gms
ro.setupwizard.enterprise_mode=1
ro.opengles.version=196608
ro.sf.lcd_density=480
persist.hwc.mdpcomp.enable=true
ro.hwui.texture_cache_size=72
ro.hwui.layer_cache_size=48
ro.hwui.r_buffer_cache_size=8
ro.hwui.path_cache_size=32
ro.hwui.gradient_cache_size=1
ro.hwui.drop_shadow_cache_size=6
ro.hwui.texture_cache_flushrate=0.4
ro.hwui.text_small_cache_width=1024
ro.hwui.text_small_cache_height=1024
ro.hwui.text_large_cache_width=2048
ro.hwui.text_large_cache_height=1024
drm.service.enabled=true
ro.qti.sensors.max_geomag_rotv=60
ro.qti.sensors.max_gyro_rate=200
ro.qti.sensors.max_accel_rate=200
ro.qti.sensors.max_grav=200
ro.qti.sensors.max_rotvec=200
ro.qti.sensors.max_orient=200
ro.qti.sensors.max_linacc=200
ro.qti.sensors.max_gamerv_rate=200
ro.qti.sensors.smd=true
ro.qti.sensors.game_rv=true
ro.qti.sensors.georv=true
ro.qti.sensors.smgr_mag_cal_en=true
ro.qti.sensors.step_detector=true
ro.qti.sensors.step_counter=true
persist.debug.sensors.hal=w
debug.qualcomm.sns.daemon=w
debug.qualcomm.sns.libsensor1=w
ro.telephony.call_ring.multiple=0
wifi.interface=wlan0
wifi.supplicant_scan_interval=15
media.aac_51_output_enabled=true
persist.radio.apm_sim_not_pwdn=1
ro.telephony.default_network=10
telephony.lteOnCdmaDevice=1
persist.radio.mode_pref_nv10=1
persist.radio.data_no_toggle=1
persist.audio.handset.mic.type=digital
persist.audio.dualmic.config=endfire
persist.audio.fluence.voicecall=true
persist.audio.fluence.voicecomm=true
persist.audio.fluence.voicerec=false
persist.audio.fluence.speaker=false
ro.config.vc_call_vol_steps=6
persist.radio.custom_ecc=1
persist.radio.always_send_plmn=true
ro.input.noresample=1
af.fast_track_multiplier=1
dalvik.vm.dex2oat-swap=false
dalvik.vm.heapstartsize=8m
dalvik.vm.heapgrowthlimit=192m
dalvik.vm.heapsize=512m
dalvik.vm.heaptargetutilization=0.75
dalvik.vm.heapminfree=512k
dalvik.vm.heapmaxfree=8m
keyguard.no_require_sim=true
ro.facelock.black_timeout=400
ro.facelock.det_timeout=1500
ro.facelock.rec_timeout=2500
ro.facelock.lively_timeout=2500
ro.facelock.est_max_time=600
ro.facelock.use_intro_anim=false
persist.sys.dalvik.vm.lib.2=libart
dalvik.vm.isa.arm.variant=krait
dalvik.vm.isa.arm.features=default
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
ro.build.expect.bootloader=HHZ20h
ro.build.expect.baseband=M8974A-2.0.50.2.30
ro.expect.recovery_id=0x49019e62d7e04a2ba9c94c0604e2f2fdf3871dfd000000000000000000000000

and getprop values:

[af.fast_track_multiplier]: [1]
[camera.disable_zsl_mode]: [1]
[dalvik.vm.dex2oat-Xms]: [64m]
[dalvik.vm.dex2oat-Xmx]: [512m]
[dalvik.vm.dex2oat-swap]: [false]
[dalvik.vm.heapgrowthlimit]: [192m]
[dalvik.vm.heapmaxfree]: [8m]
[dalvik.vm.heapminfree]: [512k]
[dalvik.vm.heapsize]: [512m]
[dalvik.vm.heapstartsize]: [8m]
[dalvik.vm.heaptargetutilization]: [0.75]
[dalvik.vm.image-dex2oat-Xms]: [64m]
[dalvik.vm.image-dex2oat-Xmx]: [64m]
[dalvik.vm.isa.arm.features]: [default]
[dalvik.vm.isa.arm.variant]: [krait]
[dalvik.vm.stack-trace-file]: [/data/anr/traces.txt]
[debug.atrace.tags.enableflags]: [0]
[debug.force_rtl]: [0]
[debug.qualcomm.sns.daemon]: [w]
[debug.qualcomm.sns.libsensor1]: [w]
[dev.bootcomplete]: [1]
[drm.service.enabled]: [true]
[gsm.current.phone-type]: [1]
[gsm.network.type]: [Unknown]
[gsm.operator.alpha]: []
[gsm.operator.iso-country]: []
[gsm.operator.isroaming]: [false]
[gsm.operator.numeric]: []
[gsm.sim.operator.alpha]: []
[gsm.sim.operator.iso-country]: []
[gsm.sim.operator.numeric]: []
[gsm.sim.state]: [ABSENT]
[gsm.version.baseband]: [M8974A-2.0.50.2.29]
[gsm.version.ril-impl]: [Qualcomm RIL 1.0]
[init.svc.adbd]: [running]
[init.svc.bdAddrLoader]: [stopped]
[init.svc.bootanim]: [stopped]
[init.svc.bridgemgrd]: [running]
[init.svc.daemonsu]: [stopped]
[init.svc.debuggerd]: [running]
[init.svc.drm]: [running]
[init.svc.flash_recovery]: [stopped]
[init.svc.gatekeeperd]: [running]
[init.svc.healthd]: [running]
[init.svc.installd]: [running]
[init.svc.irsc_util]: [stopped]
[init.svc.keystore]: [running]
[init.svc.lmkd]: [running]
[init.svc.logd]: [running]
[init.svc.logd-reinit]: [stopped]
[init.svc.media]: [running]
[init.svc.mpdecision]: [running]
[init.svc.netd]: [running]
[init.svc.netmgrd]: [running]
[init.svc.p2p_supplicant]: [running]
[init.svc.qcamerasvr]: [running]
[init.svc.qmuxd]: [running]
[init.svc.qseecomd]: [running]
[init.svc.ril-daemon]: [running]
[init.svc.rmt_storage]: [running]
[init.svc.sensors]: [running]
[init.svc.servicemanager]: [running]
[init.svc.surfaceflinger]: [running]
[init.svc.thermal-engine]: [running]
[init.svc.time_daemon]: [running]
[init.svc.ueventd]: [running]
[init.svc.vold]: [running]
[init.svc.zygote]: [running]
[keyguard.no_require_sim]: [true]
[media.aac_51_output_enabled]: [true]
[net.bt.name]: [Android]
[net.change]: [net.dns2]
[net.dns1]: [24.222.0.94]
[net.dns2]: [24.222.0.95]
[net.hostname]: [android-d1c21baf3bba8d53]
[net.qtaguid_enabled]: [1]
[net.tcp.default_init_rwnd]: [60]
[persist.audio.dualmic.config]: [endfire]
[persist.audio.fluence.speaker]: [false]
[persist.audio.fluence.voicecall]: [true]
[persist.audio.fluence.voicecomm]: [true]
[persist.audio.fluence.voicerec]: [false]
[persist.audio.handset.mic.type]: [digital]
[persist.debug.sensors.hal]: [w]
[persist.hwc.mdpcomp.enable]: [true]
[persist.radio.always_send_plmn]: [true]
[persist.radio.apm_sim_not_pwdn]: [1]
[persist.radio.custom_ecc]: [1]
[persist.radio.data_no_toggle]: [1]
[persist.radio.eons.enabled]: [false]
[persist.radio.mode_pref_nv10]: [1]
[persist.radio.snapshot_enabled]: [1]
[persist.radio.snapshot_timer]: [2]
[persist.radio.use_cc_names]: [true]
[persist.service.bdroid.bdaddr]: [CC:FA:00:12:E3:E1]
[persist.sys.dalvik.vm.lib.2]: [libart.so]
[persist.sys.locale]: [en-US]
[persist.sys.profiler_ms]: [0]
[persist.sys.timezone]: [America/Halifax]
[persist.sys.usb.config]: [mtp,adb]
[ril.ecclist]: [911,*911,#911,112,000,08,110,999,118,119,133]
[rild.libpath]: [/system/lib/libril-qc-qmi-1.so]
[ro.adb.secure]: [1]
[ro.allow.mock.location]: [0]
[ro.baseband]: [msm]
[ro.board.platform]: [msm8974]
[ro.boot.baseband]: [msm]
[ro.boot.bootloader]: [HHZ20h]
[ro.boot.emmc]: [true]
[ro.boot.hardware]: [hammerhead]
[ro.boot.hardware.ddr]: [hynix]
[ro.boot.hardware.display]: [orise]
[ro.boot.hardware.sku]: [D820]
[ro.boot.revision]: [11]
[ro.boot.serialno]: [04ad326d002d39ed]
[ro.bootimage.build.date]: [Thu Nov 3 20:06:42 UTC 2016]
[ro.bootimage.build.date.utc]: [1478203602]
[ro.bootimage.build.fingerprint]: [google/hammerhead/hammerhead:6.0.1/M4B30Z/3437181:user/release-keys]
[ro.bootloader]: [HHZ20h]
[ro.bootmode]: [unknown]
[ro.build.characteristics]: [nosdcard]
[ro.build.date]: [Thu Nov  3 20:03:42 UTC 2016]
[ro.build.date.utc]: [1478203422]
[ro.build.description]: [hammerhead-user 6.0.1 M4B30Z 3437181 release-keys]
[ro.build.display.id]: [M4B30Z]
[ro.build.expect.baseband]: [M8974A-2.0.50.2.30]
[ro.build.expect.bootloader]: [HHZ20h]
[ro.build.fingerprint]: [google/hammerhead/hammerhead:6.0.1/M4B30Z/3437181:user/release-keys]
[ro.build.flavor]: [hammerhead-user]
[ro.build.host]: [wpdu6.hot.corp.google.com]
[ro.build.id]: [M4B30Z]
[ro.build.product]: [hammerhead]
[ro.build.tags]: [release-keys]
[ro.build.type]: [user]
[ro.build.user]: [android-build]
[ro.build.version.all_codenames]: [REL]
[ro.build.version.base_os]: []
[ro.build.version.codename]: [REL]
[ro.build.version.incremental]: [3437181]
[ro.build.version.preview_sdk]: [0]
[ro.build.version.release]: [6.0.1]
[ro.build.version.sdk]: [23]
[ro.build.version.security_patch]: [2016-10-05]
[ro.carrier]: [unknown]
[ro.com.android.dataroaming]: [false]
[ro.com.android.wifi-watchlist]: [GoogleGuest]
[ro.com.google.clientidbase]: [android-google]
[ro.config.alarm_alert]: [Oxygen.ogg]
[ro.config.notification_sound]: [Tethys.ogg]
[ro.config.ringtone]: [Titania.ogg]
[ro.config.vc_call_vol_steps]: [6]
[ro.crypto.state]: [unencrypted]
[ro.dalvik.vm.native.bridge]: [0]
[ro.debuggable]: [0]
[ro.error.receiver.system.apps]: [com.google.android.gms]
[ro.expect.recovery_id]: [0x49019e62d7e04a2ba9c94c0604e2f2fdf3871dfd000000000000000000000000]
[ro.facelock.black_timeout]: [400]
[ro.facelock.det_timeout]: [1500]
[ro.facelock.est_max_time]: [600]
[ro.facelock.lively_timeout]: [2500]
[ro.facelock.rec_timeout]: [2500]
[ro.facelock.use_intro_anim]: [false]
[ro.hardware]: [hammerhead]
[ro.hwui.drop_shadow_cache_size]: [6]
[ro.hwui.gradient_cache_size]: [1]
[ro.hwui.layer_cache_size]: [48]
[ro.hwui.path_cache_size]: [32]
[ro.hwui.r_buffer_cache_size]: [8]
[ro.hwui.text_large_cache_height]: [1024]
[ro.hwui.text_large_cache_width]: [2048]
[ro.hwui.text_small_cache_height]: [1024]
[ro.hwui.text_small_cache_width]: [1024]
[ro.hwui.texture_cache_flushrate]: [0.4]
[ro.hwui.texture_cache_size]: [72]
[ro.input.noresample]: [1]
[ro.opengles.version]: [196608]
[ro.product.board]: [hammerhead]
[ro.product.brand]: [google]
[ro.product.cpu.abi]: [armeabi-v7a]
[ro.product.cpu.abi2]: [armeabi]
[ro.product.cpu.abilist]: [armeabi-v7a,armeabi]
[ro.product.cpu.abilist32]: [armeabi-v7a,armeabi]
[ro.product.cpu.abilist64]: []
[ro.product.device]: [hammerhead]
[ro.product.locale]: [en-US]
[ro.product.manufacturer]: [LGE]
[ro.product.model]: [Nexus 5]
[ro.product.name]: [hammerhead]
[ro.qti.sensors.game_rv]: [true]
[ro.qti.sensors.georv]: [true]
[ro.qti.sensors.max_accel_rate]: [200]
[ro.qti.sensors.max_gamerv_rate]: [200]
[ro.qti.sensors.max_geomag_rotv]: [60]
[ro.qti.sensors.max_grav]: [200]
[ro.qti.sensors.max_gyro_rate]: [200]
[ro.qti.sensors.max_linacc]: [200]
[ro.qti.sensors.max_orient]: [200]
[ro.qti.sensors.max_rotvec]: [200]
[ro.qti.sensors.smd]: [true]
[ro.qti.sensors.smgr_mag_cal_en]: [true]
[ro.qti.sensors.step_counter]: [true]
[ro.qti.sensors.step_detector]: [true]
[ro.recovery_id]: [0x69d7775cdf4a13a96380d045798547961873c01b000000000000000000000000]
[ro.revision]: [11]
[ro.ril.svdo]: [false]
[ro.ril.svlte1x]: [false]
[ro.runtime.firstboot]: [7979203301]
[ro.secure]: [1]
[ro.serialno]: [04ad326d002d39ed]
[ro.setupwizard.enterprise_mode]: [1]
[ro.sf.lcd_density]: [480]
[ro.telephony.call_ring.multiple]: [0]
[ro.telephony.default_network]: [10]
[ro.url.legal]: [http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html]
[ro.url.legal.android_privacy]: [http://www.google.com/intl/%s/mobile/android/basic/privacy.html]
[ro.wifi.channels]: []
[ro.zygote]: [zygote32]
[security.perf_harden]: [1]
[service.bootanim.exit]: [1]
[sukernel.daemonsu.launch]: [post-fs-data]
[supolicy.loaded]: [1]
[sys.boot_completed]: [1]
[sys.settings_global_version]: [20]
[sys.settings_secure_version]: [44]
[sys.settings_system_version]: [9]
[sys.sysctl.extra_free_kbytes]: [24300]
[sys.sysctl.tcp_def_init_rwnd]: [60]
[sys.usb.config]: [mtp,adb]
[sys.usb.configfs]: [0]
[sys.usb.state]: [mtp,adb]
[telephony.lteOnCdmaDevice]: [1]
[vold.has_adoptable]: [0]
[vold.post_fs_data_done]: [1]
[wifi.interface]: [wlan0]
[wifi.supplicant_scan_interval]: [15]
[wlan.driver.status]: [ok]

@osm0sis
Copy link
Member Author

osm0sis commented Dec 23, 2016

Hmm just did a thorough comparison and there's nothing useful different between the two sets of build/get props. So we've got an option here.. which is what others have done:
http://forum.xda-developers.com/google-nexus-5/development/fix-google-camera-hdr-nougat-roms-t3509153

Basically, Open GApps has hammerhead on a blacklist to force Camera 3.2.x, installs the proper framework files to go with that version of Camera, and uses a special re-signed APK so that it won't update via Play Store.

@mfonville

@KreAch3R
Copy link
Contributor

Did you try changing just the Android version and fingerprint props? (From 6.0.1 to 7.x)

@osm0sis
Copy link
Member Author

osm0sis commented Dec 23, 2016

Check out my CM14 ones in the issue post, CM keeps the fingerprint the same as stock.

Changing SDK version is what breaks Google Play services since it's trying to execute code that doesn't work on Marshmallow.

I flashed the zip from the above link, but with a re-signed Camera 3.2 apk (from here: https://drive.google.com/file/d/0BzjPCTvT_zbxTnVMSW1fVi1wWm8/) and it works well. So perhaps nothing but the re-signed APK are necessary.

@KreAch3R
Copy link
Contributor

Nice!

  1. I'm sorry, I couldn't check the props, I was on mobile before.

  2. Basically, Open GApps has hammerhead on a blacklist to force Camera 3.2.x, installs the proper framework files to go with that version of Camera, and uses a special re-signed APK so that it won't update via Play Store.

    Does this happen already? How can I force it? I got 4.2.x when I flashed on hammerhead (7.1.1) yesterday. Does it need the "hal persist" related props?

  3. Open GApps could supply the 3.2 apk re-signed in every gapps package, couldn't it? Since anyone that needs 3.2 specifically anyway would probably need to stay on that version.

@osm0sis
Copy link
Member Author

osm0sis commented Dec 23, 2016

Open GApps currently does this for 2.7.x as the CameraLegacy keyword, but something new would need to be added for 3.2.x and ideally on hammerhead (maybe others?) it should happen automatically. Open GApps could re-sign it to resolve the upgrade issue itself, yeah.

I did a bit more testing and the 3.2.x camera over top of the 4.2.x libs/framework still doesn't have working HDR+, so those will need to be installed with re re-signed APK as well.

Edit: Hmm looks like there's only a keyword to forcenewcamera, not the other way around to get googlecameralegacy?

@KreAch3R
Copy link
Contributor

KreAch3R commented Dec 23, 2016

Nice testing.

So @mfonville could we modify the Camera/CameraLegacy keyword, such as that it checks an array of device names before copying the apk?

if $board = { mako, older, older, older }; then
    install 2.7.x (resigned) + libs 
else if $board = { hammmerhead, old, old, old }; then
    install 3.2.x (resigned) + libs
else
    install latest + libs
fi

That would nail it. What do you guys think?

@osm0sis
Copy link
Member Author

osm0sis commented Dec 24, 2016

I got HDR+ fully working on CM14.1 with 3.2.x by extracting the libs from the 3.2.x APK into /system/lib, so we should be good with something along those lines, with no changes to the jars required. 👍

Edit: But maybe extracting the libs wouldn't even be necessary if the APK is simply repacked and re-signed in the Nougat way?

Edit 2: Yup. Totally works. That re-signed APK must not have had the libs deflated, so I did so and now it all works, so a properly modded APK is the only necessary change to /system.

@mfonville
Copy link
Member

sorry for my late response
with the frameworks and Play Store testing; the device capabilities are submitted at GSF-id generation time, so afterwards removing/changing the frameworks doesn't update what 'Play' does know about your device.

So probably we need some extra testing, in if you really don't get the upgrade if appropriate frameworks are (not) installed.

@KreAch3R yes, probably we will have to split out to 3 different versions; but best would be if build.prop would hint us the device hardware+driver capabilities and which variant to install. We can at the moment do that with legacy vs non-legacy.

Otherwise we probably would end-up "whitelisting" 4.x-camera for certain devices (I think most devices don't support it... right?)

@KreAch3R
Copy link
Contributor

with the frameworks and Play Store testing; the device capabilities are submitted at GSF-id generation time, so afterwards removing/changing the frameworks doesn't update what 'Play' does know about your device.

This is nice to know, can you re-try that testing @osm0sis ?

yes, probably we will have to split out to 3 different versions; but best would be if build.prop would hint us the device hardware+driver capabilities and which variant to install. We can at the moment do that with legacy vs non-legacy.

Unfortunately, I can't think of something that would work across the board. For example, I know that in hammerhead and using the CM legacy HALs to get Google Camera working (but not HDR), you need to use these build.prop values:
krexus/device_lge_hammerhead@8c9b3f2

They will probably be there for every device that CM uses the legacy HALs on, (most of them) but you can't really be sure.

And I don't know about whitelisting either, I have no idea where it works or not, but:

  1. because this can change ROM side (same device, same gapps, if we fix something in the av repos)

  2. because it's better to give the users the latest when in doubt

I think a specific blacklist with known devices will be the more appropriate option. You don't need to cover everything on your own, just depend on users reporting if Google Camera works on their device + Android version combo.

For even bigger amount of control, ForceLegacy2, ForceLegacy3 could be a solution too, but I don't know how much of a logistics nightmare it becomes. :/

@osm0sis
Copy link
Member Author

osm0sis commented Dec 28, 2016

Not sure what I'd need to change to test that. Something in the permissions xml? build.prop?

@mfonville was mentioning there might be a way to automate it with DummyDroid (the way they crawl for different APKs) to see what the Play Store offers given different conditions, but I don't have the setup for that. Could be a lot easier.

I think ForceCamera2 ForceCamera3 ForceCamera4 would be best to allow people to override the logic and test whichever version they want/need.

@KreAch3R
Copy link
Contributor

Not sure what I'd need to change to test that. Something in the permissions xml? build.prop?

@mfonville is saying that the Play Store doesn't understand lib changes after you're signed in, so any tests you tried (by removing 4.x camera libs and testing in 4.2 Google Camera still appears on Play as update) will need to be re-done and after each change, a full account removal should be necessary.

@osm0sis
Copy link
Member Author

osm0sis commented Jan 10, 2017

@marcomarinho for reference and testing purposes, this is the version with deflated libraries that will work from within the /system partition: https://forum.xda-developers.com/showpost.php?p=70442654&postcount=37

@KreAch3R I still think DummyDroid sounds like the best way to figure out if there's any other limiter to the version the Play Store is serving. I just don't have time to tear down the device that is still my daily driver this many times to try and figure it out when there might be a better automated way already at Open GApps' disposal.

@osm0sis
Copy link
Member Author

osm0sis commented Feb 3, 2017

@KreAch3R It was an adb kinda day, so I took a stab at those tests again. 😜

Clean flash LineageOS 14.1 NMF26V + Open GApps 7.1.1 Stock 20170131 + Stock 6.0.1 M4B30Z build.prop = hung at bootanim. Tried with only ro.build.version.* and ro.build.date.* changed and still no luck.

Clean flash Google Stock Marshmallow 6.0.1 M4B30Z + LineageOS 14.1 NMF26V build.prop = booted! And before things started crashing from a Google Play services forced update I got into the Play Store to see it try to serve up Google Camera 4.2.x! I even managed to download Camera 4.2 and find that (of course) it doesn't run since the system libraries don't match.

So it does appear the Play Store update for Google Camera is only limited by the OS version reported from the build.prop; there's no other magic for us to figure out, Open GApps will need to re-sign the 3.2.x APK to ensure it doesn't try to update.

@mfonville as for recognizing when it's needed, if a device whitelist consisting of hammerhead isn't sufficient, maybe it's worth noting that of the 3 values KreAch3R mentioned are used in Nougat hammerhead ROMs (camera.disable_zsl_mode=1 media.stagefright.legacyencoder=true media.stagefright.less-secure=true) only zsl also exists on stock Marshmallow. So maybe if all 3 exist then 3.2.x would be the better choice?

@KreAch3R
Copy link
Contributor

KreAch3R commented Feb 3, 2017

Great debugging @osm0sis and I agree with your point in the end. At this point, the legacy HALs for nougat are here to stay. We can make the estimated guess that the devices using them are not going to do well with the latest Google Camera, so we could push 3.2.x as default and let those devices ForceCameraLatest if they truly want it?

@osm0sis
Copy link
Member Author

osm0sis commented Feb 3, 2017

Absolutely, and I think making it more granular (N7 2013 still needs Google Camera 2.7.x) with ForceCamera2, ForceCamera3 and ForceCamera4 would be best; leaves it future-proof against more devices requiring specific versions so they can specify in .gapps-config rather than waiting for months on us to figure out how to automate it, and easier to add Google Camera 5.x, 6.x and so on as needed down the road. 😃

@mfonville

@osm0sis
Copy link
Member Author

osm0sis commented Mar 15, 2017

Okay, so @mfonville, what are the next steps for this one? I think we need you to weigh in on how you would like things to be structured.

@osm0sis osm0sis closed this as completed Aug 18, 2020
@osm0sis
Copy link
Member Author

osm0sis commented Aug 18, 2020

Still a problem technically, but possibly irrelevant since these devices are ancient now. 😛

I still like the ForceCamera# idea, with just the known milestone APKs, but no idea how to make that happen infrastructure-wise here, and you'd have to worry about how that would bloat up the zips too, so I'll open it back up for debate/roadmap reasons.

@osm0sis osm0sis reopened this Aug 22, 2020
@osm0sis osm0sis changed the title Nexus 5 needs Google Camera 3.2.x for fully functional HDR More granular Google Camera support Aug 22, 2020
@osm0sis osm0sis changed the title More granular Google Camera support More granular Google Camera keyword support Aug 22, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants