[Utility] Odin for Linux !!! (JOdin3 CASUAL) - Android General

I have finally found a working version of Odin for Linux!
JOdin 3 Casual powered by Heimdall
You need at least Java 8, if you don't have it already:
To see the java version type:
Code:
java -version
Aptitude Package Manager:
Code:
sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java9-installer
If necessary change the java environment to the new one(this should be changed automatically by the installer of the new package):
Code:
sudo update-alternatives --config java
JOdin3 Mirrors:
mega.nz
androidfilehost.com
FYI:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
__________________

Thanks I am new to this and not a developer. I have downloaded Jodin3 files but how do I install please? Thanks Hugo

iamhugo said:
Thanks I am new to this and not a developer. I have downloaded Jodin3 files but how do I install please? Thanks Hugo
Click to expand...
Click to collapse
Download jdoin .gz file, decompress it to your directory you want e.g /home/username/programs/jodin/
than right click on the file "JOdin3CASUAL" and open it, if you have installed java 8.

i need take smilock this program will be good?

Okay, so, I have to ask. Why does this program need super user authentication? I don't understand why it needs that level of access if it's just for flashing the ROM on a cellphone. I'm just saying that's unrelated to needing root access on my computer, I think.

Zakku said:
Okay, so, I have to ask. Why does this program need super user authentication? I don't understand why it needs that level of access if it's just for flashing the ROM on a cellphone. I'm just saying that's unrelated to needing root access on my computer, I think.
Click to expand...
Click to collapse
I am not 100% shure but I think it has something to do with access to the usb port... Odin needs permission to use the port for other things than mounting a flash drive... Again im not shure, haven't looked into it much. Since the adb cli also need root permissions I think that odin also really needs higher permissions.

Toby4213 said:
I am not 100% shure but I think it has something to do with access to the usb port... Odin needs permission to use the port for other things than mounting a flash drive... Again im not shure, haven't looked into it much. Since the adb cli also need root permissions I think that odin also really needs higher permissions.
Click to expand...
Click to collapse
IT is quite common, Xiaomi also needs sudo to work
.

Looks like Oracle not supporting Java 9 through PPA
I downloaded files and it looks like "old" version
Can someone explain to me how to get "new" version because I am trying to install firmware on Note9
I just spent 4 hours looking through youtube and the web trying to get the "new" version of jodin.
ty for any help given.

Why odin needs su access
Odin needs su access because the underlying adb shell needs root to execute programs on the device itself, which Odin will need to do in order to perform the update/root procedure. I'm not an advanced android engineer, but I know linux well enough to know running arbitrary code on an attached peripheral is a security hole and should not be run unless one knows what they are doing (hence needing su, since admins are the ones that should know if a program is malicious)

Hi! Can this be installed on Arm64, specifically through a containerized instance of linux? Asking for a friend!
[UPDATE]
OK, so to explain the reasoning behind the question... I've been trying to explain to this dude why this won't work but he refuses to listen because odin is in the linux repositories despite the software description saying something about MRI machines. He now finally after a couple hours understands the difference between that odin and this odin. FINALLY.
He wants to run this odin on his TabS4 through linux on dex in order to flash his note 9... I know... I tried... Maybe someone here can explain it better to him, I have him keeping an eye on these comments.

phoenixbyrd said:
Hi! Can this be installed on Arm64, specifically through a containerized instance of linux? Asking for a friend!
[UPDATE]
OK, so to explain the reasoning behind the question... I've been trying to explain to this dude why this won't work but he refuses to listen because odin is in the linux repositories despite the software description saying something about MRI machines. He now finally after a couple hours understands the difference between that odin and this odin. FINALLY.
He wants to run this odin on his TabS4 through linux on dex in order to flash his note 9... I know... I tried... Maybe someone here can explain it better to him, I have him keeping an eye on these comments.
Click to expand...
Click to collapse
I highly doubt that this would work for the sole reason that odin and for that matter fastboot and adb, need OS level access to the usb controller. DeX in desktop mode would take up the only available usb-c port, this would be a problem since on pc you need to connect the phone directly to the mainboard on the pc instead of using a usb hub. Without the docking station this *might* work but then again I doubt that the linux container has enought OS level permissions to use the usb port in that way. On the bright side, arm64 shouldn't be a problem since java is also available on arm. This means that the odin .jar should be able to run and show the gui but flashing wouldn't be possible but you could give it a try. If odin doesn't work try fastboot on android(not in DEX), links below.
That said there are other ways of getting phone to phone flashing to work. Here are some links:
https://forum.xda-developers.com/showthread.php?t=2586472
https://github.com/kosborn/p2p-adb/
With fastboot you could flash twrp and with that could flash root and custom roms and so on. This nowadays is the preferred method anyway, since you wouldn't depend on a usb cable to f*** up the rom flash.

Using JOdin3 with 'sudo' shows 'java.lang.OutOfMemoryError: Java heap space'
These are recommendations I'd found:
Heap size specifies the amount of dynamic memory to be made available to the JVM code.
For systems with less than 1 GB of physical memory, use a maximum heap size of 256 MB, and an initial heap size of 0 MB.
For systems with 2 GB memory, use a maximum heap size of 768 MB, and an initial heap size of 256 MB.
For larger systems (more than 2GB), use a maximum heap size of 1024 MB, and an initial heap size of 512 MB.
Is that also suitable for JOdin3?
This is the current error I've got:
Exception in thread "Thread-78" java.lang.OutOfMemoryError: Java heap space
at CASUAL.communicationstools.heimdall.odin.OdinFile.extractOdinContents(OdinFile.java:145)
at CASUAL.communicationstools.heimdall.odin.Odin.getHeimdallFileParametersFromOdinFile(Odin.java:50)
at com.casual_dev.jodin.JOdinController.getHeimdallCommandFromOdinPackageList(JOdinController.java:621)
at com.casual_dev.jodin.JOdinController.access$3300(JOdinController.java:54)
at com.casual_dev.jodin.JOdinController$13.run(JOdinController.java:572)
at java.lang.Thread.run(Thread.java:745)
How do I edit the 'heap space' settings for JOdin3 in Linux Mint 19.1?

Toby4213 said:
I have finally found a working version of Odin for Linux!
JOdin 3 Casual powered by Heimdall
You need at least Java 8, if you don't have it already:
To see the java version type:
Code:
java -version
Aptitude Package Manager:
Code:
sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java9-installer
If necessary change the java environment to the new one(this should be changed automatically by the installer of the new package):
Code:
sudo update-alternatives --config java
JOdin3 Mirrors:
mega.nz
androidfilehost.com
FYI:
__________________
Click to expand...
Click to collapse
That's all good and JOdin3 launched, yet while uncompressing the system.img file (about 1.5GB) the following error shows:
[VERBOSE]Heimdall Device detected!
verified file /home/location/Downloads/OudereStockRom-4.4.2kk/T210XXBNH4_T210OXABNH4_HOME/T210XXBNH4_T210OXABNH4_HOME.tar.md5
decompressing file:/tmp/CASUALroot-2019-07-28-20.56.18/boot.img
decompressing file:/tmp/CASUALroot-2019-07-28-20.56.18/recovery.img
decompressing file:/tmp/CASUALroot-2019-07-28-20.56.18/PBL.bin
decompressing file:/tmp/CASUALroot-2019-07-28-20.56.18/param.lfs
decompressing file:/tmp/CASUALroot-2019-07-28-20.56.18/loke_2nd.bin
decompressing file:/tmp/CASUALroot-2019-07-28-20.56.18/loke_pxa988.bin
decompressing file:/tmp/CASUALroot-2019-07-28-20.56.18/system.img
Exception in thread "Thread-31" java.lang.OutOfMemoryError: Java heap space
at CASUAL.communicationstools.heimdall.odin.OdinFile.extractOdinContents(OdinFile.java:145)
at CASUAL.communicationstools.heimdall.odin.Odin.getHeimdallFileParametersFromOdinFile(Odin.java:50)
at com.casual_dev.jodin.JOdinController.getHeimdallCommandFromOdinPackageList(JOdinController.java:621)
at com.casual_dev.jodin.JOdinController.access$3300(JOdinController.java:54)
at com.casual_dev.jodin.JOdinController$13.run(JOdinController.java:572)
at java.lang.Thread.run(Thread.java:745)

xdausernl said:
These are recommendations I'd found:
Heap size specifies the amount of dynamic memory to be made available to the JVM code.
For systems with less than 1 GB of physical memory, use a maximum heap size of 256 MB, and an initial heap size of 0 MB.
For systems with 2 GB memory, use a maximum heap size of 768 MB, and an initial heap size of 256 MB.
For larger systems (more than 2GB), use a maximum heap size of 1024 MB, and an initial heap size of 512 MB.
Is that also suitable for JOdin3?
This is the current error I've got:
Exception in thread "Thread-78" java.lang.OutOfMemoryError: Java heap space
at CASUAL.communicationstools.heimdall.odin.OdinFile.extractOdinContents(OdinFile.java:145)
at CASUAL.communicationstools.heimdall.odin.Odin.getHeimdallFileParametersFromOdinFile(Odin.java:50)
at com.casual_dev.jodin.JOdinController.getHeimdallCommandFromOdinPackageList(JOdinController.java:621)
at com.casual_dev.jodin.JOdinController.access$3300(JOdinController.java:54)
at com.casual_dev.jodin.JOdinController$13.run(JOdinController.java:572)
at java.lang.Thread.run(Thread.java:745)
How do I edit the 'heap space' settings for JOdin3 in Linux Mint 19.1?
Click to expand...
Click to collapse
xdausernl said:
That's all good and JOdin3 launched, yet while uncompressing the system.img file (about 1.5GB) the following error shows:
[VERBOSE]Heimdall Device detected!
verified file /home/location/Downloads/OudereStockRom-4.4.2kk/T210XXBNH4_T210OXABNH4_HOME/T210XXBNH4_T210OXABNH4_HOME.tar.md5
decompressing file:/tmp/CASUALroot-2019-07-28-20.56.18/boot.img
decompressing file:/tmp/CASUALroot-2019-07-28-20.56.18/recovery.img
decompressing file:/tmp/CASUALroot-2019-07-28-20.56.18/PBL.bin
decompressing file:/tmp/CASUALroot-2019-07-28-20.56.18/param.lfs
decompressing file:/tmp/CASUALroot-2019-07-28-20.56.18/loke_2nd.bin
decompressing file:/tmp/CASUALroot-2019-07-28-20.56.18/loke_pxa988.bin
decompressing file:/tmp/CASUALroot-2019-07-28-20.56.18/system.img
Exception in thread "Thread-31" java.lang.OutOfMemoryError: Java heap space
at CASUAL.communicationstools.heimdall.odin.OdinFile.extractOdinContents(OdinFile.java:145)
at CASUAL.communicationstools.heimdall.odin.Odin.getHeimdallFileParametersFromOdinFile(Odin.java:50)
at com.casual_dev.jodin.JOdinController.getHeimdallCommandFromOdinPackageList(JOdinController.java:621)
at com.casual_dev.jodin.JOdinController.access$3300(JOdinController.java:54)
at com.casual_dev.jodin.JOdinController$13.run(JOdinController.java:572)
at java.lang.Thread.run(Thread.java:745)
Click to expand...
Click to collapse
Just f*ing google it...
I dont know whats so hard about reading the error message but ok here you go:
Code:
java -Xms512m -Xmx2g -jar JOdin3CASUAL.jar
Here the link: https://alvinalexander.com/blog/post/java/java-xmx-xms-memory-heap-size-control
If you are wondering what magic that is, its literally the first answer for typing "java increase heap size"

