Closed Bug 1166276 (b2g-addon) Opened 9 years ago Closed 8 years ago

[meta] Getting a B2G Installer Addon

Categories

(Firefox OS Graveyard :: B2gInstaller, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX
2.2 S14 (12june)

People

(Reporter: gerard-majax, Assigned: gerard-majax)

References

Details

(Whiteboard: [spark][systemsfe])

Attachments

(2 files)

Providing a Firefox Addon that will ease installing B2G on a fresh (supported by the build system) device. The goal is to have several pieces:
 - production of full system images with blobs removed
 - addon that gets blobs and rebuild ready to flash images
 - the same addon will perform the flashing itself

We will focus on Aries for now.
Summary: B2G Installer Addon → [meta] B2G Installer Addon
Alias: b2g-addon
Depends on: 1166278
Depends on: 1166279
Summary: [meta] B2G Installer Addon → [meta] Getting a B2G Installer Addon
Depends on: 1168562
Target Milestone: --- → 2.2 S14 (12june)
Depends on: 1172912
Depends on: 1174463
Depends on: 1177280
Depends on: 1175934
Depends on: 1187873
Attached file Sliced Graphics.zip
Attaching sliced graphics. Spec to come shortly.
VSD spec for flashing tool
Depends on: 1191316
Depends on: 1191321
Depends on: 1191728
Are there any plans for this on the Flame? It looks easier, faster and more inviting than flashing via the command line. It definitely lowers the barriers to enter the world of Firefox OS.

Does the addon run within the Firefox browser? Will initial steps like installing ADB and fastboot still need to be carried out? (https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Flame/Initial_setup)
(In reply to Nick from comment #3)
> Are there any plans for this on the Flame? It looks easier, faster and more
> inviting than flashing via the command line. It definitely lowers the
> barriers to enter the world of Firefox OS.

Flame is already suppported. See the blocking bug 1172912. I don't know the status of doing and distributing the blobfree builds on this device.

> 
> Does the addon run within the Firefox browser? Will initial steps like
> installing ADB and fastboot still need to be carried out?
> (https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Flame/
> Initial_setup)

No. Those are bundled in ADB Helper.
OK. Thanks for the help, Alexandre!

Any chance it will be named Firefox OS Installer in future? It would make it easier to find/recognise.

I assume it's not currently publicly available as an addon for Firefox. Is there anywhere I can go to find out how to install/test it?
Component: General → B2gInstaller
(In reply to Nick from comment #5)
> OK. Thanks for the help, Alexandre!
> 
> Any chance it will be named Firefox OS Installer in future? It would make it
> easier to find/recognise.

Well, I personnally don't have an opinion on this. Yet, « Firefox OS » is really the commercial name, so I think keeping B2G here makes sense.

> 
> I assume it's not currently publicly available as an addon for Firefox. Is
> there anywhere I can go to find out how to install/test it?

You already can, build it from source. But we know there are still some risky behavior so we want to debug them before making it too public. Because in case the addon fails you need to be well aware of how to fix it and it may be long even though not complex.
Depends on: 1194863
Depends on: 1195006
Depends on: 1195089
Doing some initial testing: 
1) Just wondering, there's no check on the file in regards to seeing if it's the proper format is there?  The one that you can place in?  (ie if it's not a proper zip file) 
2) There's no checks or recovery from unplugging the device 
3) There's no battery level checks (to make sure you have enough charge before flashing)
Depends on: 1189584
Depends on: 1189583
Depends on: 1200213
Depends on: 1200827
Depends on: 1195358
Depends on: 1195650
Depends on: 1203407
Depends on: nexus-5l-builds
Depends on: 1204482
Blocks: 1206368
Blocks: 1206379
Depends on: 1206412
No longer blocks: 1206368, 1206379
Depends on: 1206368, 1206379
Depends on: 1206746
Depends on: 1207568
Depends on: 1208988
Depends on: 1210817
Depends on: 1211124
Depends on: 1210824
Depends on: 1214761
Depends on: 1224160
Depends on: 1224557
I have a Nexus-S on which I run a master build (from early 2015). For including the device to the list of supported devices for this addon, would it be sufficient to just flash back to original firmware, build the blob-free target and then flash it?

Also - where is the proper place where supported devices are documented? There is a small entry in the following wiki page:

https://developer.mozilla.org/en-US/Firefox_OS/Building

Maybe we could set up a separate Wiki page for that which provides further details about the support state? For instance, on many devices the blobs are updated when installing to a new stock firmware - especially when doing big jumps like from Android KK to Android LP. So I guess it should be pretty important to also mention which original (or even custom) firmware versions are supported (or at least have been tested) for this transition.
Oh no, I misread, you talked about Nexus S. Technically it should be easily doable to add support for blobfree for the Nexus S, but I am doubtful of the user value given it's an old device and it's still stuck on ICS. Also, we have no builds for Nexus S on TaskCluster and that is not going to happen. So the only solution will be to build and host yourself blobfree builds.

That is 100% doable and you just need:
 - add blobs definition as we have for nexus 4/nexus 5: https://github.com/mozilla-b2g/device-mako/blob/b2g-4.4.2_r1/full_mako.mk#L40 or https://github.com/mozilla-b2g/device-hammerhead/blob/b2g-5.1.0_r1/full_hammerhead.mk#L39
 - add devices.json to define compatibility: https://github.com/mozilla-b2g/device-mako/blob/b2g-4.4.2_r1/devices.json https://github.com/mozilla-b2g/device-hammerhead/blob/b2g-5.1.0_r1/devices.json
 - issue a blobfree build with: ./build.sh blobfree

Then you get a zip blobfree distribution that you can use in the addon and you can verify it works
After that if you want you can host that zip file somewhere and add support for that with a PR against https://github.com/mozilla-b2g/b2g-installer-builds
Depends on: 1233002
Depends on: 1233012
Depends on: 1233017
Depends on: 1233019
Depends on: 1233029
Depends on: 1233035
I was just wondering since Mozilla doesn't want to continue distributing B2G phones - is this addon still relevant, meaning will B2G be further developed for smartphones?

Even if not, I think many other "Android-near" systems could profit from this feature.
(In reply to Daniel Kulesz from comment #12)
> I was just wondering since Mozilla doesn't want to continue distributing B2G
> phones - is this addon still relevant, meaning will B2G be further developed
> for smartphones?

FxOS/B2G is still very much in development for phones and this add-on is more relevant than ever since we want our users to be able to flash their phones easily rather than have to go through the cumbersome manual process.
Depends on: 1234213
Depends on: 1234216
Depends on: 1234217
(In reply to Gabriele Svelto [:gsvelto] from comment #13)
> FxOS/B2G is still very much in development for phones and this add-on is
> more relevant than ever since we want our users to be able to flash their
> phones easily rather than have to go through the cumbersome manual process.
Very cool, thank you!

One general aspect I was wondering in design of this installer. Is there a benefit by rebuilding the system image instead of generating an installable update.zip with the blobs to flash them on top of the system image (e.g. using recovery) during the first boot?

And another consideration (but maybe I didn't understand this correctly): Why don't you run everything (maybe except the flashing) on the target device itself instead of a computer connected to it? Imho, going through the process of a "regular" OTA update instead of external fastboot-flashing should be much more convinient for end-users.
Depends on: 1235459
No longer depends on: spark-device, aries-l
Depends on: 1236587
(In reply to Daniel Kulesz from comment #14)
> (In reply to Gabriele Svelto [:gsvelto] from comment #13)
> > FxOS/B2G is still very much in development for phones and this add-on is
> > more relevant than ever since we want our users to be able to flash their
> > phones easily rather than have to go through the cumbersome manual process.
> Very cool, thank you!
> 
> One general aspect I was wondering in design of this installer. Is there a
> benefit by rebuilding the system image instead of generating an installable
> update.zip with the blobs to flash them on top of the system image (e.g.
> using recovery) during the first boot?

You still need to manually flash a recovery we can use

> 
> And another consideration (but maybe I didn't understand this correctly):
> Why don't you run everything (maybe except the flashing) on the target
> device itself instead of a computer connected to it? Imho, going through the
> process of a "regular" OTA update instead of external fastboot-flashing
> should be much more convinient for end-users.

How would you be bootstrapping this?
Depends on: 1236642
Depends on: 1236836
Depends on: 1238945
This is a very interesting idea in order to simplify the installation process of end users. Are there any news?
Yes. I'm working on fixing end user bugs right now.
Depends on: 1240355
Depends on: 1240352
is there any procedure for flash the blobfree package until the addon is complete?
(In reply to Pochy from comment #18)
> is there any procedure for flash the blobfree package until the addon is
> complete?

No.
Added doc at: https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS/B2G_Installer_Addon

It's still preliminary. I'll update a link to generated platform XPIs soon. In the mean time, contributions are more than welcome: I will release a first 1.0 with the current bugs fixed and then move on because I don't have time to maintain this.
Remaining bugs before releasing a 1.0:
 1. Bug 1233029: Installation fails if you click on the "flash device" button until the entire boot sequence is done
 2. Bug 1233012: There is no error message if you don't put an actual local blobfree zip file
 3. Bug 1234216: UI gets confusing if there are 2 compatible devices plugged in
 4. Bug 1204482: Provide a VirtualBox VM ready for B2G Installer use
Depends on: 1245181
Depends on: 1245228
Depends on: 1245229
Depends on: 1246288
Depends on: 1248361
Depends on: 1248673
Depends on: 1248686
Telemetry is done and pings are reaching infra (verified).
Hi,
all bugs are closed. Are you close to release the plugin?
Depends on: 1255383
Depends on: 1260755
Depends on: 1265714
Depends on: 1275065
Depends on: 1275063
Depends on: 1281788
Depends on: 1288910
Depends on: 1304707
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WONTFIX
Depends on: 1347743
No longer depends on: 1347743
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: