Closed Bug 1214737 Opened 9 years ago Closed 6 years ago

Device should check to make sure that the proper fingerprint for a FOTA is being used before trying to FOTA

Categories

(Firefox OS Graveyard :: Gaia::System, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: nhirata, Unassigned, NeedInfo)

References

Details

1. have a different build than the base image (ie flash a more recent full flash) to gain a diffeerent finger print than the base image
2. set the device to try to FOTA

Expected: error message to say wrong base build.  Please flash the device to the proper base build in a notification.

Actual: Recovery process, fails to update in the android recovery due to wrong fingerprint/signature.
I think we probably should have the build push the fingerprint as well to the update.xml file?
Which probably means that balrog needs to be updated to handle this as well?  Not sure.
UX please!  :)
Flags: needinfo?(firefoxos-ux-bugzilla)
Note, I talked to tif about this, if you don't have the precheck to make sure you're on the right build you end up with a device that looks like this :
https://bug1213331.bmoattachments.org/attachment.cgi?id=8672183
Is flashing via terminal the only way to run into this issue?

We agree that we should be putting in a pre-check to prevent anyone from running into the issue shown in the screenshot. 

How about we use this string: "Your current base image is [base image id]. Please update base image before flashing."

We think the above string is a good starting point. Please NI us again for further input/review.

~Your friends from UX triage!
Flags: needinfo?(firefoxos-ux-bugzilla) → needinfo?(nhirata.bugzilla)
We're changing from the Flame using the OTA to FOTA, and you will run into this issue when you try to update the Flame device.