Toby4213 said:
Just f*ing google it...
I dont know whats so hard about reading the error message but ok here you go:
Code:
java -Xms512m -Xmx2g -jar JOdin3CASUAL.jar
Here the link: https://alvinalexander.com/blog/post/java/java-xmx-xms-memory-heap-size-control
If you are wondering what magic that is, its literally the first answer for typing "java increase heap size"
Click to expand...
Click to collapse
Thanks Toby4213, you're right ... and I have been there but didn't know how to use it as this is all new for me so I'm sorry for being a noob.
But I still remain unable to get the job done.
Using your line of code with or without 'sudo' results in this error:
Error: Unable to access jarfile JOdin3CASUAL.jar
Do I need to take some additional steps?

xdausernl said:
Thanks Toby4213, you're right ... and I have been there but didn't know how to use it as this is all new for me so I'm sorry for being a noob.
But I still remain unable to get the job done.
Using your line of code with or without 'sudo' results in this error:
Error: Unable to access jarfile JOdin3CASUAL.jar
Do I need to take some additional steps?
Click to expand...
Click to collapse
Sorry for being rude earlier, had a bad day.
matador84 said:
Thanks I am new to this and not a developer. I have downloaded Jodin3 files but how do I install please?
Click to expand...
Click to collapse
Alright so this is what you both have to do:
1. As stated in my original post make sure you have java installed.
2. Download the JOdin archive file linked in my original post
3. Unpack the archive into a folder. Linux Mint should automatically generate a folder called "JOdin3CASUAL-linux-R991"
4. navigate into this folder using the terminal(you can right click and select open "terminal in this folder" or similar) type: cd ./JOdin3CASUAL-linux-R991
5. once you are in the JOdin3CASUAL-linux-R991 folder type ls into the terminal. You should see 2 folders "app" and "runtime" and a file called "JOdin3CASUAL"
6. Type cd ./app
7. again type ls and now you should see the file "JOdin3CASUAL.jar" among another file and a folder
8. Now you can run the .jar file with the before mentioned command: java -Xms512m -Xmx2g -jar JOdin3CASUAL.jar
I hope everything is clear now. If you have any questions feel free to ask. I absolutely encourage the use of Linux and compared to ****ty Windows 10 it is an absolute dream to work and tinker with.
I would recommend that you start to learn how to use the terminal/console. It is really easy once you know what you are doing. Here is a great link to get started: http://linuxcommand.org/

Toby4213 said:
Sorry for being rude earlier, had a bad day.
Alright so this is what you both have to do:
1. As stated in my original post make sure you have java installed.
2. Download the JOdin archive file linked in my original post
3. Unpack the archive into a folder. Linux Mint should automatically generate a folder called "JOdin3CASUAL-linux-R991"
4. navigate into this folder using the terminal(you can right click and select open "terminal in this folder" or similar) type: cd ./JOdin3CASUAL-linux-R991
5. once you are in the JOdin3CASUAL-linux-R991 folder type ls into the terminal. You should see 2 folders "app" and "runtime" and a file called "JOdin3CASUAL"
6. Type cd ./app
7. again type ls and now you should see the file "JOdin3CASUAL.jar" among another file and a folder
8. Now you can run the .jar file with the before mentioned command: java -Xms512m -Xmx2g -jar JOdin3CASUAL.jar
I hope everything is clear now. If you have any questions feel free to ask. I absolutely encourage the use of Linux and compared to ****ty Windows 10 it is an absolute dream to work and tinker with.
I would recommend that you start to learn how to use the terminal/console. It is really easy once you know what you are doing. Here is a great link to get started: http://linuxcommand.org/
Click to expand...
Click to collapse
Apology accepted .... and I'm busy with trial and error.
Now on Linux Mint 19.1 Heimdall is installed and I have this 'JOdin3CASUAL-r1142-dist' version.
So when I unzipped the compressed file in the default 'downloads' folder, I found a folder with 2 folders and a file inside like you described.
Next I entered the 'app' folder and launched inside the terminal session, pasted the command you provided 'java -Xms512m -Xmx2g -jar JOdin3CASUAL.jar'.
The following error popped up:
Error: Could not find or load main class com.casual_dev.jodin.JOdinMain
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application
So I firstly installed openjdk-11, but the problem still persists.
Did I do something wrong or are steps missing?

xdausernl said:
Apology accepted .... and I'm busy with trial and error.
Now on Linux Mint 19.1 Heimdall is installed and I have this 'JOdin3CASUAL-r1142-dist' version.
So when I unzipped the compressed file in the default 'downloads' folder, I found a folder with 2 folders and a file inside like you described.
Next I entered the 'app' folder and launched inside the terminal session, pasted the command you provided 'java -Xms512m -Xmx2g -jar JOdin3CASUAL.jar'.
The following error popped up:
Error: Could not find or load main class com.casual_dev.jodin.JOdinMain
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application
So I firstly installed openjdk-11, but the problem still persists.
Did I do something wrong or are steps missing?
Click to expand...
Click to collapse
Alright so I finally got it working myself. I haven't used jodin for a long time.
Ok so first make sure that you have JavaFX installed. For that just type sudo apt install openjfx in the terminal.(This might be optional for you, if you get an error containing JavaFX thats the command to fix it)
Since JOdin doesn't quite work when launched via the .jar file the only way to get it to run is to use the binary. Thats the file in the very first folder just called "JOdin3CASUAL".
But since we are not running the jar directly we cant add -Xmx2g as a launch option. In order to get the bigger heap size type export _JAVA_OPTIONS=-Xmx2g in the terminal. You have to run this everytime you close the terminal window. In order to keep this setting permanently add this line to the .profile file in your home directory.
After that go into the folder with app, runtime and JOdin3CASUAL and type: sudo ./JOdin3CASUAL
Hope this works for you.
Cheers

Toby4213 said:
Alright so I finally got it working myself. I haven't used jodin for a long time.
Ok so first make sure that you have JavaFX installed. For that just type sudo apt install openjfx in the terminal.(This might be optional for you, if you get an error containing JavaFX thats the command to fix it)
Since JOdin doesn't quite work when launched via the .jar file the only way to get it to run is to use the binary. Thats the file in the very first folder just called "JOdin3CASUAL".
But since we are not running the jar directly we cant add -Xmx2g as a launch option. In order to get the bigger heap size type export _JAVA_OPTIONS=-Xmx2g in the terminal. You have to run this everytime you close the terminal window. In order to keep this setting permanently add this line to the .profile file in your home directory.
After that go into the folder with app, runtime and JOdin3CASUAL and type: sudo ./JOdin3CASUAL
Hope this works for you.
Cheers
Click to expand...
Click to collapse
I took all the steps you wrote down for me and I got JOdin working, finally..
But there goes something wrong still.
Because ... uploading the stock ROM (1,5GB) should take a while, is not done in just a few minutes.
Uploading all the files should take at least 10 minutes to complete.
Yet, in the end, it does say reset in green though.
And I'm quite sure that something is wrong, because I didn't see the blue status bar on the Samsung tablet during the upload process.
Uploading the extracted files seperately in Heimdall, 10 pieces out of the stock ROM, will take 10 - 15 minutes to complete and the largest of them all is the 'system.img' file which is 1,2 or 1,5GB in size.
With Heimdall I do see the status bar in both the program while uploading and in blue the same status bar on the Samsung tablet.
On the end of the day, I still have a rooted and faulty Android system running on that Samsung tablet.
Somehow the clean factory default is not loaded when the Samsung device reboot after all uploads with Heimdall.
Although the software uploaded is Android 4.4.2 for Tab3 7.0 8GB WiFi, with all the correct changes, date of build and country code.
Is there a final method to clean out the current faulty content of the Samsung Tab3 device?

xdausernl said:
I took all the steps you wrote down for me and I got JOdin working, finally..
But there goes something wrong still.
Because ... uploading the stock ROM (1,5GB) should take a while, is not done in just a few minutes.
Uploading all the files should take at least 10 minutes to complete.
Yet, in the end, it does say reset in green though.
And I'm quite sure that something is wrong, because I didn't see the blue status bar on the Samsung tablet during the upload process.
Uploading the extracted files seperately in Heimdall, 10 pieces out of the stock ROM, will take 10 - 15 minutes to complete and the largest of them all is the 'system.img' file which is 1,2 or 1,5GB in size.
With Heimdall I do see the status bar in both the program while uploading and in blue the same status bar on the Samsung tablet.
On the end of the day, I still have a rooted and faulty Android system running on that Samsung tablet.
Somehow the clean factory default is not loaded when the Samsung device reboot after all uploads with Heimdall.
Although the software uploaded is Android 4.4.2 for Tab3 7.0 8GB WiFi, with all the correct changes, date of build and country code.
Is there a final method to clean out the current faulty content of the Samsung Tab3 device?
Click to expand...
Click to collapse
I'm sorry but I don't know why its not working for you. I don't use odin anymore so I haven't tested the uploading anything to the phone.
I would recommend you to use adb and fastboot. Both are available in the standard repository, just type sudo apt install adb and sudo apt install fastboot. Furthermore it is much saver to do any flashing that way, because it is basically the intended way of debugging a android smartphone/tablet.
Edit: ok I just found out that fastboot does not work with samsung devices
Try to use odin on windows https://samsungodin.com/ or through wine on linux but I highly doubt that this would work.
I am sorry, but at this point I can't help you more. I haven't used a Samsung device in about 4 years and have no idea any more about all the problems and kinks with odin or generall samsung devices.
I wish you the best of luck.

Related

Mount Transformer to Linux Mint - automated.

