Odroid Etcher development thread

Post Reply
joshua.yang
Posts: 453
Joined: Fri Sep 22, 2017 5:54 pm
languages_spoken: Korean, English
ODROIDs: XU4, XU4Q + Cloudshell2, H2, N2
Has thanked: 28 times
Been thanked: 113 times
Contact:

Odroid Etcher development thread

Post by joshua.yang »

Hi, all.

After I saw the URL download function from Etcher someday, I thought that it'd be great if I can modify this to download the Odroid image when using the URL download function.
So I have started, and have developed Balena Etcher for our Odroid images in my spare time last a couple of months.
And the result is; Successful.

Check these screenshots.
스크린샷 2020-09-29 오후 2.13.24.png
스크린샷 2020-09-29 오후 2.13.24.png (91.52 KiB) Viewed 509 times
스크린샷 2020-09-29 오후 2.13.33.png
스크린샷 2020-09-29 오후 2.13.33.png (129.93 KiB) Viewed 509 times
스크린샷 2020-09-29 오후 2.13.38.png
스크린샷 2020-09-29 오후 2.13.38.png (99.74 KiB) Viewed 509 times
스크린샷 2020-09-29 오후 2.14.39.png
스크린샷 2020-09-29 오후 2.14.39.png (96.88 KiB) Viewed 509 times
Could you find out the button named Flash Odroid image in the first image?

In the original Balena Etcher, that is the button to download an image file via URL a user entered. It hasn't been that long since it was added.
I replaced that button to the new button showing a dedicated procedure to select an image file to finally download.

I tried to use the "Balena things" including their UI components so that the new UI of the new modal to be showing familiar with the original one.
And I also tried to not interfere with the original components such as selecting a drive, flashing an image. That means, all the other functionalities alive even after my modification.

(Updated) I packed this for Linux and macOS, and Windows.

Please notes,

Note 1: I couldn't test the macOS archive file to the other macOS systems. Please let me know it works or not on your system. In Linux, Windows systems too. ;)
Note 2: In the macOS application, it will warns you that the app is not signed. This program is not harmful (at least on my codes), so you can ignore that. But if you still have some doubt of this you can check that the source codes. :)
Note 3: I'm new to Electron + React + Typescript. Any improvements to the codebase will be welcomed.
Note 4: The new version must be released. Currently, it only shows the Ubuntu 20.04 LTS images in the specific mirror servers.
Note 5: Please share your ideas if it inspires you.
Note 6: In Windows, you can ignore a kind of security warning showing when you about to complete downloading the execution file. And, to use this properly, you have to run this as an administrator.

I opened this full source codes here: http://github.com/awesometic/etcher
And the download link is here: https://github.com/awesometic/etcher/re ... v1.5.109-1
Last edited by joshua.yang on Tue Oct 13, 2020 4:28 pm, edited 1 time in total.
These users thanked the author joshua.yang for the post (total 5):
tobetter (Tue Sep 29, 2020 7:46 pm) • AreaScout (Tue Sep 29, 2020 8:25 pm) • L67GS (Tue Oct 06, 2020 5:00 pm) • Luke.go (Mon Oct 12, 2020 9:39 am) • Technicavolous (Wed Oct 21, 2020 6:39 pm)

AreaScout
Posts: 1477
Joined: Sun Jul 07, 2013 3:05 am
languages_spoken: german, english
ODROIDs: X2, U3, XU3, C2, HiFi Shield, XU4, XU4Q,
N1, Go, VU5A, Show2, CloudShell2,
H2, N2, VU7A, VuShell, Go2, C4
Has thanked: 73 times
Been thanked: 233 times
Contact:

Re: Odroid Etcher development thread

