etchdroid / etchdroid Goto Github PK
View Code? Open in Web Editor NEWAn application to write OS images to USB drives, on Android, no root required.
Home Page: https://etchdroid.app/
License: GNU General Public License v3.0
An application to write OS images to USB drives, on Android, no root required.
Home Page: https://etchdroid.app/
License: GNU General Public License v3.0
Hello,
I'm a non-Programmer GNU/Linux and Android(z2_plus) User.
I use USBMountr Application frequently, but due to its deprecation, I'm very disappointed.
So, i request you(the reader) to either maintain USBMountr or Integrate it to your Application as it is also a Kotlin(in major and Java in minor) written Application.
USBMountr Git:
https://github.com/9ary/android_usb_msd
USBMountr F-Droid(.org):
https://f-droid.org/en/packages/streetwalrus.usbmountr/
Related:
1: https://github.com/FrozenCow/drivedroid-image
In particular, macOS installation DMGs can't be flashed with the app.
This is a bug in dmg2img
. While it looks like it's working fine, the EFI system partition in the generated raw image is an empty FAT filesystem (empty as in there are no files in it).
Since stock Android ROMs suck, Huawei's stock in particular, it might be useful to also log to /data/data/[pkg]/cache
and add an option to save the logs to /sdcard/download in the error screen.
magnusja/libaums#253 (comment) user can't get logs because of Huawei's bullshit.
For anybody checking this and wondering where have I been. Very busy, I'm handling issues when I get them, certainly no development will happen before summer :(
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
I downloaded the ISO from the website https://sourceforge.net/projects/dban/files/dban/dban-2.3.0/dban-2.3.0_i586.iso/download, wrote with the app but my PC wasn't able to boot from the drive - using a desktop burner DBAN was able to start.
*OnePlus 5T
*Android Pie 9.0 (Build number: ONEPLUS A5010_43_190527)
*USB devices: Ugreen USB-C/USB3.0 to SD-Card adapter (https://www.amazon.com/UGREEN-Reader-Adapter-Portable-Windows/dp/B07D1J88CF), Samsung EVO+ 32Gb SD-Card (Formatted on Android prior to doing anything).
*Turned on OTG Storage in Android settings prior to opening app.
*Gave EtchDroid Storage permissions prior to opening the app.
*ISO is openmediavault for Raspberry Pi.
*Writing method being used is: Write image directly to disk (using Android API).
*After seeing error for the first time, I rebooted and tried everything again before doing anything else.
*Full disclosure, I am rooted (with Magisk) on stock ROM.
I almost had it written onto the USB but then it gave me error can't be written.
Hi after using etch droid when I plug in my usb drive it doesn't show up I mean it doesn't even show the unsupported usb drive notification please do something about it I really need that pendrive I am using a vivo phone
Relevant information:
install.wim
wimlib
(a Java wrapper needs to be written)Once the requirements are met, the app will have to:
install.wim
is too big, split it.Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
i try to build source code using standart and up to date Android Studio
the compile was successfully, when i install the apk file its doesn't ask permission at all, untill i open the EtchDroid, and selecting the .img file and the app is crash.
whats wrong?
dmg2img
could be turned into a library, patched in order to read it's input using Android's Storage API and used through JNI.
This way a DMG image can be provided from any content provider, and doesn't have to be read directly from the filesystem.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Describe the bug
While EtchDroid is initializing the writing, Android remounted the USB automatically after EtchDroid formats it. The write then fails, because after remount Android doesn't recognize the filesystem in the drive and doesn't make it available to apps.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Not that
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
began writing to the usb then stopped writing, and ejected usb. gave this error report. usb will not mount anymore can't format it, it just ejects when connected to the phone. rebooted the phone and used another usb, exact same thing happened. neither usb will mount now, the phone ejects them as soon as i plug them in. Lg k40, android 9, linux mint 20 cinnamon 64 bit iso. Please help if you have time.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
This is actually a bug in libaums, and it affects EtchDroid too. magnusja/libaums#253
If you're having issues such as "app writes ~1GB / for ~5 minutes and then fails with an error such as cannot claim interface
", please add your logs there and make sure you tag me so I see it.
This bug has been mitigated by 3a57910, but it still occurs much less frequently on all devices running Android 9 or newer. It does not appear to be related to the kernel version. Rather, this looks either like some very minor implementation error or a regression in Android.
Relevant code: https://github.com/Depau/libaums/tree/1754ec461e6515086ddd89ca733604870f2a48dd/src/main/java/com/github/mjdev/libaums/usb
On Android Pie, EtchDroid at times reports "Socket operation on non socket" while writing. It usually works for a while after reboot but it sometimes still stops.
I added a warning dialog in 474dbad but if obviously needs fixed properly.
Hello,
I wanted to know on what format the bootable USB key is made? NTFS, FAT32?
I was just quilcky flashing ubuntu to a usb and this is the error it have me "Write failed at block 1914880, 980.4 MB written. Error: java.io.IOException: libusb returned -4 in control transfer" thonit workds after i re formatted the usb and restarted my device so yeh.
I figure lack of permissions is why I can't navigate to the iso file.
When, I use ghost commander/oi file manager/amaze to open the file Etch and vlc are the two options. Etch crashes while starting.
This device is rooted.
java.lang.RuntimeException: Unable to start activity ComponentInfo{eu.depau.etchdroid/eu.depau.etchdroid.activities.UsbDrivePickerActivity}: android.view.InflateException: Binary XML file line #25: Error inflating class TextView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2413)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2471)
at android.app.ActivityThread.access$900(ActivityThread.java:175)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5602)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #25: Error inflating class TextView
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:719)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:631)
at android.view.LayoutInflater.inflate(Native Method)
at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at eu.depau.etchdroid.activities.UsbDrivePickerActivity.onCreate(UsbDrivePickerActivity.kt:103)
at android.app.Activity.performCreate(Activity.java:5451)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2377)
... 12 more
Caused by: android.content.res.Resources$NotFoundException: File res/drawable-night-v8/ic_usb_200dp.xml from drawable resource ID #0x7f080094
at android.content.res.Resources.loadDrawable(Resources.java:3422)
at android.content.res.TypedArray.getDrawable(TypedArray.java:602)
at android.content.res.XResources$XTypedArray.getDrawable(XResources.java:965)
at android.widget.TextView.<init>(TextView.java:1233)
at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:87)
at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:83)
at androidx.appcompat.app.AppCompatViewInflater.createTextView(AppCompatViewInflater.java:177)
at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:102)
at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1266)
at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1316)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:690)
... 26 more
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:986)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:930)
at android.content.res.Resources.loadDrawable(Resources.java:3418)
... 36 more
For quite a few releases EtchDroid has shipped with broken night mode. I disabled it completely due to bug reports, however I would like to bring it back.
This is a call for help for anyone who's experienced in Android GUIs who would like to help, or at least point me in the right direction so I can fix it myself.
(#37)
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Somehow, app/src/main/res/values-pt-rBR/strings.xml was created (in 4e8c0c42) with the content:
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
This also makes impossible to contribute via weblate
EtchDroid crashes selecting any image, and opening the about info with dark theme selected too.
Theses crashes occurs with my tablet, android 4.4.4 kitkat, intel x86
Write failed at block 3309568, 1.7 GB written. Error: java.io.IOException: Unsuccessful Csw status: 1
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
"USB Mountr" is an open source application that allows to present image files as USB devices over the USB port of the Android device, i.e. you can download an image on the mobile device and mount it with "USB Mountr". If connected to other devices over USB, the mobile device appears as a mass storage device with the content of the loaded disk image.
Thus USB Mountr allows booting images from the mobile device over USB.
Integrate the functionality of USB Mountr into EtchDroid, since EtchDroid is most likely used for booting disk images.
Here are the links:
Describe the bug
I tried making a bootable drive of Ubuntu 20.04 from app , it started and said that writing completed and yet the laptop isn't detecting it..
To Reproduce
Steps to reproduce the behavior:
Expected behavior
.
A clear and concise description of what you expected to happen
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
I created a 16GB image from a memory stick, and then tried to write that image as an .img back to the same disk with EtchDroid. It said the disk size was too large - perhaps it is a '>' case, rather than '>=' issue?
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Placeholder issue to track progress on the image download repository, which is a planned feature.
If you're good at UX design, feel free to give me some hints. I suck at it, I'm doing my best :)
Some details for people who would like to help:
Stuff to do:
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
The gradle build system runs the configure step for dmg2img once for each ABI.
It should be patched to do it only once beforehand.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
https://hosted.weblate.org/engage/etchdroid/
You need to register before you can add translations. You will be automatically credited in the commits, but you will have to add yourself to the about page (send a PR for that):
https://github.com/EtchDroid/EtchDroid/blob/develop/app/src/main/res/xml/about.xml
app
, res
, values
, string
, open strings.xml
.Add Locale
, select the languagestrings.xml (night)
.VCS
→ Commit Changes
) and a pull request.metadata
directoryWant to back this issue? Post a bounty on it! We accept bounties via Bountysource.
I'm trying to repair my Windows 10 using the ISO and I don't exactly have a pendrive that connects to my phone, but I do have a charger. Everything is connected but after I choose the ISO file it says no USB drives detected. Does this require a pendrive that connects to my phone then remove and connect to my computer? I have a Galaxy S9+. I have a separate normal pendrive but I can't get access to a computer and all I have is my phone.
Relevant information:
As of now this feature requires a lot of investigation (i.e. I would at least need to be able to follow the InsanelyMac guide and adapt it to use free software only)
After reading the InsanelyMac tutorial and reverse-engineering the Windows/Hackintosh crap, I think I got how the thing works. One needs to:
Install macOS.app
app from the App Store or Hackintosh Computerapp/Contents/SharedSupport/BaseSystem.dmg
to the USB drive (it contains a GPT and an HFS+ filesystem)SharedSupport
from the App Store app to the app in the root of the filesystem.So, requirements list:
dmg2img
works)sgdisk
built for Android - feasible)hfsprogs
with the NDK shouldn't be too hard)
libaums
/Android APIhfsplus
kernel module; a FUSE implementation must be foundThis should be quite doable on GNU/Linux. Let's see what we can do on not-GNU/Linux (Android).
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
Failed each time i tried
Got an error:
Write failed at block 2828288, 1.4 GB written. Error: java.io.IOException: libusb returned -1 in control transfer
Was trying to write Windows10_InsiderPreview_EnterpriseVL_x64_en-us_18363.iso
That is
Windows 10 Enterprise VL Insider Preview - Build 18363 English
64-bit Download
Latest version from F-Droid on Umidigi X (China phone) with Android 9. When I hit enable night mode, the screen goes black, back button does nothing, and trying to switch back to it with the switcher doesn't work (tapping on it does nothing). Force closing it and opening it again also just gets back to black screen and hung state. Have to uninstall and reinstall to start again.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
My USB device is plugged in. But after its done 2%, an error pops up and says my usb might unplugged during the process. Its says its an unknown error or bug i dont know. I am using it on android 10 for an windows recovery.
Hello, I've been trying to write an Ubuntu iso to the flash drive, but it starts to hang on, about, 5-6% of writing, after some time it gets a notification of fail, here's the error log message:
"Write failed at block 268288, 137.4 MB written. Error: java.io.IOException: libusb returned -1 in control transfer"
I've already tried to reconnect the device, but it wouldn't work.
My phone info:
whatever I try to do it stops
Zenfone 6 on Pie
Latest Ubuntu Desktop LTS
You really should stop the notification thing and just let the app open during the process, it will resolve a lot of problems because Android will not shut down the process
The write is complete with latest Slax but useless considering the USB is non bootable so undetectable by BIOS/UEFI (and the problem will logically be the same for any Distro.)
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
"Write failed at block 2449408, 1.3 GB written. Error: java.io.IOException: libusb returned -7 in control transfer"
Describe the bug
Select Ubuntu 20.04 iso -> plug in usbc drive -> accept messages -> gets to at least beyond 50% then fails.
Smartphone (please complete the following information):
Describe the bug
Few days of constant, pretty intense testing. Multiple Linux and *ix distros tested on a new branded USB-C native pen drive.
Distros tested
PuppyLinux - fails
Debian Dog - works
Debian 32 lite - fails
Debian 64 heavy - fails
OpenDarwin - fails
Tinycore - works
MacOS Mojave dmg created via --createinstallmedia to try and use DMG functionality. - can't use because "drive selection" window only gives me external partitions and all give errors on pressing.
Basically all failures come in the form of disconnect errors in the mid 30% range. Whenever they didn't, they were consistently on big files like squashfs bundles.
To Reproduce
Steps to reproduce the behavior:
Smartphone (please complete the following information):
Additional context
Interface at the port gets super hot 🔥
This is a USB-C pendrive and pushes 20MB/s. I don't have a USB-C to female USB so I cannot test other pendrives, but burns work successfully on PC.
This could probably be fixed by giving transfer rate limiting options, and allowing ISO write-in-progress preservation so that writes can be finished if the device disconnects due to heat.
The DMG menu that asks you to pick a drive (for conversion to ISO I assume) tells me it doesn't have the right to read any of the listed options. I renamed the DMGs to ISO and they appear to burn jsut fine but fail after 2GB like the rest of the bigger ones. This is a separate bug entirely
Describe the bug
(Possibly the same as issue 38)
I select Linux iso, select usb, write starts, app closes or CTDs with "check notification" message. It goes a couple percents then nothing, the notification disappears and soon i get "unsupported usb drive" message.
To Reproduce
Steps to reproduce the behavior:
As above:
Expected behavior
Iso written to my usb.
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):
Additional context
In my case, phone is NOT rooted.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Smartphone (please complete the following information):
Additional context
Add any other context about the problem here.
When I am flashing with raspberry full image OS it was struck and become error of
Write failed at block 241664, 123.7 MB written. Error: java.io.IOException: Could not write to device, result == -1 errno 88 Socket operation on non-socket
So please help me
This issue tracks progress on the background worker service refactoring, which should help me implement the planned features more easily by making the app more modular.
Worker
Foreground service
Broadcast sender
Progress activity
As part of the refactoring, a bunch of event DTOs will be introduced. They will be Parcelable so they can be packed into intents and broadcasts.
Processing start DTO content:
Progress event DTO content:
Processing done DTO content:
All this data can be used to display meaningful progress info while making it easy to add new kinds of operations.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
This notification is shown regardless of option chosen. Note that there is no USB inserted in this screenshot, I assume those 2 3GB are system/data/RAM partitions.
I can move this to a new bug report if convenient.
Fantastic reply rate btw 😊
Originally posted by @Gen0 in #54 (comment)
Hello,
I have installed and used EtchDroid on a Lenovo TB-X304F (Android version 7.1.1) and it works great.
I want to install it on 4 other tablets, all are Lenovo TB-X103F (Android version 6.0.1). I am using the same OTG usb reader that works on the TB-X304F, but it will not work on any of the TB-X103F tablets.
These tablets support OTG. The sd card and reader is recognized when I plug it into the TB-X103F. EtchDroid installed without error.
The app opens ok, but when I click "Write raw image or ISO" the app closes and gives me "Unfortunately, EtchDroid has stopped." error.
The tablet software has been updated to latest version. On the TB-X103F tablets I did notice in the play store that there was a "flag/notice" under the Install button that says "This app may not be optimized for your device"
I do not know it this has anything to do with the app closing unexpectedly. Or if there is another tablet related incompatibility. Any help would be greatly appreciated!!
Hi, the screenshot thumbnails in the readme appear for me (because GitHub proxies the files) but lead to links which appear dead to me at least on the network I'm trying to access them from.
May I suggest placing the full size images into the repo and using <img
attributes with width
set instead in the readme? That way they can just link to themselves and GitHub will show the full version on click.
Is your feature request related to a problem? Please describe.
I use a microsd adapter for pc and my phone does not work with otg
Describe the solution you'd like
I wanted the app to work with a sd card without an adapter
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.