Keep in mind the change we have will also affect partners/distributors if they make builds to target using fingerprints (ie https://developer.mozilla.org/en-US/Firefox_OS/Building/FOTA_community_builds#Build_configuration and bug 1213824), so it should be something that's generically worded.
Flags: needinfo?(nhirata.bugzilla) → needinfo?(firefoxos-ux-bugzilla)
"Your base image is out-of-date. Please update before flashing."

How about it?
Flags: needinfo?(firefoxos-ux-bugzilla) → needinfo?(nhirata.bugzilla)
Hrm, I think the end user would be confused and thinking, "Isn't this why I'm trying to update in the first place?"


I was thinking more along the lines of "You are not on the required build to update from.  Please contact your distributor for the appropriate build.  Flashing a new build may erase your data."

Or something similar...  probably too wordy?
Flags: needinfo?(nhirata.bugzilla) → needinfo?(tshakespeare)
(In reply to Naoki Hirata :nhirata (please use needinfo instead of cc) from comment #3)
> Note, I talked to tif about this, if you don't have the precheck to make
> sure you're on the right build you end up with a device that looks like this
> :
> https://bug1213331.bmoattachments.org/attachment.cgi?id=8672183

I am having this issue in my Spark Flame device, I filed the following bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=1217395

I would greatly appreciate if someone could please help me fix it!
Note: I don't have the issue in my non Spark Flame.
Gaby, we don't support custom builds updating with our updates, which basically leads to this bug.  It could lead to too much trouble shooting on non reproducible issues otherwise.
QA Whiteboard: [FOTA Issues]
(In reply to Naoki Hirata :nhirata (please use needinfo instead of cc) from comment #9)
> Gaby, we don't support custom builds updating with our updates, which
> basically leads to this bug.  It could lead to too much trouble shooting on
> non reproducible issues otherwise.

Naoki, many thanks for your explanation, it makes perfect sense to me!
(In reply to Naoki Hirata :nhirata (please use needinfo instead of cc) from comment #7)
> Hrm, I think the end user would be confused and thinking, "Isn't this why
> I'm trying to update in the first place?"
> 
> 
> I was thinking more along the lines of "You are not on the required build to
> update from.  Please contact your distributor for the appropriate build. 
> Flashing a new build may erase your data."
> 
> Or something similar...  probably too wordy?

Naoki, whenever this bug is fixed, will I be able to FOTA update agin? I ask because the base image I used to flash the spark flame was not a custom one but the one on the MDN site.
See Also: → 1220056
The image doesn't show the right fingerprint.  Are you sure Gaby?  Would it be possible to reflash?
Flags: needinfo?(gmontagu)
(In reply to Naoki Hirata :nhirata (please use needinfo instead of cc) from comment #13)
> The image doesn't show the right fingerprint.  
Which image doesn't show the right fingerprint? I'm sorry but I don't I understand what you mean.
When I try updating my Spark flame I get the same issue described here even after re flashing base image 18D v4

Are you sure Gaby? Sorry again, sure about what?

Would it be possible to reflash?
Reflash the base image you mean? And then the spark build to see if I can still repro the issue?
I could do it if necessary. I wish I could backup the device though. I tried to do it with a mozillian's guidance several times but it didn't work...
Flags: needinfo?(gmontagu)
(In reply to Naoki Hirata :nhirata (please use needinfo instead of cc) from comment #13)
> The image doesn't show the right fingerprint.  Are you sure Gaby?  Would it
> be possible to reflash?

Naoki, I reflashed the base image but I got eh same result: when trying to update I see the attachment's image in my Flame's display.
Flags: needinfo?(nhirata.bugzilla)
If you don't have the base build based on the v4 build, you won't get the update.
Please report the result of : 
adb shell getprop
So I can see the details of your device in why you aren't getting the appropriate build.
Flags: needinfo?(nhirata.bugzilla)
Flags: needinfo?(nhirata.bugzilla)
Flags: needinfo?(nhirata.bugzilla) → needinfo?(gmontagu)
Naoki, I did reflash base image 18D v4 but I still see the attachment's image. I'll run adb shell getprop for you to see as soon as I can all the same though. Thanks!
Flags: needinfo?(gmontagu)
(In reply to Naoki Hirata :nhirata (please use needinfo instead of cc) from comment #17)
> If you don't have the base build based on the v4 build, you won't get the
> update.
> Please report the result of : 
> adb shell getprop
> So I can see the details of your device in why you aren't getting the
> appropriate build.

Naoki, I did reflash base image 18D v4 but I still see the attachment's image. Here is the result of running adb shell getprop though. I hope it's correct and that it will help you understand what the issue is about. Thanks!


Microsoft Windows [Versión 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos.

C:\Users\Gabriela>adb shell getprop
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
[DEVICE_PROVISIONED]: [1]
[af.resampler.quality]: [4]
[audio.offload.buffer.size.kb]: [32]
[audio.offload.gapless.enabled]: [true]
[av.offload.enable]: [false]
[bluetooth.isEnabled]: [false]
[dalvik.vm.heapgrowthlimit]: [48m]
[dalvik.vm.heapmaxfree]: [2m]
[dalvik.vm.heapminfree]: [512k]
[dalvik.vm.heapsize]: [128m]
[dalvik.vm.heapstartsize]: [5m]
[dalvik.vm.heaptargetutilization]: [0.75]
[dalvik.vm.lockprof.threshold]: [500]
[dalvik.vm.stack-trace-file]: [/data/anr/traces.txt]
[debug.composition.type]: [dyn]
[debug.gralloc.map_fb_memory]: [0]
[debug.hwc.dynThreshold]: [1.5]
[debug.sf.fb_always_on]: [1]
[dev.pm.dyn_samplingrate]: [1]
[dhcp.wlan0.dns1]: [200.45.191.35]
[dhcp.wlan0.dns2]: [200.45.48.233]
[dhcp.wlan0.dns3]: []
[dhcp.wlan0.dns4]: []
[dhcp.wlan0.domain]: [Home]
[dhcp.wlan0.gateway]: [192.168.1.1]
[dhcp.wlan0.ipaddress]: [192.168.1.3]
[dhcp.wlan0.leasetime]: [86400]
[dhcp.wlan0.mask]: [255.255.255.0]
[dhcp.wlan0.mtu]: []
[dhcp.wlan0.pid]: [1038]
[dhcp.wlan0.reason]: [BOUND]
[dhcp.wlan0.result]: [ok]
[dhcp.wlan0.server]: [192.168.1.1]
[dhcp.wlan0.vendorInfo]: []
[gsm.version.ril-impl]: [Qualcomm RIL 1.0]
[init.svc.adbd]: [running]
[init.svc.adsprpcd]: [running]
[init.svc.atfwd]: [stopped]
[init.svc.audiod]: [running]
[init.svc.b2g]: [running]
[init.svc.charger_monitor]: [running]
[init.svc.config_bluetooth]: [stopped]
[init.svc.console]: [running]
[init.svc.debuggerd]: [running]
[init.svc.dhcpcd_wlan0]: [running]
[init.svc.drm]: [running]
[init.svc.fuse_sdcard1]: [running]
[init.svc.fuse_sdcard]: [running]
[init.svc.fuse_uicc0]: [running]
[init.svc.fuse_usbotg]: [running]
[init.svc.gonksched]: [running]
[init.svc.healthd]: [running]
[init.svc.installd]: [running]
[init.svc.irsc_util]: [stopped]
[init.svc.keystore]: [running]
[init.svc.media]: [running]
[init.svc.mpdecision]: [running]
[init.svc.netd]: [running]
[init.svc.netmgrd]: [running]
[init.svc.ptt_socket_app]: [stopped]
[init.svc.qcamerasvr]: [running]
[init.svc.qcom-c_core-sh]: [stopped]
[init.svc.qcom-c_main-sh]: [stopped]
[init.svc.qcom-post-boot]: [stopped]
[init.svc.qcom-sh]: [stopped]
[init.svc.qcom-usb-sh]: [stopped]
[init.svc.qcomsysd]: [running]
[init.svc.qmuxd]: [running]
[init.svc.qrngd]: [running]
[init.svc.qseecomd]: [running]
[init.svc.rfs_access]: [running]
[init.svc.ril-daemon1]: [running]
[init.svc.ril-daemon]: [running]
[init.svc.rmt_storage]: [running]
[init.svc.servicemanager]: [running]
[init.svc.swapping]: [stopped]
[init.svc.thermal-engine]: [running]
[init.svc.time_daemon]: [running]
[init.svc.trace_util]: [running]
[init.svc.ueventd]: [running]
[init.svc.vold]: [running]
[init.svc.wcnss-service]: [running]
[init.svc.wpa_supplicant]: [running]
[keyguard.no_require_sim]: [true]
[media.aac_51_output_enabled]: [true]
[media.stagefright.enable-aac]: [true]
[media.stagefright.enable-fma2dp]: [true]
[media.stagefright.enable-http]: [true]
[media.stagefright.enable-player]: [true]
[media.stagefright.enable-qcp]: [true]
[media.stagefright.enable-scan]: [true]
[mm.enable.qcom_parser]: [37491]
[mmp.enable.3g2]: [true]
[net.bt.name]: [Android]
[net.change]: [net.dnschange]
[net.dns1]: [200.45.191.35]
[net.dns2]: [200.45.48.233]
[net.dnschange]: [1]
[net.tcp.buffersize.default]: [4096,87380,110208,4096,16384,110208]
[net.tcp.buffersize.edge]: [4093,26280,35040,4096,16384,35040]
[net.tcp.buffersize.evdo]: [4094,87380,262144,4096,16384,262144]
[net.tcp.buffersize.gprs]: [4092,8760,11680,4096,8760,11680]
[net.tcp.buffersize.hsdpa]: [4094,87380,1220608,4096,16384,1220608]
[net.tcp.buffersize.hspa]: [4094,87380,1220608,4096,16384,1220608]
[net.tcp.buffersize.hspap]: [4094,87380,1220608,4096,16384,1220608]
[net.tcp.buffersize.hsupa]: [4094,87380,1220608,4096,16384,1220608]
[net.tcp.buffersize.lte]: [524288,1048576,2097152,262144,524288,1048576]
[net.tcp.buffersize.umts]: [4094,87380,110208,4096,16384,110208]
[net.tcp.buffersize.wifi]: [524288,2097152,4194304,262144,524288,1048576]
[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.wlan0.dns1]: [200.45.191.35]
[net.wlan0.dns2]: [200.45.48.233]
[net.wlan0.gw]: [192.168.1.1]
[org.bluez.device.conn.type]: [array]
[persist.audio.fluence.speaker]: [true]
[persist.audio.fluence.voicecall]: [true]
[persist.audio.fluence.voicerec]: [false]
[persist.dash.avsync.window.msec]: [100]
[persist.dash.max.rep.bandwidth]: [4000000]
[persist.dash.max.rep.resolution]: [1280*720]
[persist.gralloc.cp.level3]: [1]
[persist.radio.adb_log_on]: [0]
[persist.radio.apm_sim_not_pwdn]: [0]
[persist.radio.atfwd.start]: [false]
[persist.radio.dont_use_dsd]: [true]
[persist.radio.eons.enabled]: [false]
[persist.radio.msgtunnel.start]: [false]
[persist.radio.multisim.config]: [dsds]
[persist.rild.nitz_long_ons_0]: []
[persist.rild.nitz_long_ons_1]: []
[persist.rild.nitz_long_ons_2]: []
[persist.rild.nitz_long_ons_3]: []
[persist.rild.nitz_plmn]: []
[persist.rild.nitz_short_ons_0]: []
[persist.rild.nitz_short_ons_1]: []
[persist.rild.nitz_short_ons_2]: []
[persist.rild.nitz_short_ons_3]: []
[persist.sys.dalvik.vm.lib]: [libdvm.so]
[persist.sys.strict_op_enable]: [false]
[persist.sys.timezone]: [America/Argentina/Buenos_Aires]
[persist.sys.usb.config.extra]: [none]
[persist.sys.usb.config]: [diag,serial_smd,serial_tty,rmnet_bam,mass_storage,adb
]
[persist.sys.whitelist]: [/system/etc/whitelist_appops.xml]
[persist.timed.enable]: [true]
[ril.ecclist1]: [911,112,000,08,110,999,118,119]
[ril.ecclist]: [911,112,000,08,110,999,118,119]
[ril.qcril_pre_init_lock_held]: [0]
[ril.subscription.types]: [NV,RUIM]
[rild.libargs]: [-d /dev/smd0]
[rild.libpath]: [/vendor/lib/libril-qc-qmi-1.so]
[ro.alarm_boot]: [false]
[ro.allow.mock.location]: [0]
[ro.baseband]: [msm]
[ro.bluetooth.dun]: [true]
[ro.bluetooth.hfp.ver]: [1.6]
[ro.bluetooth.sap]: [true]
[ro.board.platform]: [msm8610]
[ro.boot.baseband]: [msm]
[ro.boot.bootloader]: [L1TC000118D0]
[ro.boot.console]: [ttyHSL0]
[ro.boot.emmc]: [true]
[ro.boot.hardware]: [qcom]
[ro.boot.serialno]: [f304ccc3]
[ro.bootloader]: [L1TC000118D0]
[ro.bootmode]: [unknown]
[ro.build.characteristics]: [default]
[ro.build.date.utc]: [1448389950]
[ro.build.date]: [Tue Nov 24 10:32:30 PST 2015]
[ro.build.description]: [flame-userdebug 4.4.2 KOT49H eng.firefox.20151124.10320
3 test-keys]
[ro.build.display.id]: [flame-userdebug 4.4.2 KOT49H eng.firefox.20151124.103203
 test-keys]
[ro.build.fingerprint]: [qcom/flame/flame:4.4.2/KOT49H/eng.firefox.20151124.1032
03:userdebug/test-keys]
[ro.build.host]: [ubuntu]
[ro.build.id]: [KOT49H]
[ro.build.product]: [flame]
[ro.build.tags]: [test-keys]
[ro.build.type]: [userdebug]
[ro.build.user]: [firefox]
[ro.build.version.codename]: [REL]
[ro.build.version.incremental]: [eng.firefox.20151124.103203]
[ro.build.version.release]: [4.4.2]
[ro.build.version.sdk]: [19]
[ro.carrier]: [unknown]
[ro.com.android.dataroaming]: [true]
[ro.com.android.dateformat]: [MM-dd-yyyy]
[ro.config.alarm_alert]: [Alarm_Classic.ogg]
[ro.config.low_ram]: [true]
[ro.config.notification_sound]: [pixiedust.ogg]
[ro.config.ringtone]: [Ring_Synth_04.ogg]
[ro.crypto.state]: [unencrypted]
[ro.debuggable]: [1]
[ro.factorytest]: [0]
[ro.fm.transmitter]: [false]
[ro.hardware]: [qcom]
[ro.hdmi.enable]: [true]
[ro.moz.devinputjack]: [1]
[ro.moz.nfc.enabled]: [true]
[ro.moz.omx.hw.max_height]: [720]
[ro.moz.omx.hw.max_width]: [1280]
[ro.moz.ril.0.network_types]: [gsm,wcdma]
[ro.moz.ril.1.network_types]: [gsm]
[ro.moz.ril.emergency_by_default]: [true]
[ro.moz.ril.numclients]: [2]
[ro.moz.ril.subscription_control]: [true]
[ro.nfc.port]: [I2C]
[ro.opengles.version]: [196608]
[ro.product.board]: [MSM8610]
[ro.product.brand]: [qcom]
[ro.product.cpu.abi2]: [armeabi]
[ro.product.cpu.abi]: [armeabi-v7a]
[ro.product.device]: [flame]
[ro.product.locale.language]: [en]
[ro.product.locale.region]: [US]
[ro.product.manufacturer]: [t2m]
[ro.product.model]: [flame]
[ro.product.name]: [flame]
[ro.qc.sdk.audio.fluencetype]: [none]
[ro.qc.sdk.audio.ssr]: [false]
[ro.qualcomm.bluetooth.ftp]: [true]
[ro.qualcomm.bluetooth.hfp]: [true]
[ro.qualcomm.bluetooth.hsp]: [true]
[ro.qualcomm.bluetooth.map]: [true]
[ro.qualcomm.bluetooth.nap]: [true]
[ro.qualcomm.bluetooth.opp]: [true]
[ro.qualcomm.bluetooth.pbap]: [true]
[ro.qualcomm.bt.hci_transport]: [smd]
[ro.qualcomm.cabl]: [1]
[ro.qualcomm.perf.min_freq]: [7]
[ro.revision]: [0]
[ro.ril.svdo]: [false]
[ro.ril.svlte1x]: [false]
[ro.secure]: [1]
[ro.serialno]: [f304ccc3]
[ro.sf.lcd_density]: [240]
[ro.sys.fw.bg_apps_limit]: [20]
[ro.telephony.call_ring.multiple]: [false]
[ro.telephony.default_network]: [5]
[ro.use_data_netmgrd]: [true]
[ro.vendor.extension_library]: [/vendor/lib/libqc-opt.so]
[ro.wifi.channels]: []
[sys.boot_completed]: [1]
[sys.usb.config]: [diag,serial_smd,serial_tty,rmnet_bam,mass_storage,adb]
[sys.usb.state]: [diag,serial_smd,serial_tty,rmnet_bam,mass_storage,adb]
[telephony.lteOnCdmaDevice]: [1]
[tunnel.audio.encode]: [false]
[use.voice.path.for.pcm.voip]: [true]
[vidc.debug.level]: [1]
[vold.post_fs_data_done]: [1]
[wifi.interface]: [wlan0]
[wlan.driver.ath]: [0]
[wlan.driver.config]: [/data/misc/wifi/WCNSS_qcom_cfg.ini]
[wlan.driver.status]: [ok]
Flags: needinfo?(nhirata.bugzilla)
FYI: [ro.build.fingerprint]: [qcom/flame/flame:4.4.2/KOT49H/eng.firefox.20151124.1032
03:userdebug/test-keys] is not the correct fingerprint.  This is why you are hitting this bug and another bug ( bug 1223600 )

I'm glad that we met at the work week and I can fix your issue on your device.
Flags: needinfo?(nhirata.bugzilla)
(In reply to Naoki Hirata :nhirata (please use needinfo instead of cc) from comment #20)
> FYI: [ro.build.fingerprint]:
> [qcom/flame/flame:4.4.2/KOT49H/eng.firefox.20151124.1032
> 03:userdebug/test-keys] is not the correct fingerprint.  This is why you are
> hitting this bug and another bug ( bug 1223600 )

> I'm glad that we met at the work week and I can fix your issue on your
> device.

I'm glad you were able to fix my Flame! Many thanks again Naoki!!!
(In reply to Naoki Hirata :nhirata (please use needinfo instead of cc) from comment #20)
> FYI: [ro.build.fingerprint]:
> [qcom/flame/flame:4.4.2/KOT49H/eng.firefox.20151124.1032
> 03:userdebug/test-keys] is not the correct fingerprint.  This is why you are
> hitting this bug and another bug ( bug 1223600 )
> 
> I'm glad that we met at the work week and I can fix your issue on your
> device.

What is the fix? I have the same problem on my flame...
(In reply to Tim Maks van den Broek [:mad_maks] from comment #22)
> (In reply to Naoki Hirata :nhirata (please use needinfo instead of cc) from
> comment #20)
> > FYI: [ro.build.fingerprint]:
> > [qcom/flame/flame:4.4.2/KOT49H/eng.firefox.20151124.1032
> > 03:userdebug/test-keys] is not the correct fingerprint.  This is why you are
> > hitting this bug and another bug ( bug 1223600 )
> > 
> > I'm glad that we met at the work week and I can fix your issue on your
> > device.
> 
> What is the fix? I have the same problem on my flame...

Try using need info from nhirata as he was the one who was kind enough to fixed it for me!
Flags: needinfo?(nhirata.bugzilla)
I flashed the v4 base build as per comment 17 in person at the work week; comment 20 points to the bug that says you are on the right build when you aren't really.  You will need to look at the getprop in order to determine whether or not you have the right build or not.
Flags: needinfo?(nhirata.bugzilla)
Flags: needinfo?(bugzilla)
[ro.build.fingerprint]: [qcom/flame/flame:4.4.2/KOT49H/eng.firefox.20150908.145433:userdebug/test-keys]

how do i get on the right build?
Flags: needinfo?(bugzilla)
with flashing to v18D_nightly_v5 it works
Firefox OS is not being worked on
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.