Post by AreaScout »

    That was a good idea, didn't try it yet but I will, I hope my NAS Image will also be select able in the future :ugeek:

    RG

    User avatar
    rooted
    Posts: 8039
    Joined: Fri Dec 19, 2014 9:12 am
    languages_spoken: english
    Location: Gulf of Mexico, US
    Has thanked: 724 times
    Been thanked: 254 times
    Contact:

    Re: Odroid Etcher development thread

    Post by rooted »

    I starred the repo and will definitely be looking at this, I would love for this to include CoreELEC as well :)

    Awesome idea @joshua.yang

    mad_ady
    Posts: 8582
    Joined: Wed Jul 15, 2015 5:00 pm
    languages_spoken: english
    ODROIDs: XU4, C1+, C2, C4, N1, N2, H2, Go, Go Advance
    Location: Bucharest, Romania
    Has thanked: 578 times
    Been thanked: 486 times
    Contact:

    Re: Odroid Etcher development thread

    Post by mad_ady »

    Indeed! It should be advertised on the wik on every firmware release page. And it should include links to official Android releases, as well as community releases, like *elec, petitboot recovery, Meveric's Debian, tobetter's installers, voodik's Android, etc.

    Since it needs network anyway, it should read a "manifest" file curated by HK that points to various official/community releases.
    You could have a simple backend script that crawls through that file and checks that the links are valid.

    One thing though - can it automatically validate the checksum of the downloaded file?

    joshua.yang
    Posts: 453
    Joined: Fri Sep 22, 2017 5:54 pm
    languages_spoken: Korean, English
    ODROIDs: XU4, XU4Q + Cloudshell2, H2, N2
    Has thanked: 28 times
    Been thanked: 113 times
    Contact:

    Re: Odroid Etcher development thread

    Post by joshua.yang »

    Thanks for the ideas.
    Looks it is definitely needed to add the options for the awesome third-party OS. :)
    mad_ady wrote:
    Wed Sep 30, 2020 2:44 am
    Indeed! It should be advertised on the wik on every firmware release page. And it should include links to official Android releases, as well as community releases, like *elec, petitboot recovery, Meveric's Debian, tobetter's installers, voodik's Android, etc.

    Since it needs network anyway, it should read a "manifest" file curated by HK that points to various official/community releases.
    You could have a simple backend script that crawls through that file and checks that the links are valid.

    One thing though - can it automatically validate the checksum of the downloaded file?
    I will ask them to add the release page into our Wiki websites as soon as Odroid Etcher more matured.

    I agree with that "manifest" file. I'll make a generator that crawls their websites for the manifest things.
    The one that I concerned about is that the websites keep growing with changing their layout and/or link so it may become a huge job to code with for every change.
    Cannot sure at this moment, but I will do crawling them though because it is one of the simple and easy ways I have to go. :)

    Validating the checksum is involved in the official Etcher program. You can check this the end of the flashing process.

    mad_ady
    Posts: 8582
    Joined: Wed Jul 15, 2015 5:00 pm
    languages_spoken: english
    ODROIDs: XU4, C1+, C2, C4, N1, N2, H2, Go, Go Advance
    Location: Bucharest, Romania
    Has thanked: 578 times
    Been thanked: 486 times
    Contact:

    Re: Odroid Etcher development thread

    Post by mad_ady »

    One complication of having a list of firmwares to download would be choosing the best mirror for the user...

    User avatar
    rooted
    Posts: 8039
    Joined: Fri Dec 19, 2014 9:12 am
    languages_spoken: english
    Location: Gulf of Mexico, US
    Has thanked: 724 times
    Been thanked: 254 times
    Contact:

    Re: Odroid Etcher development thread

    Post by rooted »

    mad_ady wrote:One complication of having a list of firmwares to download would be choosing the best mirror for the user...
    I think simplicity negates the need for speed, although it would be nice.

    mad_ady
    Posts: 8582
    Joined: Wed Jul 15, 2015 5:00 pm
    languages_spoken: english
    ODROIDs: XU4, C1+, C2, C4, N1, N2, H2, Go, Go Advance
    Location: Bucharest, Romania
    Has thanked: 578 times
    Been thanked: 486 times
    Contact:

    Re: Odroid Etcher development thread

    Post by mad_ady »

    Since I made that post, I got to try this etcher build. And it lets you chose your mirror when downloading an image. So that's settled!
    By the way, nice to see you back, we've missed you!

    joshua.yang
    Posts: 453
    Joined: Fri Sep 22, 2017 5:54 pm
    languages_spoken: Korean, English
    ODROIDs: XU4, XU4Q + Cloudshell2, H2, N2
    Has thanked: 28 times
    Been thanked: 113 times
    Contact:

    Re: Odroid Etcher development thread

    Post by joshua.yang »

    Yes, there're four steps to determine the image URL to be downloaded. :)

    These are the screenshots of the Linux version. I'm using KDE for the main Linux development environment.
    20201012_115853.png
    20201012_115853.png (41.63 KiB) Viewed 222 times
    20201012_115858.png
    20201012_115858.png (37.51 KiB) Viewed 222 times
    20201012_115901.png
    20201012_115901.png (38.63 KiB) Viewed 222 times
    20201012_115903.png
    20201012_115903.png (50.69 KiB) Viewed 222 times
    Here're to-dos at this moment.

    - Building it for the Windows system. I'm sill trying on it. I think it almost closed but couldn't produce a result. It is making me a Windows expert.
    - Improving structure for those steps. I have been thinking about how it lists multiple images in multiple places. For now, I decided to list our Android and Ubuntu images first, with somewhat improved structure.
    - I found that the Etcher team is working on implementing the storing downloaded image feature. I think it will be very useful for us as well. If they put the core codes somewhere in the source tree, maybe I can use them.

    joshua.yang
    Posts: 453
    Joined: Fri Sep 22, 2017 5:54 pm
    languages_spoken: Korean, English
    ODROIDs: XU4, XU4Q + Cloudshell2, H2, N2
    Has thanked: 28 times
    Been thanked: 113 times
    Contact:

    Re: Odroid Etcher development thread

    Post by joshua.yang »

    Finally, I was able to build this for Windows. I uploaded this portable execution file to the release page mentioned at the bottom of the original post.
    To use Etcher on Windows properly, have to run this as administrator.

    I didn't know that msys2 is the best assistant for development in Windows. :)
    odroid-etcher-1.5.109.PNG
    odroid-etcher-1.5.109.PNG (24.56 KiB) Viewed 187 times
    odroid-etcher-1.5.109-2.PNG
    odroid-etcher-1.5.109-2.PNG (38.04 KiB) Viewed 187 times
    odroid-etcher-1.5.109-3.PNG
    odroid-etcher-1.5.109-3.PNG (57.26 KiB) Viewed 187 times
    Simple answer for those who wonder why the Windows version couldn't be built on Linux or macOS, even it is based on Electron:
    Some modules have platform dependency. So, this Etcher program have to be built on each OS respectively to generate an execution file.

    Now I can continue to develop this.
    These users thanked the author joshua.yang for the post (total 2):
    tobetter (Tue Oct 13, 2020 4:21 pm) • odroid (Tue Oct 13, 2020 5:07 pm)

    joshua.yang
    Posts: 453
    Joined: Fri Sep 22, 2017 5:54 pm
    languages_spoken: Korean, English
    ODROIDs: XU4, XU4Q + Cloudshell2, H2, N2
    Has thanked: 28 times
    Been thanked: 113 times
    Contact:

    Re: Odroid Etcher development thread

    Post by joshua.yang »

    The Linux AppImage file for ARM64 platform has been uploaded.

    To run the odroidEtcher for ARM64, an additional package might be needed. Try the following command in this case.

    Code: Select all

    sudo apt install zlib1g-dev
    

    User avatar
    rooted
    Posts: 8039
    Joined: Fri Dec 19, 2014 9:12 am
    languages_spoken: english
    Location: Gulf of Mexico, US
    Has thanked: 724 times
    Been thanked: 254 times
    Contact:

    Re: Odroid Etcher development thread

    Post by rooted »

    This will help so many people that download the wrong image and/or use the wrong tool to flash.

    I look forward to the userbase growing :)

    Post Reply

    Return to “General Topics”

    Who is online

    Users browsing this forum: No registered users and 0 guests