Hey TF owners,
For anyone looking for a way to mount their Transformer to Linux Mint, I wrote a script to automate the process of configuring your machine to allow you to browse/modify files on the tablet's SSD. This will probably also work on Ubuntu, but I have only so far tested it on Linux Mint.
Download the attached file, and run it.
Edit: Connect your Transformer to your PC before running.
Edit 2: You only need to run this script once - not every time you connect the tablet to your PC.
Hit the thanks button/comment if this worked for you. If not, also comment and I/someone will probably help you out. Also, if anyone tests it on Ubuntu successfully, be sure to comment and let people know.
Note: All configuration files are backed up in the script before changes are made. You can always revert safely.
I'll throw in the ever so popular "use at your own risk" for safe measure.
Cheers.
June 29: Updated script uploaded.
-Cleaner
-Removes an unnecessary comment pushed into fstab in the previous script
-Already executable. Just run it. [Thanks MagnusRagnarok for the idea]
-Packed in 7z from Linux Mint this time as opposed to in zip format from the TF, for [hopefully] universal accessibility.
-md5sum 615f2bfa820ee9ac8ea2c967149a2f03 TransformerMount2.7z
ok so maybe a stupid question, but does my tf need to be rooted to try this? also if you can create an automated script to install a linux distro you think it would be possible for you to create a script to root?? btw any idea on what actually works? can the tegra 2 run with compiz??
0lddirtypaki said:
ok so maybe a stupid question, but does my tf need to be rooted to try this? also if you can create an automated script to install a linux distro you think it would be possible for you to create a script to root?? btw any idea on what actually works? can the tegra 2 run with compiz??
Click to expand...
Click to collapse
I thin you've misunderstood the intention of the OP.
It was to be able to mount your Transformer under Linux and be able to read/write the files stored on the Transformer's internal storage. Not to actually install a full blown Linux Distro on your Transformer.
Wow, talk about reading before posting.
Sent from my Transformer TF101 using XDA Premium App
only on linux mint--
does it work on ubuntu?
Yes, this works perfectly on ubuntu
I have a problem extracting the zip file with Ubuntu 10.10
Do I need an alternate unzip program? If so please specify. I do not run MS products.
Error:
7-Zip 9.04 beta Copyright (c) 1999-2009 Igor Pavlov 2009-05-30
p7zip Version 9.04 (locale=en_CA.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)
Processing archive: /tmp/TransformerMount.zip
Extracting TransformerMount.bash Unsupported Method
Sub items Errors: 1
I can extract it with 7zip on Windows on the work computer, and with both Explorer and AndroZip on the TF without issue.
Sent from my Milestone using XDA App
Acer Mod of the script
I'm trying to edit the file for use with an Acer Iconia. So far everything works but the modifying of the android.rules file. You see, it doesn't exist on my laptop (mint 11) in the directory the script looks at nor is there an android.rules file in lib/udev/rules.d. While I could probably write a rules file and make it work, I'd like to know where it comes from and maybe discover why it does not exist on my system. Anyone have any ideas? Also - rootblock - if I can get this to work would you object to my posting it in the Iconia forum? Thanks!
UPDATE:
Creating the file worked fine. Any reason to edit the script to check if the file exists and create it if it doe not or am I the exception to the rule? i.e. Would most users have it there in the first place?
3DSammy said:
I have a problem extracting the zip file with Ubuntu 10.10
Do I need an alternate unzip program? If so please specify. I do not run MS products.
Error:
7-Zip 9.04 beta Copyright (c) 1999-2009 Igor Pavlov 2009-05-30
p7zip Version 9.04 (locale=en_CA.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)
Processing archive: /tmp/TransformerMount.zip
Extracting TransformerMount.bash Unsupported Method
Sub items Errors: 1
Click to expand...
Click to collapse
Probably a bad download. And you could also try file-roller to open it (I think its installed by default, it is on Debian/Gentoo)
Tortel1210 said:
Probably a bad download
Click to expand...
Click to collapse
I installed the "p7zip" deb, re-downloaded a few times with Firefox and even tried wget. Each time I get the same error result. I was more interested in examining the bash file as I do not have a TF yet. Oh well not a big deal.
3DSammy said:
I have a problem extracting the zip file with Ubuntu 10.10
Do I need an alternate unzip program? If so please specify. I do not run MS products.
Error:
7-Zip 9.04 beta Copyright (c) 1999-2009 Igor Pavlov 2009-05-30
p7zip Version 9.04 (locale=en_CA.UTF-8,Utf16=on,HugeFiles=on,4 CPUs)
Processing archive: /tmp/TransformerMount.zip
Extracting TransformerMount.bash Unsupported Method
Sub items Errors: 1
Click to expand...
Click to collapse
Had the same issue with Archive manager - Xarchiver worked, however.
ubuntu & Asus transformer
If anyone having a problem with mtpfs on ubuntu especially version 10.4 ( segfault problem which prevents from mounting the TF), use newer version of mtpfs in the link below.
http://pkgs.org/download/debian-wheezy/debian-main-i386/mtpfs_0.9-3_i386.deb.html.
1. install the package
ubuntu> sudo dpkg -i mtpfs_0.9-3_i386.deb
2. Then run rootblock script if you did not do it.
just wondering, would this have any effect for the adb connections ? My ubuntu cannot find the transformer from adb but could mount it just find
Try This....
anyone having issues try one of the following extensions.. tar.gz would be my first suggestion for those using ubuntu like myself. i also took the liberty of changing the perms to exe on the script before i compressed all these so now all you need to do is
1.download the extension pack i upped
(find the one that works for you)
2.open file
3.execute
*i also tossed the edited script in the pack for anyone who cannot get it to open.
fyi; ark also worked for me to access the file from the op, while my 7z kept erroring out.
​
ari197 said:
just wondering, would this have any effect for the adb connections ? My ubuntu cannot find the transformer from adb but could mount it just find
Click to expand...
Click to collapse
I can access the TF with adb just fine. Just cd to the android-sdk-linux_x86/platform-tools folder containing adb and run:
Code:
./adb devices
or
Code:
./adb shell
if that folder isn't already configured into your path. Works for me anyway.
I've been looking at this and trying to do it with udev instead, since I want the dynamic creation of the folder in /media. Mounting works great, but removing doesn't. So anyone with knowledge of udev rules is more than welcome to give me some hints. Here's the rules so far:
Code:
See below...
The command run when removing works if I enter it as root in a terminal, so it seems to me that it's either not run when removing or it's failing somehow when run from udev. Edit: I've figured out that it's not run at all. Looking into it...
Also, hint for those who follow the manual instructions you could also get the necessary permissions through Users and Groups instead of editing the groups file. You still have to edit /etc/fuse.conf to allow other though.
These are instructions for automatically mounting and unmounting your pad (not keyboard!). This will create (when plugged in and detected) and remove (when unplugged) the Transformer directory under /media, so that the experience is more in line with other USB devices.
For those of you who already have run the script in the first post, you need to do some cleanup. Edit /etc/fstab and /etc/udev/rules.d/51-android.rules and remove the lines which the script created. Which lines in fstab should be straight forward, and in 51-android.rules look for rows that either have no idVendor set or has it set to 0b05. If unsure, post here FIRST before making changes!
This is the content of /etc/udev/rules.d/51-android.rules:
Code:
ACTION=="add", SUBSYSTEM=="usb", ENV{ID_MODEL}=="MTP", ENV{ID_MODEL_ID}=="4e0f", MODE="0666", RUN+="/bin/bash -c 'mkdir -p /media/Transformer && mtpfs /media/Transformer -o allow_other'"
ACTION=="remove", SUBSYSTEM=="usb", ENV{ID_MODEL}=="MTP", ENV{ID_MODEL_ID}=="4e0f", RUN+="/bin/bash -c 'fusermount -u /media/Transformer && rmdir /media/Transformer'"
If you have other Android devices you may or may not have other lines here too. If so, just add these two lines to the end of the file. My Transformer is bought in Sweden so if things don't work for you, maybe there's another idProduct/ID_MODEL_ID out there? Check with lsusb when your pad is plugged in, the vendor (xxxx) and product (yyyy) ID is [xxxx:yyyy] on the line that says ASUSTek Computer Inc. For my pad, the productID/ID_MODEL_ID is 4e0f.
You need to uncomment allow_other in /etc/fuse.conf and add your user to the fuse group (preferably via Users and Groups) apart from adding the above two lines to your 51-android.rules:
Start Users and Groups, choose your user and press Advanced settings. Under the tab User Privileges you should mark Mount user-space filesystems (FUSE).
Open and edit /etc/fuse.conf (see below on how to use nano). Uncomment user_allow_other in the end (remove the # at the beginning of the line).
After this you should reboot your computer. This will have two effects: The udev rules will be reloaded so the changes apply, and your user will have the necessary privileges granted.
Now you can try to plug in your pad and see if it shows up under /media. Give it some time, it takes a while. (Approx. 30 seconds for me.)
A note on editing files from the terminal window
When editing files from the terminal I always use nano. The command is (if opening a file that requires super user rights):
sudo nano [path-to-file]
The editing is straightforward, works just like any other text editor. When you're finished, press Ctrl+X (Exit) and answer the question with Y (if your system is in english that is) if you want to overwrite the earlier file.
Problems?
If you have ADB activated you could try rmbell's udev rules. This removes the match ID_MODEL == MTP and changes the productID to 4e1f. The productID changes depending on what functions are activated, as discussed in this post by ritterkeks. If you want the pad to be mounted with and without ADB activated, you can add all four rules.
If the udev rules doesn't work, run this command in the terminal and see what happens when you plug the pad in:
udevadm monitor --property --udev
Exit with Ctrl+C. Are the values the same as in the udev rules you're using? If not, change accordingly or deactivate some function which has made the productID change.
"unable to mount location" error
I'm getting an error that reads "Unable to mount location"
Then:
fusermount: failed to open /etc/fuse.conf: Permission denied
fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
I'm a monkey in a spaceship when it comes to some of this stuff Any idea what I should do (in layman's terms)?
All help appreciated!
I'm not sure if your problem is from the script in the first post or my instructions. But as the message says you need to edit fuse.conf. Also, you need to be a member of the FUSE group.
Open and edit fuse.conf with this command in a terminal:
sudo nano /etc/fuse.conf
Uncomment (remove the #) user_allow_other in the end, exit with Ctrl+X and save with Y.
Start Users and Groups, choose your user and press Advanced settings. Under the tab User Privileges you should mark Mount user-space filesystems (FUSE). I believe that you need to reboot after this change, otherwise the necessary privileges hasn't kicked in.
Try it and let me know

[Q] How can I root my Infuse without a computer or through linux mint 11

My computer has very low ram, as a result anything related to flash or anything having high memory requirement crashes and usually freezes ie resulting in a restart
So I would like to keep the computer out of the equation
I am wondering if one can root a phone without a computer
This may seem like an odd request/question but I am in a terrible place, my stuff was stolen, I am even more broke than before.
Thanks for any help
You can try z4root.apk but it may or may not work....really need a computer with superoneclick
Sent from my SAMSUNG-SGH-I997 using xda premium
use virtualbox to run Windows and use superoneclick using the virtual Windows.
here's the website with info for getting it going and downloads
https://www.virtualbox.org/
good luck
hollywood528 said:
use virtualbox to run Windows and use superoneclick using the virtual Windows.
here's the website with info for getting it going and downloads
https://www.virtualbox.org/
good luck
Click to expand...
Click to collapse
his computer has low ram. running a vm will make that situation much much worse!
look in the dev section for a root/unlock tool from lost1 it includes adb, ragagainst the cage binary and a batch script for windows and shell scripts for linux and mac. just extract the package to a convienient place like c:\ in windows or your home or root directory in linux then using comand line cd into the extracted folder and run the approraite script.
I can do this within linux ?
GreenAce92 said:
I can do this within linux ?
Click to expand...
Click to collapse
yes, there are different scripts for different os's the root.sh is the one for Linux. under the assumption you are a Linux newb to execute a ascription you may need to change permissions to executable first. you can usually set this in gnome or whatever window manager you like. or with chmod
chmod 0755 root.sh
then to execute the script you just type
./root.sh
this is all assuming you are within the folder that contains the script.
it appears all it does it move a binary to /data/local wait a few seconds and then copy su to /system/bin. you could easily do that through adb if you are familiar with it.
So uhh
Could you dumb this down even further, I am a complete linux newb as you say and I have just installed Linux Mint 11 32bit on an old HD of mine so Linux is here to stay, I'm interested in learning it too
But anyways... what can you suggest so that I can catch up / understand what you have just told me to do?
Thanks for this
GreenAce92 said:
So uhh
Could you dumb this down even further, I am a complete linux newb as you say and I have just installed Linux Mint 11 32bit on an old HD of mine so Linux is here to stay, I'm interested in learning it too
But anyways... what can you suggest so that I can catch up / understand what you have just told me to do?
Thanks for this
Click to expand...
Click to collapse
first download the root/unlock package from this thread
forum.xda-developers.com/showthread.php?t=1081072
unzip the package and find the root.sh file.
ok, Linux sets file permissions that tell the system who can access the file and how. on Ubuntu new files are set as non executable by default. mint being based on Ubuntu is the same. the permissions are set with a 4 digit number, the first number is special permissions and you wont use that very often. the second digit is for the user that owns the file, the 3rd is for the group and the 4th is for the others.
if you use command line the chmod command will set these permissions. 7 designates read write and executable, 6 is read write, 5 is read and executable, 4 is read only.
but you can also set a file as executable in gnome. right click the icon and choose properties. there should be a box that says "is executable" or "alow execution of file as program" or something. check that box for the "script.sh" file.
once you do that right click in the widow of the folder that the root.sh script is in and choose "open in terminal" or "open window terminal here" this will open a command line window open to that directory.
make sure debugging is enabled in settings>applications on the phone and connect with the data cable. don't mount the SD card.
now type ./root.sh
that should start the script and root the phone. reboot when it's done.
Excellent
Many thanks to you good sir, I shall report back when I have tried this
Try looking here, works on Windows, Mac, and Linux: http://forum.xda-developers.com/showthread.php?t=1081072
GreenAce92 said:
Excellent
Many thanks to you good sir, I shall report back when I have tried this
Click to expand...
Click to collapse
oh forgot, you might need to set adb as executable as well. same thing. right click and go to properties>permissions>allow execution... or whatever it says in gnome. (I use kde and occasionally xfce for low performance hardware, but mostly kde)
Use heimdall to flash a custom kernel

[GUIDE] Ubuntu in a chroot on the Galaxy S4 - now with Native Booting!

Notice (4/16/14): I'm no longer here. I've said "goodbye" to AT&T and their locked bootloader schemes. I'm voting with my wallet - I've sold my I337 and switched to T-Mobile. My apologies to the community, but you're now on your own here.
Intro/About/Requirements:
This thread started as a guide for people who wanted to run Ubuntu in a chroot, and then connecting to it locally with a VNC client. This method has been used countless times on other devices, with many thanks to @zacthespack and his his group, LinuxonAndroid. Unfortunately, this method did not work out-of-the-box on my device, so I tweaked things to work with the Galaxy S4 and posted them here in this thread.
However, the most people immediately noticed that with this method the performance is not great, and some applications can't work in a headless environment. With a comment made by zackthespack, I began researching what it would take to get Ubuntu to write directly to the device's framebuffer. After a few months, I not only managed to accomplish this, but also developed a way to get the Galaxy S4 to boot directly into Ubuntu. As far as I have seen, both of these are a "first" for this handset.
All of these methods require root. The VNC Chroot does not require a custom kernel, but the other methods require a custom-built kernel. For the I337 (AT&T) handset, this can pose a problem if you have bootloaders that are MF3+. If you're using MDB/MDL bootloaders still, you shouldn't have a problem with this and you can Loki the custom kernel without issue.
Depending on your ROM and/or Kernel, you may also need a new version of BusyBox installed, even for the VNC method. You'll find a few apps on the Play Store that can do this for you. Beware that some of them are not easily reversible (such as TinyBox), so if you're stuck on MF3 with no way to create/restore a nandroid/system backup, you should be careful.
Click to expand...
Click to collapse
Disclaimers:
Following this guide and/or flashing anything I've provided to your device is your own responsibility. If something breaks, you break your device, or something explodes, I can't be held liable (I'll help correct any situations you may put yourself in, however). I claim no rights to any proprietary software or intellectual property included in this post or the packages contained herein. By using any of this software, you agree to whatever licenses/agreements that the creators may have included with their software. If you use any of this stuff in your own project, please provide credit where credit is due. For example, if you take my u.sh script and adapt it to some new device (i.e. Galaxy S 5), please at least mention where it came from.
Click to expand...
Click to collapse
VNC Chroot Method (original):
This method is loosely based on this thread for the Galaxy S3 and the ubuntu.sh script there. It didn't work for the S4, but I've made several tweaks to it, simplifying it a ton, and otherwise getting it to work perfectly on my S4. I've tried this using my AT&T Galaxy S4 (SGH-I337) on both the MDL build and the MF3 build - both seem to work great.
Instructions:
Download the Ubuntu 13.04 Small v1 image here.
Create a folder on your sdcard labeled "ubuntu" by whatever means you want to.
Extract the ubuntu.img from your downloaded zip into this folder.
Download my version of the ubuntu.sh and place it on the root of your sdcard.
Open the script in a text editor and read through it. Never run a script like this on your android without first knowing what it does - especially when the author is telling you that you need root. If you're happy with it, proceed.
Install an terminal emulator of your choice. I personally used this one, and technically an adb shell will work too (but you'll be tethered to your PC...).
Install a VNC Client of your choice. I personally used this one, but there might be better/faster ones out there.
Open the terminal emulator, and execute the following commands:
Code:
su
sh /sdcard/ubuntu.sh
If you see a bunch of errors and get dumped back at the "[email protected]:/ # " prompt, then something went wrong. Report your errors in this thread. Remember, this requires root (and the "su" command to get there, of course).
You'll be prompted for some setup parameters, which you can save at the end for later. Just answer each question and press Enter after each:
You'll need to provide a new password for the "ubuntu" user. A simple passwords like "ubuntu" works, unless you want some security.
Start VNC server? (y/n) - always choose "y". We need this to interact with the device.
SSH server? Optional. If you use it, you should enable it.
Screen size: Enter whatever you want. I personally used 960x540 (one quarter of the S4's screen size) so that I could actually interact with things using the touch screen.
Save settings as defaults? - You might not want to do this until you have a screen size that works best for you.
Once you see the prompt, "[email protected]:~# " - you're in! You now have Ubuntu running in a chroot. As the on-screen instructions suggest, type "exit" at this prompt to end the chroot and Ubuntu. It is recommended to do this when you are done so that the ubuntu.sh script can clean up after itself (unmounting things, etc.).
Leave your terminal emulator app running! Use your Home button to return home and leave it running.
Open you VNC client and connect with the following settings:
Nickname: (whatever you want)
Password: ubuntu
Address: localhost
Port: 5900 (default)
Username: (leave blank)
Color Format: 24-bit color (you can use lower if you want better performance)
Connect. For the VNC app I used, I had to zoom in to make the screen fit correctly (use pinch-to-zoom, and then use the "+" button on-screen). Also, you can play around with the Input Mode some if you wish.
Enjoy Ubuntu!
As you can see, it's not terribly complicated to get this up and running. Once you have set it up the first time, it's a lot smoother from then on out. The script is designed to allow you to use the external SDCard if you wish. Just use place the ubuntu.img in an "ubuntu" folder on your external SDCard, drop the ubuntu.sh on the root of the external SDCard, and use "sh /mnt/extSdCard/ubuntu.sh" instead (don't forget "su"!).
Click to expand...
Click to collapse
Freedreno Chroot Method (NEW):
This long-winded tutorial will explain how you can setup Xubuntu-desktop in a chroot. Before attempting any of this, you should read through all the steps and be sure you're comfortable performing the steps needed.
This requires roughly 2GB free space on your /data partition - the actual finished install is about 1.4GB, but it will require some extra space while it installs Freedreno and other components. HINT: Keep in mind that your /data partition is shared with your internal sdcard (your internal sdcard gets whatever space is leftover at the end of the /data partition), so you can get an idea how much free space you have by looking at how much space your internal sdcard has available.
Instructions:
Step 0 (option A) - Build Custom Kernel
You will need to install a custom kernel that has specific options enabled in the configuration, along with a few patched files in the source code. This list of changes is based on a delta from the stock I337 MF3 kernel, available at http://opensource.samsung.com/. You should be able to apply these changes to "any" kernel that you can build from source, so this documentation may apply to devices other than the I337.
Kernel Mods:
Required config changes:
Code:
CONFIG_DEVTMPFS=y
# CONFIG_DEVTMPFS_MOUNT is not set
CONFIG_DRM=y
CONFIG_MSM_KGSL_DRM=y
# CONFIG_KGSL_PER_PROCESS_PAGE_TABLE is not set
# CONFIG_MSM_KGSL_PAGE_TABLE_COUNT is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_MSM_TRIPLE_BUFFER=y
CONFIG_FB_MSM_DEFAULT_DEPTH_BGRA8888=y
# CONFIG_FB_MSM_DEFAULT_DEPTH_RGBA8888 is not set
Fix for Wi-Fi problems when using MF3 kernel on UCUAMDL bootloaders (i.e. "unadulterated" or "neutered"):
Code:
CONFIG_PROC_AVC=y
Required Patches to kernel source code:
https://github.com/freedreno/kernel-msm/commit/4c0281745f8c85707be88acebb557aca0b8f1dba
https://github.com/freedreno/kernel-msm/commit/228f65d48d4855d903e3b4642179dfa14eedd040
https://github.com/freedreno/kernel-msm/commit/54b510b2e6bccf08fdf3a8ad00a62b27c2f8c1e6
Additional changes required for sudo to work (added 10-25-13 in v4):
Code:
# Samsung Rooting Restriction Feature
#
# CONFIG_SEC_RESTRICT_ROOTING is not set
# CONFIG_SEC_RESTRICT_SETUID is not set
# CONFIG_SEC_RESTRICT_FORK is not set
# CONFIG_SEC_RESTRICT_ROOTING_LOG is not set
Additional changes to the initramfs required for sudo to work (added 10-25-13 in v4):
Edit fstab.qcom, remove the nosuid, part of the line that references userdata.
Step 0 (option B) - Download Custom Kernel Instead
Don't want to compile your own kernel from source? If you have the I337, you can use mine! As mentioned above, this kernel is based on the original MF3 source from Samsung, with the modifications listed above. If you are stuck with MF3+ bootloaders on your I337, you will not be able to install this kernel directly (at the time of this writing). MDB/MDL bootloaders are fine, but you will need to flash loki-doki afterwards (this kernel is not pre-lokified!). This kernel might work with other similar variants (such as the M919), but I haven't tested this on anything except my own I337 daily-driver. YMMV. If you run into issues, you might need to wipe cache/dalvik. This will likely only work with TouchWiz-based ROMs (I have not tried it with AOSP). Here's some downloads for you:
mf3-freedreno-android-boot-v4.zip - CWM/TWRP flashable zip.
- Boots to android, allows Ubuntu with Freedreno to work in a chroot.
- Compiled with the original (slightly modified) MF3 initramfs and "mf3-freedreno-minimum-zImage-v4" (below).
- Includes minimal configuration changes described above, plus the WiFi fix part.
mf3-freedreno-minimum-zImage-v4 - Just the MF3 kernel itself with minimal changes to get the chroot to work.
mf3-freedreno-minimum-config-v4 - Yeah, that's right. I'm providing the .config files I used for all of this.
Step 0.5 - Install the Kernel
Before you can start up the chroot properly, you'll need to have the custom kernel installed. You don't want the "ubuntu-boot" version right now, because you don't have an Ubuntu install to boot to. If you're using my pre-built kernel, first flash mf3-freedreno-android-boot-v4.zip and then flash loki-doki.zip.
Step 1 - Companion Files
Download this file: mf3-freedreno-companions-v4.zip - Non-flashable zip. This includes the script files, which you should promptly read through both u.sh and launch.sh. It is always good practice to read through any script file you get from the internet, making sure it's doing what you would expect it to. Also check out CREDITS.txt, which includes information about the included upstart-dummy.tar.gz and start-stop-daemon files.
Extract the companion files .zip and place its contents on the root of your internal sdcard (/sdcard/). Don't extract the contents of upstart-dummy.tar.gz. This is your $src directory. You can change this if you wish (see script for details).
Step 2 - Install/Configure Ubuntu
Install an terminal emulator of your choice. I personally used this one, and technically an adb shell will work too (but you'll be tethered to your PC...). At the console/shell, type the following two commands:
Code:
su
sh /sdcard/u.sh bash
The script will download Ubuntu Core and install Freedreno, upstart-dummy, and lubuntu-desktop. Total download size will be around 425MB. Total install time will vary, but count on it taking at least 45 minutes to install and configure everything. At the very end, you'll be prompted to enter a password for the new user "ubuntu".
Step 2.5 - Exit ubuntu
When you see the message "Type 'exit' (without quotes) to leave ubuntu," the install is complete. You'll notice that your prompt changed to "[email protected]". This is the easiest way to confirm that you're actually inside the ubuntu chroot. Type exit and hit Enter to get back to android.
Step 3 - Fire it up!
From now on, you can start Ubuntu using u.sh in any of these three ways:
sh /sdcard/u.sh - This will make initial prep, STOP android (black screen), launch the chroot, install/configure if needed, and will execute "service lightdm start". This will give you the greeter and you can login as "ubuntu". If the lightdm service stops for whatever reason (see info about the home button below), the script will continue by exiting the chroot and rebooting your device.
[*]sh /sdcard/u.sh bash - Same as above, except that it will not stop android, not startx (will give bash shell instead), and will not reboot your phone when you exit the shell.
[*]sh /sdcard/u.sh destroy - This will do exactly as it sounds - destroy your ubuntu installation. This will unmount your /sdcard from ubuntu (if still mounted somehow) and then recursively delete your ubuntu installation. If you change the source or destination directories in the main script, you should be careful deleting things.
NOTE: Remember to ALWAYS run any these from a root shell, whether via terminal emulator, via adb shell, or using SManager (or similar).
Step 4 - Note the Home Button and Touchpad
Take note that any time you have X running via lightdm, the hardware Home button will kill the X server. This is intentional, and will exit the chroot and reboot your phone. You'll also notice that currently, the touchscreen acts like a giant touchpad (like on a laptop). Use two fingers to right-click or scroll. Direct touchscreen input is not available at this time due to a segmentation fault that evdev causes when used on this device in a chroot.
Step 5 - (optional) Make Changes and Do it All Over Again
Customize the crap out of it! Edit my u.sh, launch.sh or xorg.conf and have fun. If you find great improvements, please post them in this thread! In future revisions, I might include them. Things should be well documented within the scripts. You might even change the bit at the end of launch.sh that starts "service lightdm start&" instead of "startx" - this would give you the greeter and let you login as the user "ubuntu" if you want. Also note that those three files are the only ones that must remain in your $src directory if you wish to continue to run this as a chroot. By the way, booting directly to Ubuntu after it is installed does not require any of the companion files anymore.
Click to expand...
Click to collapse
Native Boot Method (NEW):
This part of the tutorial is for those who wish to take things a step further and boot your device directly into Xubuntu-desktop. This will require that you setup the Freedreno chroot properly, and then you'll be installing a new boot.img. While this doesn't replace your /system partition, you won't be able to boot directly into Android while you have this boot.img installed.
Instructions:
Step 1 - Install Ubuntu
Basically, you need to perform all the steps for the Freedreno Chroot method, and get that up and running first. All you're doing here is swapping out your kernel.
Step 2 (option A) - Build Custom Kernel
You'll need all of the kernel customizations included in the freedreno chroot method, plus these listed below:
NOTE: You will need some proprietary blobs, which can be found on your device in the /etc/firmware directory.
Config changes to enable booting directly into Ubuntu (beyond replacing the initramfs...):
Code:
CONFIG_EXTRA_FIRMWARE_="audience-es325-fw.bin a300_pm4.fw a300_pfp.fw vidc_1080p.fw"
CONFIG_CMDLINE="console=tty0 fbcon=vc:0-3"
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
CONFIG_CMDLINE_EXTEND=y
# CONFIG_CMDLINE_FORCE is not set
Optional config changes to enable the framebuffer console when booting directly into Ubuntu - useful for debugging.
Code:
CONFIG_VT_CONSOLE=y
CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
CONFIG_FRAMEBUFFER_CONSOLE=m
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set
NOTE: You will need to grab some .ko files that are created, which must be loaded in the following order:
Code:
insmod /ko/font.ko
insmod /ko/softcursor.ko
insmod /ko/bitblit.ko
insmod /ko/fbcon.ko
I recommend that you include these four lines into the init script that is included in the ubuntu ramdisk. These can go pretty much anywhere after the ". /scripts/functions" part, but before it calls out to run-init. Also, don't forget to drop those .ko files into a new /ko directory in the initramfs. If you want to load these with modprobe, I'll leave that up to you (good luck).
Replace the entire ramdisk/initramfs:
At this time, I'm not going to provide instructions on how to do this. You'll need this mako boot.img straight from Ubuntu, repacked with the zImage created here. For what it's worth, the re-pack tool I'm using includes --cmdline 'androidboot.hardware=qcom user_debug=31 zcache', but I'm not sure if that's needed (especially considering our kernel seems to use qcache?). Anyways, good luck.
Step 2 (option B) - Download Custom Kernel Instead
Again, if you don't want to compile your own kernel from source, you can download mine and use it. The same warnings and restrictions apply as they do in Step 0 (option B) of the Freedreno Chroot method. And here's your downloads:
mf3-freedreno-ubuntu-boot-v4.zip - CWM/TWRP flashable zip.
- Boots to Ubuntu directly, but only if your Ubuntu install is located at /data/ubuntu (Default).
- Compiled with the original MF3 initramfs and "mf3-freedreno-everything-zImage-v4" (below).
- Includes all configuration changes described above.
mf3-freedreno-everything-zImage-v4 - Just the MF3 kernel itself with all changes for both chroot and direct booting to Ubuntu.
mf3-freedreno-everything-config-v4 - Yet again, I'm providing my complete .config file for this.
Step 3 - Install the Kernel
Here's the easy part. Flash your completed boot.img, flash loki-doki, and reboot. If you're using my pre-built kernel, first flash mf3-freedreno-ubuntu-boot-v4.zip and then flash loki-doki.zip.
Click to expand...
Click to collapse
Flashable Zip Method (NEWEST):
It's finally finished: a flashable .zip that you can use to dump a pre-built rootfs onto your data partition. This will still require that you flash one of the two custom kernels (whether for chroot or native booting), but it will allow you to skip the whole build/install process.
ubuntu-install-v4.zip - CWM/TWRP flashable .zip. Requires approx 2GB free space on your data partition during install, and the final install size is approximately 1.3GB (may want more free space to add your own programs/etc.). Output folder is /data/ubuntu. This can be changed in u.sh, but heed the warnings within!
Instructions:
Instructions for Chroot-style Ubuntu:
Download the "companions" .zip and extract its contents to the root of /sdcard.
Download the "ubuntu-install" .zip to your internal or external SDCard.
Download the "mf3-freedreno-android-boot" .zip to your internal or external SDCard.
Make a nandroid backup of your phone, and store it on an external SDCard or your computer. Always a good idea to have this.
Install the "ubuntu-install" and "mf3-freedreno-android-boot" .zip files, followed by loki-doki.zip if you need that for your device (e.g. I337).
Restart and resume with Step3 of the Freedreno Chroot Method.
Instructions for Native Boot Ubuntu:
Download the "ubuntu-install" .zip to your internal or external SDCard.
Download the "mf3-freedreno-ubuntu-boot" .zip to your internal or external SDCard.
Install the "ubuntu-install" and "mf3-freedreno-ubuntu-boot" .zip files, followed by loki-doki.zip if you need that for your device (e.g. I337).
Restart and let it start into Ubuntu!
NOTE: The username is "ubuntu" and the password is also "ubuntu" - it is highly recommended that you change this ASAP.
Click to expand...
Click to collapse
Known Issues/Bugs:
Below is the list of known issues that I can think of, from the top of my head. This will probably be updated later as everyone points stuff out. Some issues only apply to some of the methods, so the applicable methods are listed in parenthesis after each.
Sound has not been tested (freedreno/native)
3D graphics or OpenGL support has not been tested (all)
Some applications don't work in a headless environment (vnc)
Some applications don't like to run as root, such as chromium (freedreno) lightdm is working in companions-v3, so no need to login as root anymore
Onboard is not working (freedreno/native) fixed in companions-v3
sudo does not work (all) fixed in kernel-v4 for freedreno/native, but problem remains for (vnc) if you are not using a custom kernel
A few kernel Oops's (native)
Shutdown menu doesn't always work (freedreno/native) fixed partly in companions-v4 - proper locale settings seem to allow the shutdown menu to work once you are logged in
Performance issues due to VNC connection (vnc)
No 3G/WiFi/network connection that I'm aware of... (native)
No control over 3G/WiFi/network/bluetooth yet (all)
Xorg's normal touchscreen driver evdev causes segmentation faults (freedreno/native)
Working on a possibly trying to get fbdev to work natively without Freedreno for simplicity (freedreno/native)
Anything you'd normally expect from a phone does not exist (freedreno/native)
Screen rotation (with or without accelerometer) doesn't work yet (freedreno/native)
HDMI/MHL output remains untested at this time. I got it to briefly work once, but I need to revisit this. (freedreno/native)
Many more to come, I'm sure...
Click to expand...
Click to collapse
To-Do:
Add mirrors to the download links.
Add a CWM/TWRP-flashable .zip that just dumps a clean Ubuntu install onto your data partition. This should be easy enough. completed!
Fix some of the bugs above.
Simplify the launch.sh and xorg.conf files. The u.sh script seems pretty solid.
Develop a method that works with only fbdev. This method might eliminate the possibility of 3D acceleration, but should enable screen rotation and other nifty things.
Possibly look into getting kexec (or similar) to work on the Galaxy S4 to offer a dual-boot option. Low priority at the moment, because flashing a kernel back and forth is pretty easy stuff.
Get Ubuntu Touch to work. This would eliminate a lot of bugs. I mostly need to just buckle-down and build CM10.1 from source, and then slowly visit each step of the Ubuntu Touch boot process.... Ugh.
Rebuild Freedreno to try to get Mesa/Gallium3D working properly. I'm probably going to need a lot of help from Rob Clark on this one!
More to come...
Click to expand...
Click to collapse
Revision History:
[11-13] mf3-freedreno-companions-v2.zip - Updated launch.sh: added some error checking and fixed the Freedreno build process.
[11-15] mf3-freedreno-companions-v3.zip - Updated launch.sh to include onboard and English language. Removed florence and xvkbd. Removed .keyb script. Added sudo. Simplified upstart-dummy, and included new upstart-dummy.tar.gz. Prepped for new flashable .zip method.
[11-26] mf3-freedreno-companions-v4.zip - Updated launch.sh: included fix for onboard so that it should work anytime lightdm is launched, added some bits for sudo to work, and home button now kills lightdm (not just the Xsession); Updated u.sh: Added check for root, added notes about sudo and nosuid.
[11-26] mf3-freedreno-android-boot-v4.zip & mf3-freedreno-ubuntu-boot-v4.zip - Finally fixed sudo! See kernel mods sections for details.
[11-26] ubuntu-install-v4.zip - rebuilt with new companions.
Click to expand...
Click to collapse
Aou said:
Check out this app: SManager (Script Manager). It makes running the ubuntu.sh or u.sh a whole lot easier, plus you can send it into the background (vnc method only). Just remember to jump back into SManager later, use the Menu Key and open the console to be able to kill the ubuntu.sh. You can also add "bash" as an additional argument (freedreno method only). This seems to be an effective replacement for the Terminal Emulator. Don't forget to choose the "su" option to run either script as root.
Click to expand...
Click to collapse
I have literally spent hundreds of hours working on this project, and many more hours documenting it thoroughly - just so that I could share it with all of you. If you found this guide, custom kernel or scripts to be beneficial, please hit the THANKS button on this post.
This mostly works, but I think I may have made an error. I see it starting the sshd, but not VNC server. I can call vncserver, but when launching the vnc client app I just get stuck at "Establishing Handshake" until it times out. This differs from when I don't call vncserver, where I get immediately connection refused.
I'm going to redownload the image and start from scratch, but the image isn't very friendly when I'm trying to figure out how to rerun the initial configuration script...
On my S4 running OTA-MF3 with root, this didn't work for me until i used Busybox Installer from the market. Tried internal and external without it, neither worked. Only thing that looked like an error after that was
Code:
chown: cannot access '/external-sd/': no such file or directory
but this only showed the first time I ran it. Opened VNC connection just fine from my computer to the phone, and though there was slight graphics glitching (orange and red boxes on desktop) it worked just fine and they didn't interfere. Thanks for this!
Tsaukpaetra said:
This mostly works, but I think I may have made an error. I see it starting the sshd, but not VNC server. I can call vncserver, but when launching the vnc client app I just get stuck at "Establishing Handshake" until it times out. This differs from when I don't call vncserver, where I get immediately connection refused.
I'm going to redownload the image and start from scratch, but the image isn't very friendly when I'm trying to figure out how to rerun the initial configuration script...
Click to expand...
Click to collapse
It's not, I agree. I found that the easiest way to clear the configuration and start anew is to do the following from the "[email protected]" prompt (that is, within ubuntu):
Code:
rm /root/DONOTDELETE.txt
rm /root/cfg/linux.config
DeadlySin9 said:
On my S4 running OTA-MF3 with root, this didn't work for me until i used Busybox Installer from the market. Tried internal and external without it, neither worked. Only thing that looked like an error after that was
Code:
chown: cannot access '/external-sd/': no such file or directory
but this only showed the first time I ran it. Opened VNC connection just fine from my computer to the phone, and though there was slight graphics glitching (orange and red boxes on desktop) it worked just fine and they didn't interfere. Thanks for this!
Click to expand...
Click to collapse
Interesting. I looked through the image's init.sh, and found something that's relatively new (wasn't in beta):
Code:
# Fix for sdcard read/write permissions by Barry flanagan
chown ubuntu /external-sd/
As far as I can tell, that message is harmless. It's only included in the initial configuration, as it's in the section:
Code:
if [ ! -f /root/DONOTDELETE.txt ]
As for the need to download/install the BusyBox installer, that's not surprising at all. I've had so much trouble BusyBox ever since I switched to MF3. I might include this as an extra step in the OP - thank you.
You kidding right...does this really work? To cool, thanks Aou. Great work.
TheAxman said:
You kidding right...does this really work? To cool, thanks Aou. Great work.
Click to expand...
Click to collapse
Yessir, it does indeed work! The S4 handles it very nicely with the extra RAM & CPU it has to spare, so the only limiting factor is VNC. If someone could devise a way to get Ubuntu to draw directly on the screen from within that Chroot, that would be perfect. I don't think it's really possible by design, but this might be the closest we get to running native linux on the I337 until we see some unlocked bootloaders.
Thanks
Aou said:
Yessir, it does indeed work! The S4 handles it very nicely with the extra RAM & CPU it has to spare, so the only limiting factor is VNC. If someone could devise a way to get Ubuntu to draw directly on the screen from within that Chroot, that would be perfect. I don't think it's really possible by design, but this might be the closest we get to running native linux on the I337 until we see some unlocked bootloaders.
Thanks
Click to expand...
Click to collapse
In fact I am currently working on getting xorg to write to androids frame buffer which will mean no more vnc
Sent from my Nexus 4 using xda premium
zacthespack said:
In fact I am currently working on getting xorg to write to androids frame buffer which will mean no more vnc
Sent from my Nexus 4 using xda premium
Click to expand...
Click to collapse
You, sir, are the man. thank you so much for working on this! I threw $10 at you to help fund the skittles/cheetos/carrots/beer/pizza/whatever it takes to help you along.
Added a couple things to the OP. Looks like pure-stock roms will indeed need BusyBox installed, by some means or another. Also, found SManager, which makes executing the ubuntu.sh script much, much easier.
The second script that allows me to launch ubuntu, but the first that allows me to get a real X server on my vnc. Thank you so much !
PS: Why am I unable to install wine ?
"Package wine is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source"
This is working pretty good, slow though, do I have it setup right, or did I miss something?
TheAxman said:
This is working pretty good, slow though, do I have it setup right, or did I miss something?
Click to expand...
Click to collapse
I have found it to run a bit slow, and with regular crashing of GUI programs too. Is it just slow or unusable? You can always try closing other apps besides terminal and VNC, or try to VNC from a computer even.
tboss1995 said:
The second script that allows me to launch ubuntu, but the first that allows me to get a real X server on my vnc. Thank you so much !
PS: Why am I unable to install wine ?
"Package wine is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source"
Click to expand...
Click to collapse
Looks like you're not the only one. Check out this thread on the LinuxOnAndroid site:
http://forum.linuxonandroid.org/index.php?topic=268.0
TheAxman said:
This is working pretty good, slow though, do I have it setup right, or did I miss something?
Click to expand...
Click to collapse
DeadlySin9 said:
I have found it to run a bit slow, and with regular crashing of GUI programs too. Is it just slow or unusable? You can always try closing other apps besides terminal and VNC, or try to VNC from a computer even.
Click to expand...
Click to collapse
Most of the slowness comes from interacting with it via VNC, it would seem. Hard to compare to anything else, considering VNC is all we've got at the moment. I wonder if @zacthespack can shed some light on this. As he mentioned before, he's working on getting it to draw directly to the Android screen. I'm certainly not going to ask for any status updates, but I'm wondering if he can confirm that we'd see a speed increase without VNC...
EDIT: Also, as I use it more, I am noticing the app crashes too (such as Chromium). Could just be something in the 13.04 image, but also could be because we're running this all on ARM architecture.
Aou said:
Looks like you're not the only one. Check out this thread on the LinuxOnAndroid site:
http://forum.linuxonandroid.org/index.php?topic=268.0
Most of the slowness comes from interacting with it via VNC, it would seem. Hard to compare to anything else, considering VNC is all we've got at the moment. I wonder if @zacthespack can shed some light on this. As he mentioned before, he's working on getting it to draw directly to the Android screen. I'm certainly not going to ask for any status updates, but I'm wondering if he can confirm that we'd see a speed increase without VNC...
Click to expand...
Click to collapse
RE installing WINE, sure you can install the ARM verson but Wine is not a emulator (infact WINE stands for Wine Is Not a Emulator) so you can only run ARM compiled windows software.
Yest there is a good speed increase, as with VNC xorg writes to the vnc server and passes it to the vnc client to then render on the screen.
With the new method xorg just writes to Androids frame buffer, no inbetween man.
And it can get even faster once we have graphics accelerations although not all chip sets will get that.
zacthespack said:
RE installing WINE, sure you can install the ARM verson but Wine is not a emulator (infact WINE stands for Wine Is Not a Emulator) so you can only run ARM compiled windows software.
Click to expand...
Click to collapse
Good point, forgot about that. It's really just a big package of Windows dependencies, responding to API calls, etc. The software that Wine runs is still sending stuff to/from the processor directly, therefore it would have to be compiled for ARM.
I wonder what Windows8 programs are available that are compiled for ARM (because of the Microsoft Surface and all...).
Aou said:
Good point, forgot about that. It's really just a big package of Windows dependencies, responding to API calls, etc. The software that Wine runs is still sending stuff to/from the processor directly, therefore it would have to be compiled for ARM.
I wonder what Windows8 programs are available that are compiled for ARM (because of the Microsoft Surface and all...).
Click to expand...
Click to collapse
There's plenty or ARM software within the built in app store, but I'm not sure where they install to or how one would go about extracting them. I have it on desktop and it shows what processors it runs on. Can't wait for the straight to screen function though
Also, I'm going to see if a different image is more stable. Chromium was the most obvious crashing for me and others generally crashed.
DeadlySin9 said:
There's plenty or ARM software within the built in app store, but I'm not sure where they install to or how one would go about extracting them. I have it on desktop and it shows what processors it runs on. Can't wait for the straight to screen function though
Also, I'm going to see if a different image is more stable. Chromium was the most obvious crashing for me and others generally crashed.
Click to expand...
Click to collapse
I noticed that with 12.04, it doesn't seem to connect to Xorg or something, because when you use VNC, it only shows a grey screen with a cross cursor. Same for both "Lite" and "Full" packages. Haven't tried older (10.x) packages of Ubuntu.
The other Linux images should work just fine. Optionally, you can edit the ubuntu.sh script to be more appropriate, but it should theoretically work the same (unless the init.sh is located elsewhere inside the image...).
I tried the Ubuntu 10 image and the Debian image but ubuntu didn't run vnc (vncserver not found or something) and debian kept saying I didn't have permissions.
It appears chromium is incredibly unstable on this image, so I've uninstalled it.
I'm currently working on trying to get Minecraft to work, but ever since 1.6.2 and this new launcher, it's incredibly difficult to modify the client files and such. Something is going wrong with liblwjgl.so. I can get the launcher to work correctly, but when it goes to load the game, it can't find liblwjgl.so and says that it might be because of 32bit vs ARM. I did get lwjgl installed correctly, and pulled the ARM version of the .so and stuck it in [what I believe was] the right .jar file, but it still has the error.
I'll keep you all posted. If I can get this to work, and if zacthespack can get xorg to draw on the android screen, ... :good:
EDIT:
Found out that every time the launcher runs minecraft, it downloads several libraries and other crap to run the game, to keep itself current and to support multiple versions, yada, yada. Unfortunately, this means that it downloads https://s3.amazonaws.com/Minecraft..../2.9.0/lwjgl-platform-2.9.0-natives-linux.jar every time you click Play, and overwrites any custom one you might have (i.e. one with ARM libraries inside). I tried revoking write access to the file, but then the launcher aborts the launch because it can't overwrite the file.
Any suggestions?
EDIT #2:
Well, the easy solution was to modify the file, run the launcher, disconnect mobile data temporarily, and then launch the game ("couldn't connect to server .... have local copy of file .... assuming it's good...."). No more errors about that stupid library file. However, the game immediately crashes now with an error report. Investigating this now. PROGRESS!
Problem
I'm aware I may need to modify the script in order to accommodate my setup, but I figured I'd post here first before changing anything in case someone else had a similar problem and came up with the solution.
I followed all the instructions, except I want to boot from an external USB stick (mounted using StickMount).
I reviewed the script, dropped it on the root of the USB stick, and copied the unzipped image to a folder named ubuntu.
Here is the output when I run the script:
Making mount points and mounting to them...
mount: mounting /dev/loop20 on /data/local/ubmnt failed: Operation not supported
mount: mounting devpts on /data/local/ubmnt/dev/pts failed: No such file or directory
mount: mounting proc on /data/local/ubmnt/proc failed: No such file or directory
mount: mounting sysfs on /data/local/ubmnt/sys failed: No such file or directory
Connecting to /sdcard...
mount: mounting /sdcard on /data/local/ubmnt/sdcard failed: No such file or directory
Putting in some settings...
net.ipv4.ip_forward = 1
/sdcard/usbStorage/sda1/ubuntu.sh[19]: can't create /data/local/ubmnt/etc/resolv.conf: No such file or directory
/sdcard/usbStorage/sda1/ubuntu.sh[20]: can't create /data/local/ubmnt/etc/resolv.conf: No such file or directory
/sdcard/usbStorage/sda1/ubuntu.sh[21]: can't create /data/local/ubmnt/etc/hosts: No such file or directory
ubuntu is configured with SSH and VNC servers that can be accessed from the IP:
(You will see an error about wlan0 if your WiFi is disabled. Safe to ignore.)
----------------- OKAY, starting Ubuntu! -----------------
chroot: can't execute '/root/init.sh': No such file or directory
----------------- Ubuntu has exited! -----------------
Cleaning up - unmounting everything and removing what we made...
umount: can't forcibly umount /data/local/ubmnt/dev/pts: No such file or directory
umount: can't forcibly umount /data/local/ubmnt/sys: No such file or directory
umount: can't forcibly umount /data/local/ubmnt/proc: No such file or directory
umount: can't forcibly umount /data/local/ubmnt/sdcard: No such file or directory
umount: can't forcibly umount /data/local/ubmnt: Invalid argument
Welcome back to your android.
Click to expand...
Click to collapse
I am running as root, BusyBox free has been installed. My terminal app has been granted root privileges. The path to the USB stick is sdcard/usbStorage/sda1.
Any help/guidance would be greatly appreciated! :fingers-crossed:

[Guide] Triple boot full rooted Android-x86 with Ubuntu and Windows without USB

There are a couple of guides on how to install android-x86 on your PC, but this is a specifically written tutorial to install it as an OS (Not on VM), for linux users, without the use of a USB or CD, with full root capabilities unlike other Non-USB methods.
I have a 12" touch notebook Asus X200 with 4GB of RAM and 500GB of disk space.
Currently triple booting Windows 8.1, Ubuntu 14.04, and Android-x86 Kitkat.
Quick summary:
Create an ext3/ext4 partition for Android-x86.
Download the iso and extract its content to that partition.
Configure grub to detect Android-x86.
Pre-Requirements:
Ubuntu already installed.
Windows already installed.
Grub already installed (Obviously).
Squashfs-tools installed
Code:
sudo apt-get install squashfs-tools
First of all, boot your PC into Ubuntu.
A. Creating a partition for you Android
We need to prepare a 10GB ext3/ext4 partition for Android. You can do so by resizing an existing partition, using gparted.
Now depending on which partition you want to resize (Ubuntu or Windows), you can use gparted from a Live Ubuntu CD, or directly from Ubuntu. I highly recommend resizing an NTFS partition (Windows).
Here is a tutorial on how to use it.
Install gparted (in case you don't have it)
Code:
sudo apt-get install gparted
Once installed run gparted (requires root permission).
Select the partition you want to resize
Right-click and select Resize/Move.
Shrink it so you can get a new partition of 10GB
An unallocated partition will be created.
Right-click on it and select New.
Select ext3, label it Android and press Add.
Notice that I labeled the partition "Android", for easier identification.
Make sure that you took the right steps before you apply the changes.
Here is how my Android Partition looks like (sda8)
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Write down the path for your android partition, in my case /dev/sda8 (You will need it later)
To test it. Go to nautilus (file explorer), and mount the partition and see if you can access it.
B. Downloading and extracting the ISO
If you don't need full root (read/write) you can skip this section, all you need to do is to copy the 4 files extracted from the andorid-x86 iso (initrd.img ramdisk.img kernel system.sfs) to your android partition. Create an empty folder called data in your android partition too. And then jump to section C.
The difference here in this section is that we extract the contents of system.sfs and then copy them to the android partition with the other 3 files (initrd.img ramdisk.img kernel), and create an empty data folder. This way, we will have full root access.
(system.sfs is a squashfs which is a compressed read-only file system, which explains why we can't have full root)
Head down to android-x86 website and download the latest version (iso version).
In my case it's Android-x86 4.4 r2
Hit the terminal (Crtl+Alt+T).
You can use the following bash commands to easily extract and copy the files.
Extract the contents of the iso
Code:
7z x android-x86-4.4-r2.iso -oandroid_installation && \
cd android_installation
Extract the contents of the system.sfs
Code:
sudo -s && \
unsquashfs -f -d . system.sfs && \
mkdir temp && \
mount -o loop system.img temp
Now let's copy initrd.img ramdisk.img kernel files to the Android partition. Create 2 folders on the Android partition called data and system, extract system.sfs (and eventually system.img) and copy its contents to the system folder we just created.
Code:
cp initrd.img ramdisk.img kernel [COLOR="Lime"]/path/to/the/android/partition[/COLOR] &&\
mkdir [COLOR="Lime"]/path/to/the/android/partition[/COLOR]/system && \
mkdir [COLOR="Lime"]/path/to/the/android/partition[/COLOR]/data && \
cp -avr temp/* [COLOR="Lime"]/path/to/the/android/partition[/COLOR]/system &&\
umount temp &&\
cd .. && \
rm -rf android_installation &&\
exit
You should have something like that
C. Configuring Grub
Now after copying all the necessary files to the Andorid partition, all we need to do is modify grub to boot from that partition.
Code:
sudo gedit /etc/grub.d/40_custom
menuentry "Android Kitkat" {
set root='(hd0,8)'
linux /kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 acpi_sleep=s3_bios,s3_mode SRC=/ HWACCEL=
initrd /initrd.img}
Click to expand...
Click to collapse
You should change (hd0,8) entry based on your android partition location, the one that we wrote before.
(hdX,Y) for /dev/sdXY with a corresponding to 0, b to 1, c to 2 etc ..
In my case, my android partition is /dev/sda8 correspond to (hd0,8)
a -> X=0
8 -> Y=8
So '(hd0,8)'
Update Grub configuration by:
Code:
sudo update-grub
D. Finally
Reboot your laptop, and select Android Kitkat from Grub list (it should be the last entry).
... And enjoy the Kitkat!
(And then you can install the latest SuperSU and update the root binaries)
Bonus. Installing Xposed Framework.
As many probably faced the same problem, Xposed Framework presents an issue on intel devices, although there is a work around.
Here are the steps:
Boot into Android.
Download Xposed Framework Installer from here.
Install it, but DO NOT RUN IT.
Now hit the terminal emulator. It should be already installed on your system. Type the following:
Code:
su
echo 148 > /data/data/de.robv.android.xposed.installer/conf/jit_reset_offset
chmod 664 /data/data/de.robv.android.xposed.installer/conf/jit_reset_offset
Run the installer, and install Xposed Framework.
Reboot and enjoy
Other similar guides:
Xposed Framework Issue workaround
Installing android x86 without CD or USB (Windows 7 and Vista)
Installing android x86 using USB or CD or VM
Installing android x86 without USB or USB with Ubuntu (limited root)
Cool! Finally a true boot guide, No VMs! But what about XP?
I've got a very old laptop, that I want to wipe and install a triple boot (android, ubuntu, winxp).. any pointers on which order to do the installs/partitions? Wubi?
Haven't found any step-by-step procedure for this particular scenario, but I've read that if not done correctly all 3 os'es won't appear in the boot menu!
snoop911 said:
I've got a very old laptop, that I want to wipe and install a triple boot (android, ubuntu, winxp).. any pointers on which order to do the installs/partitions? Wubi?
Haven't found any step-by-step procedure for this particular scenario, but I've read that if not done correctly all 3 os'es won't appear in the boot menu!
Click to expand...
Click to collapse
The more convenient order would be Windows then Ubuntu (using Wubi and install alongside Windows) then Android (you can follow this guide after you install Ubuntu)
PS. I would not recommend windows XP as it's unsupported but if you feel nostalgic, it's your choice. Better use Windows 7.
Thanks it Worked!
Although this tutorial is to Triple boot windows, ubuntu and android,
I have Installed and can boot.
Ubuntu 14.0.4 LTS, Linux Mint, Kali Linux 2.0 Windows 10 and Android 6.0
in different hard disk partitions.
On my Asus X2OOM
(Touch Screen, 4GB RAM, 500GB HDD, Intel Celeron 2.16Ghz Dual Core)
_______________________________________________________________________________
Yes I do know that this post is about triple booting linux, windows, and andorid.
since you have mentioned about xposed. how to I install xposed on android Lollipop or marshmallow.
the tutorial doesn't work on lollipop or marshmallow. (obviously) .
I was wondering if I can do this with remix os. will this work?
sorry for a noob question. newbie here
I tired, Didn't work
deeXDA said:
I was wondering if I can do this with remix os. will this work?
sorry for a noob question. newbie here
Click to expand...
Click to collapse
When i extract the remix OS iso there was no system.sfs, there was system.img
So I skipped
Code:
unsquashfs -f -d . system.sfs
and mounted system.img to temp.
Did all the other steps correctly.
It didn't work, It just reboots. :crying:
BTW If you got a way please let me know.
I currently have Windows, Linux Mint, Ubuntu, Kali Linux, Android x86 on my laptop.
and don't apologize :v
shihaam_ab_r said:
When i extract the remix OS iso there was no system.sfs, there was system.img
So I skipped
Code:
unsquashfs -f -d . system.sfs
and mounted system.img to temp.
Did all the other steps correctly.
It didn't work, It just reboots. :crying:
BTW If you got a way please let me know.
I currently have Windows, Linux Mint, Ubuntu, Kali Linux, Android x86 on my laptop.
and don't apologize :v
Click to expand...
Click to collapse
I think I'm lost. I was actually referring to remix os for pc but AFAIK it's still Android x86. Anyway, I followed the steps here and it seems that I successfully installed it BUT I got a problem on booting it since grub isn't installed and I don't know how to add an OS to grub's listing. AND FINALLY, I don't know where to go/to do next. The good thing is it ran with my hp laptop and explore it with a couple of minutes and rebooted to check if it will be recognized by grub but unfortunately, it didn't
googled how to add an OS to grub but, sadly, no luck.
I don't know it this is the right thread to ask this but, can anyone point out where am I? I just want to boot with remix OS.
Current OS's Windows 10, ubuntu 14.04 LTS, Remix OS for PC
deeXDA said:
I think I'm lost. I was actually referring to remix os for pc but AFAIK it's still Android x86. Anyway, I followed the steps here and it seems that I successfully installed it BUT I got a problem on booting it since grub isn't installed and I don't know how to add an OS to grub's listing. AND FINALLY, I don't know where to go/to do next. The good thing is it ran with my hp laptop and explore it with a couple of minutes and rebooted to check if it will be recognized by grub but unfortunately, it didn't
googled how to add an OS to grub but, sadly, no luck.
I don't know it this is the right thread to ask this but, can anyone point out where am I? I just want to boot with remix OS.
Current OS's Windows 10, ubuntu 14.04 LTS, Remix OS for PC
Click to expand...
Click to collapse
Where do you have grub installed? And where do you have the RemixOS files...
deeXDA said:
I got a problem on booting it since grub isn't installed and I don't know how to add an OS to grub's listing.
Click to expand...
Click to collapse
deeXDA said:
Current OS's Windows 10, ubuntu 14.04 LTS, Remix OS for PC
Click to expand...
Click to collapse
You must have a bootloader installed, as you're running Linux and Windows together (In the majority of the cases it's grub), but in your case, try to find out what bootloader you have installed and try to add the Remix OS partition to your boot menu.
Let me know what boot loader you have installed and I'll try to see if I can help.
shihaam_ab_r said:
It didn't work, It just reboots.
BTW If you got a way please let me know.
I currently have Windows, Linux Mint, Ubuntu, Kali Linux, Android x86 on my laptop.
Click to expand...
Click to collapse
I Just checked Remix OS website, and they have 2 alpha versions of their OS, one for EFI and another for Legacy (BIOS). You should download the first one (EFI). I suspect that might be the problem. Otherwise I'll try to see if I have time to tinker with Remix OS, and I'll update you.
silv3rfox said:
I Just checked Remix OS website, and they have 2 alpha versions of their OS, one for EFI and another for Legacy (BIOS). You should download the first one (EFI). I suspect that might be the problem. Otherwise I'll try to see if I have time to tinker with Remix OS, and I'll update you.
Click to expand...
Click to collapse
Thanks, Ill try
So, I guess you've heard already the news. Android-x86 and Remix OS are partnering together, for a better world (of course), so today I replaced my android-x86 partition with Remix OS beta, and it worked! So I can confirm the method works like charm. You only need to replace the grub parameters with the following in step C:
androidboot.hardware=remix_x86_64
Click to expand...
Click to collapse
excuse me, what ubuntu theme are you using
arima0k said:
excuse me, what ubuntu theme are you using
Click to expand...
Click to collapse
It's an old screenshot. Like nearly two years old. I moved on from Ubuntu. But I think it was the Numix theme.
This is what I needed...
Thanks for the tech on this guided installation Silv3rfox ! I also am new to the Linux scene
and having fun learning! I did get stuck early on, but it was mostly related to my early
exposure to this unix o/s.
I realize that this tech may be a bit off topic for this site, but I just wanted to say thank
you for this and for the great advice this site offers iphone users...lol...
Now that I have some command knowledge, I will delete and re-run your tech as I have a
few questions I failed to record on my first several attempts. I will also be exploring this site
which, as an android phone user, looks to be a great find I stumbled upon during my search
for tech related to this topic!
kid
I thank you for your excellent instructions. Followed them to the letter and it keeps getting stuck at "detecting android." Then it reboots. Any suggestions?
---------- Post added at 09:25 PM ---------- Previous post was at 09:17 PM ----------
Thanks for your your excellent instructions. I do have a problem unfortunately. I followed these instructions pretty much to the letter except I used Lineage OS iso (cm-x86_64-14.1-rc1.iso) on my Inspiron Dell laptop. I am running Linux Mint 18.2 and am trying to dual boot that and Android-x86 (Lineage). After following your instructions I boot up and it acts like it is going to start but then it says "detecting android-x86." and then reboots. Any suggestions?
Here is what I copied into the grub.d/40_custom file:
menuentry "Lineage Android" {
set root='(hd0,4)'
linux /kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 acpi_sleep=s3_bios,s3_mode SRC=/ HWACCEL=
initrd /initrd.img}
The partition I created is sda4. Appreciate your help!
I followed everything to the t but I'm getting an error saying cannot stat 'temp/* after i execute the code at step 5
Please help
Something wrong
I performed step 5 and gave the following message:
Code:
mkdir: é impossível criar o diretório “/media/xikowisk/Android/system”: File exists
My system folder is empty.
error:hd1 can't get C/H/S values
error:you need to load kernel first
help
Sorry guys, I didn't receive notifications of your post, as you didn't tag me, or quote me.
pastordeecat said:
I thank you for your excellent instructions. Followed them to the letter and it keeps getting stuck at "detecting android." Then it reboots. Any suggestions?
Thanks for your your excellent instructions. I do have a problem unfortunately. I followed these instructions pretty much to the letter except I used Lineage OS iso (cm-x86_64-14.1-rc1.iso) on my Inspiron Dell laptop. I am running Linux Mint 18.2 and am trying to dual boot that and Android-x86 (Lineage). After following your instructions I boot up and it acts like it is going to start but then it says "detecting android-x86." and then reboots. Any suggestions?
Here is what I copied into the grub.d/40_custom file:
menuentry "Lineage Android" {
set root='(hd0,4)'
linux /kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 acpi_sleep=s3_bios,s3_mode SRC=/ HWACCEL=
initrd /initrd.img}
The partition I created is sda4. Appreciate your help!
Click to expand...
Click to collapse
To be honest I haven't updated mine for a while now (the guide was written for kitkat ). But if it's booting after the grub menu, it means that grub is well configured. Are you still facing this problem?
EDIT: I just noticed, you should have androidboot.hardware=android_x86_64 instead of androidboot.hardware=android_x86.
Heelixx said:
I followed everything to the t but I'm getting an error saying cannot stat 'temp/* after i execute the code at step 5
Please help
Click to expand...
Click to collapse
Maybe you didn't mount the system image in temp? The idea is to extract the content of system image. Let me know if you still facing this problem.
Xikowisk said:
I performed step 5 and gave the following message:
Code:
mkdir: é impossível criar o diretório “/media/xikowisk/Android/system”: File exists
My system folder is empty.
Click to expand...
Click to collapse
It seems it failed to copy the content of the system image to the system folder. Try to do it using nautilus (ubuntu file explorer).
mooddy said:
error:hd1 can't get C/H/S values
error:you need to load kernel first
help
Click to expand...
Click to collapse
You have misconfigured grub. Check part C again. Or you can post your partition table and the Android entry on grub and I can check it.

[Completed] Unpacking and repacking system.img error

Hello, I'm trying to unpack and repack a system.img file using cygwin and the "simg2img" and "make_ext4fs" binary file. I am using cygwin because Linux is too much for VirtualBox and I have a bootcamped Mac so I don't have a lot of space on my Windows partition. My problem is when I run this: $./simg2img system.img sys.raw it returns with this -bash: ./simg2img: cannot execute binary file: Exec format error I really don't understand why this is happening and I checked the Ubuntu forums many times but I still cannot find anything.
http://forum.xda-developers.com/showthread.php?t=1588461
^^ Trying to follow that guide.
Thanks in advance
ethanscooter said:
Hello, I'm trying to unpack and repack a system.img file using cygwin and the "simg2img" and "make_ext4fs" binary file. I am using cygwin because Linux is too much for VirtualBox and I have a bootcamped Mac so I don't have a lot of space on my Windows partition. My problem is when I run this: $./simg2img system.img sys.raw it returns with this -bash: ./simg2img: cannot execute binary file: Exec format error I really don't understand why this is happening and I checked the Ubuntu forums many times but I still cannot find anything.
http://forum.xda-developers.com/showthread.php?t=1588461
^^ Trying to follow that guide.
Thanks in advance
Click to expand...
Click to collapse
Hello,
Funny you mention that thread. Because this post is in it:
does any one knows how to do it on cygwin? can you give me a full detail of the steps on how to set this thing up in cygwin.
Click to expand...
Click to collapse
cygwin cannot run native linux excute file without rebuild from source ~
Click to expand...
Click to collapse
So. Time to look at the real problem. How can Linux be too much for Virtualbox when you can run a full Windows OS on the other side of bootcamp?
Linux doesn't have that serious of system requirements, especially if you skip the GUI. Skip Ubuntu for sure, in favour of Puppy Linux, Lubuntu or even Debian (with issuing the boot parameter - by pressing tab - and then typing "desktop=lxde" if you need to install a GUI at all). Do all of this in the Mac side of bootcamp where you will have more resources. Virtualbox should handle it well, even if it's a little slow.
Adapt as you go (e.g. RAM allocation can be as little as 64MB for console only, but in reality, squeeze out as much as you can afford to):
> App Development Forums > Development Tools > IDEs, Libraries, & Programming Tools > [GUIDE] VirtualBox Set-Up (MORE TO COME!)
Hope this helps, and good luck!
joel.maxuel said:
Hello,
Funny you mention that thread. Because this post is in it:
So. Time to look at the real problem. How can Linux be too much for Virtualbox when you can run a full Windows OS on the other side of bootcamp?
Linux doesn't have that serious of system requirements, especially if you skip the GUI. Skip Ubuntu for sure, in favour of Puppy Linux, Lubuntu or even Debian (with issuing the boot parameter - by pressing tab - and then typing "desktop=lxde" if you need to install a GUI at all). Do all of this in the Mac side of bootcamp where you will have more resources. Virtualbox should handle it well, even if it's a little slow.
Adapt as you go (e.g. RAM allocation can be as little as 64MB for console only, but in reality, squeeze out as much as you can afford to):
> App Development Forums > Development Tools > IDEs, Libraries, & Programming Tools > [GUIDE] VirtualBox Set-Up (MORE TO COME!)
Hope this helps, and good luck!
Click to expand...
Click to collapse
Hello, I actually installed LINUX on actual hardware on another computer, my only problem was repacking the image I could not flash the repacked image which I have turned into a tar file with cygwin in ODIN it would fail. Also I meant it was too much because it was slow and I didn't have enough space thats why I mentioned the dualboot setup I only have 5gb free.
ethanscooter said:
Hello, I actually installed LINUX on actual hardware on another computer, my only problem was repacking the image I could not flash the repacked image which I have turned into a tar file with cygwin in ODIN it would fail. Also I meant it was too much because it was slow and I didn't have enough space thats why I mentioned the dualboot setup I only have 5gb free.
Click to expand...
Click to collapse
I would avoid cygwin at all steps. It's only good for routine commands (I used to use it to do "ls -lR" dumps of my CD archives), not for special projects. NTFS is a whole different beast than ext4, and it sounds like the permissions you have vs. the permissions you are supposed to get don't match up. So Odin is refusing to cooperate.
Good news that you have a different computer to run GNU/Linux on. FWIW, the missing information was how much disk space was left on the OSX end of things, which is why I suggested VirtualBox "on the Mac side".
Back to the drawing board, but it looks like you have the resources to get something successful this time.
If not, and Linux was used in all the steps, can always sort out the problem in the guide you originally linked by asking there.
Hope this helps.

Categories

Resources