bash programming - Android Software Development

can we create a program with BASH on ANdroid?
or with AWK
same with linux

Related

Building Ubuntu (Maverick) (Ubuntu v0.3) using RootStock

Has anyone here built a Ubuntu Maverick image using RootStock?
From a machine running Ubuntu Maverick, you should just need to:
Code:
sudo apt-get install rootstock
Code:
sudo rootstock \
--fqdn hd2 \
--login ubuntu \
--password ubuntu \
--imagesize 4G \
--seed ubuntu-netbook
NB, you might also be able to use one of the images from here:
http://cdimage.ubuntu.com/ubuntu-netbook/ports/releases/maverick/release/
Sorry but...... If its that easy, why dont you just do it?
I am very intrested to build a Ubuntu 10.10 for my Nexus One....i think this isn't impossible...but, for now, i am very noob to this works.

Trying to compile CM6 on Arch Linux

Sorry. Wrong forum.
Hello. When giving this command I get an error:
$ make -j`grep 'processor' /proc/cpuinfo | wc -l`
File "build/tools/findleaves.py", line 95
print r
^
SyntaxError: invalid syntax
File "build/tools/findleaves.py", line 95
print r
^
SyntaxError: invalid syntax
frameworks/policies/base/PolicyConfig.mk:22: *** No module defined for the given PRODUCT_POLICY (android.policy_phone). Stopping.
I have JDK6 and JRE installed but it seems like the java-version on my computer is 1.9. Is the error related to Java?
jai134 said:
Hello. When giving this command I get an error:
$ make -j`grep 'processor' /proc/cpuinfo | wc -l`
File "build/tools/findleaves.py", line 95
print r
^
SyntaxError: invalid syntax
File "build/tools/findleaves.py", line 95
print r
^
SyntaxError: invalid syntax
frameworks/policies/base/PolicyConfig.mk:22: *** No module defined for the given PRODUCT_POLICY (android.policy_phone). Stopping.
I have JDK6 and JRE installed but it seems like the java-version on my computer is 1.9. Is the error related to Java?
Click to expand...
Click to collapse
It is actually an issue with Python. In Archlinux /usr/bin/python is actually python 3 not python 2 that most scripts expect.
As much as I love arch I think that is one of their worst decisions. Either change the environment variable for the current session to point to python2, or change the line in the script that sets the python executable, or remove python and install python2 with a symlink to /usr/bin/python
Thankyou very much.

[TUT] Linux in chroot on your iconia

So, many of you want to run a full-size linux on your iconia. Unfortunately due to the fact that acer are a bunch of stupid mofos not releasing kernel source code and do not allow to flash unsigned ROMs we'll have to run it in chroot within android.
First thing to do is to get yourself a rootfs of linux. You can use angstrom, ubuntu.. I'm building debian using multistrap, the config is below. You'd better use pre-built ubuntu/backtrack and skip up to somewhere between steps 4 and 5, unless you have experience with dpkg and apt-get.
Code:
[General]
arch=armel
directory=/home/alexander/builds/multistrap
cleanup=false
retainsources=true
allowrecommends=false
noauth=true
unpack=true
aptsources=Grip
debootstrap=Debian
[Debian]
packages=screen openssh-server alsa-utils wireless-tools wpasupplicant nmap netcat
source=http://ftp.uk.debian.org/debian
keyring=debian-archive-keyring
suite=sid
[Grip]
packages=locales
keyring=emdebian-archive-keyring
source=http://www.emdebian.org/grip
suite=sid
Now we need to get it to iconia somehow. Running it from microsd would be incredibly slow and internal ssd is formatted to vfat. So let's loop mount it.
1. Create the loopback image
Code:
#700 mb
dd if=/dev/zero of=debian.img bs=10M count=70
mkfs.ext2 -f debian.img
2. Mount it as you always do.. on your desktop yet
Code:
mkdir /mnt/debian
mount -o loop -t ext2 debian.img /mnt/debian
3. Copy the desired files.. As a root user, you can cd to the rootfs (generated by multistrap) and
Code:
tar cvp . | tar xvp -C /mnt/debian
4. unmount the image.. (umount /mnt/debian) and copy to the /sdcard. I copy to the /sdcard/linux/debian.img. Also, I use the /sdcard/linux/uroot directory to mount the image on the tablet.
5. now, you need adb or terminal emulator and superuser permissions ('teh rewt')
Now let's make some script, name it android_sh and put it to /bin in /sdcard/linux/uroot. And make it executable (chmod +x /bin/android_sh)
Code:
#!/bin/bash
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
export USER=root
export HOME=/root
export TERM=linux
if [ -z "`pidof Xtightvnc`" ] ; then
vncserver -geometry 1280x740 -depth 8
else
kill -9 `pidof Xtightvnc`
rm /tmp/.X11-unix/X*
rm /tmp/.X*lock
fi
/bin/bash -
Ok. now make another script, in /sdcard/linux
Code:
#!/bin/sh
LOOPBASE=/sdcard/linux
LOOPFILE=debian.img
LOOPTARGET=uroot
cd $LOOPBASE
if [ -z "`grep $LOOPBASE/$LOOPTARGET /proc/mounts`" ]; then
echo "mounting $LOOPFILE"
mount -o loop -t ext2 $LOOPBASE/$LOOPFILE $LOOPBASE/$LOOPTARGET
else
echo "$LOOPFILE already mounted"
fi
for i in dev proc sys
do
echo "processing $i"
if [ -z "`grep $LOOPBASE/$LOOPTARGET/$i /proc/mounts`" ]
then
echo "mounting $i"
mount -o bind /$i $LOOPBASE/$LOOPTARGET/$i
else
echo "$i already mounted"
fi
done
if [ -z "`grep $LOOPBASE/$LOOPTARGET/dev/pts /proc/mounts`" ]
then
mount -t tmpfs none $LOOPBASE/$LOOPTARGET/dev/pts
fi
echo "chroot into $LOOPBASE/$LOOPTARGET"
chroot $LOOPBASE/$LOOPTARGET /bin/android_sh
now, execute it (sh /sdcard/linux/chroot.sh). You should be in root shell now. If you're building debian using multistrap, configure the packages (dpkg-configure -a). Remember I told you to keep out of debian? Dash package is somewhat broken so you may need to lurk through mailing lists to make it install.. And you need to manually add your sid/testing mirrors to the aptitude config.
So what now? Install tightvnc server (in debian/ubuntu, use apt-get update; apt-get install tightvncserver), exit the shell and launch chroot.sh again.
If you're building rootfs yourself, don't forget to install some x desktop environment. I use lxde on debian, it is lightweight and starts automatically with tightvnc
Now, you can use the vnc client on android to connect to your X11. When chrooting, tightvnc wil tell you the number of x session, so use it as the last digit of the port (5901, 5902 etc). I welcome suggestions on how to improve the android_sh to cleanly kill all tightvnc servers and remove temporary files so that the port number is always the same
In the end you may or may not get something similiar to this:
http://img820.imageshack.us/img820/9076/img3159qm.jpg
P.S.
I recommend you to install Hacker's Keyboard which will give you the tab key, esc and arrows simultaneously and allow to use cool software like vim and emacs without pain
https://market.android.com/details?id=app-org.pocketworkstation.pckeyboard
U.B.D.Man...
Cool...But I got stucked at the first step. Where can I get debian.img?
you create a new file named debian.img using dd, then you format it to ext2 using mkfs.. well. you can just take backtrack image from xoom. essentially it's just ubuntu with some software added
I'm just curious why you chose ext2 as opposed to ext4? Given that the filesystem is actually a file on a filesystem, I sort of understand ext2, especially considering you can mount it with the ext4 driver now.
This probably sounds like a stupid question, but for some reason I cannot use bash?
It may be that my paths are not configured properly, but i dont have a bin at the "/" level. I have looked in /system/bin and /system/xbin, but have not found bash there either.
I installed busybox and have been able to perform root tasks, so I am not sure what I missed.
because.. you don't have bash.. you should have it in your chroot. if you need it in android, just install it (like http://forum.xda-developers.com/showthread.php?t=537827)
I installed bash according to the link you posted, but I still don't have a /bin outside of /system. I did change the above scripts to reflect this by saying:
#!/system/bin (but then I get the error 'event not found')
My prompt reads: "sh-3.2#" after reboot, which I understand is bash replacing the stock terminal.
I tried creating the /bin directory in the root, but even with root terminal, it said it was read only. Do I have to remount the root and then create a /bin directory?
When I rooted, I don't remember their being a lengthy discussion about bash installation, or the creation of a /bin directory.
I welcome all suggestions, as I am trying to learn more about the inner workings of the tablet, but still have little experience.
you need bash only in the linux in chroot and therefore do not need to modify scripts.
anyway,
mount -o remount,rw /system
cp bash /system/bin
chmod 755 /system/bin/bash
mount -o remount,ro /system
then you can start bash by typing 'bash' in shell
Hello,
I have tried and I still can't get it run. I am not used to Linux stuffs and scared that I may screwed up my tab. Can you please pack the required files and upload it so that we can follow easier? something like this http://www.secmaniac.com/may-2011/backtrack-5-on-motorola-xoom-in-10-minutes-or-less/ would be great.
Thank you.
PS: I sincerely want to get BackTrack on my tab so that I can run R on this
moved to http://forum.xda-developers.com/showthread.php?t=1094237
sp3dev said:
because.. you don't have bash.. you should have it in your chroot. if you need it in android, just install it (like http://forum.xda-developers.com/showthread.php?t=537827)
Click to expand...
Click to collapse
I ended up installing bash, but I still had problems with chroot and getting the scripts to run, so I decided to reverse what I was doing. In the process of trying to remove the bash shell and replace with the stock sh, I must have messed something up.
I tried a factory reset, and when I loaded back up again, I can't get wifi to connect. My suspicion is that there is at least two separate things wrong:
-My shell is somewhere in permission limbo or non-existant
I try running >adb shell and I get:
"- exec '/system/bin/sh' failed: No such file or directory (2) -"​
-The permissions on my wpa_supplicant are probably messed up, hence I can't connect to wifi
Any suggestions?
Well I tried a few more things:
-Tried copying over bash to /system/bin, got an error that it is a read-only file system. Funny, because I need shell (chmod?) in order to repair the shell, those bastards.
-Tried installing apk using adb, got same message about 'sh' missing. I think I will have to reflash a system.img, but I can't seem to find the Wifi-US with a working link.
Any help would be much appreciated.
Hey guys, could you upload and send me the link of a video of this working? Cause I love the idea of it but I'm not sure if its really practical
Sent from my A500 using XDA Premium App

[GUIDE][DEV] How to install Sun Java Oracle 1.6.0 - 1.7.0 jdk on Ubuntu 12.04+

First off this guide is only for developers. If you are not a developer or using this to develop something that has to do with android development please don't clutter up the thread with useless post and/or questions not related to this guide.
This guide will cover the basics on how to install Sun Java Oracle jdk (aka Java Development Kit) on Ubuntu 12.04+. Ubuntu has removed this from their apt repositories since 12.04, so this has made it a little difficult for android developers to install and use when building source ROMs. You can use open jdk, but I and other developers prefer to use Sun Java Oracle jdk. Note that android platforms 2.3 gingerbread and above all require Java 1.6. Froyo requires java 1.5 so this guide will not be useful for that. Some ROM sources such as Linaro and SaberMod can build with java 1.7
If you want to install java 1.7.0 jdk skip straight to THIS Guide
Prerequisites
Ubuntu 12.04 or later
Some basic knowledge of Ubuntu/Linux
Knowledge on how to develop for android (this guide will not cover that)
Instructions
1) Download Java
Download the latest 1.6 version of java for Linux from Sun Java Oracle's website. Make sure you have the correct version for your system. 64-bit users download the x64 ones.
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Select the latest "Java SE 6 Update" download (currently 38)
2) Install Java
Open a command terminal and enter these commands, pressing enter after each line.
Note the versions will change when a new version is updated, change command lines accordingly.
Code:
cd ~/Downloads
chmod +x ~/Downloads/jdk-6u38-linux-x64.bin
~/Downloads/./jdk-6u38-linux-x64.bin
sudo mkdir -p /usr/lib/jvm/jdk1.6.0
sudo mv ~/Downloads/jdk1.6.0_38/* -f /usr/lib/jvm/jdk1.6.0/
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.6.0/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.6.0/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.6.0/bin/javaws" 1
3) Config java to be default
This next part will allow you to make sun java default after installing it.
Code:
sudo update-alternatives --config java
This will bring up a GUI in terminal to select which java you want to make default with numbers listed for each one. 0 being default, 1 is normally the same java version as 0. Select the sun java one usually 2. Type the number and press enter. Next do the same for javac and javaws.
Code:
sudo update-alternatives --config javac
Code:
sudo update-alternatives --config javaws
Add java to your .bashrc
Code:
gedit ~/.bashrc
Add this to the very bottom of the file
Code:
# Java
export PATH=$PATH:/usr/lib/jvm/jdk1.6.0/bin
You must open a new terminal window/tab each time you edit your .bashrc file
Updating newer java versions. Just repeat steps 1, 2 and 3 but exclude this command and .bashrc edits.
Code:
sudo mkdir -p /usr/lib/jvm/jdk1.6.0
Make sure to run this commands first before anything else
Code:
sudo rm -rf /usr/lib/jvm/jdk1.6.0/*
Thanks for the tip
When building CM10, we get a warning if version is not exactly the java 1.6 expected. Any issue with that when building CM10?
No no warnings. I had some warnings before with open jdk tho building cm10.
Sent from my Nexus 7 using Tapatalk 2
I see
What is the version of JDK officially recommended by CM team ? Sun Java Oracle jdk or the open jdk?
Phil3759 said:
I see
What is the version of JDK officially recommended by CM team ? Sun Java Oracle jdk or the open jdk?
Click to expand...
Click to collapse
It's all about your own preference. I'm not sure what the cm team uses for their build machines or each individual member uses... I prefer Oracle just because it's updated more with bug and security fixes :thumbup:
Sent from my Nexus 7 using Tapatalk 2
Just a small question. I've has Sun Java installed for a while now. I've been building CyanogenMod, and plain AOSP just fine the whole time too. I've noticed that a couple guides, including yours, suggest adding lines to the bash.rc for this. I never did that for Java, and everything has been great. Why is this; and is it going to come back and bite me eventually?
Thanks.
I couldn't build without errors on 12.10 without the .bashrc edits. I did an fresh install of 12.10 instead of upgrading maybe that's why but idk for sure. It just makes sure that that version of java always gets used no matter what. You can always gedit .bashrc again to edit it and remove or add things so no it won't be problematic. You can also verify your using sun java and not open java by typing java -version on terminal. It should read Java(TM) SE Runtime Environment.
Sent from my Nexus 7 using Tapatalk 2
Phil3759 said:
Thanks for the tip
When building CM10, we get a warning if version is not exactly the java 1.6 expected. Any issue with that when building CM10?
Click to expand...
Click to collapse
For what it's worth, Sun Java has always given warnings such about things being deprecated in future releases, and every build has always been fine. I'm not saying there aren't any potential problems, however, from everything I've seen, there have been no problems yet.
Great Step By Step Guide For All New User...........:good::good:
Updated OP with instructions on how to make sun java default.
Code:
sudo update-alternatives --config java
Sent from my Nexus 7 using Tapatalk 2
Ive got this error:
sudo mv ~/Descargas/jdk1.6.0_37/* -f /usr/lib/jvm/jdk1.6.0/
mv: no se puede efectuar `stat' sobre «/home/adrian/Descargas/jdk1.6.0_37/*»: No existe el archivo o el directorio
adri_360 said:
Ive got this error:
sudo mv ~/Descargas/jdk1.6.0_37/* -f /usr/lib/jvm/jdk1.6.0/
mv: no se puede efectuar `stat' sobre «/home/adrian/Descargas/jdk1.6.0_37/*»: No existe el archivo o el directorio
Click to expand...
Click to collapse
I can't read Spanish but it looks like you didn't create the directory yet.
Sent from my Nexus 7 using Tapatalk 2
The error he got is that the jdk1.6.0_37 folder gets created in the home folder, but the command looks for it in the Downloads folder. Just move the folder manually to the Downloads folder.
@Sparksco wasn't there a couple of lines we needed to add to the .bashrc file in the beginning to finish this change? I had to set up my build enviroment again, but after doing this I keep getting the error about using the wrong java version.
---------- Post added at 07:03 AM ---------- Previous post was at 06:37 AM ----------
sparksco said:
I couldn't build without errors on 12.10 without the .bashrc edits. I did an fresh install of 12.10 instead of upgrading maybe that's why but idk for sure. It just makes sure that that version of java always gets used no matter what. You can always gedit .bashrc again to edit it and remove or add things so no it won't be problematic. You can also verify your using sun java and not open java by typing java -version on terminal. It should read Java(TM) SE Runtime Environment.
Sent from my Nexus 7 using Tapatalk 2
Click to expand...
Click to collapse
Could you share with me the edits? This is what I was reffering to on my last comment.
apascual89 said:
The error he got is that the jdk1.6.0_37 folder gets created in the home folder, but the command looks for it in the Downloads folder. Just move the folder manually to the Downloads folder.
@Sparksco wasn't there a couple of lines we needed to add to the .bashrc file in the beginning to finish this change? I had to set up my build enviroment again, but after doing this I keep getting the error about using the wrong java version.
---------- Post added at 07:03 AM ---------- Previous post was at 06:37 AM ----------
Could you share with me the edits? This is what I was reffering to on my last comment.
Click to expand...
Click to collapse
Did you run sudo update-alternatives --config java ?
I don't think you need to add .bashrc edits if you configure java, javac and javaws to be with sun java oracle. Let me know how it goes I can add the .bashrc edits back if needed.
Code:
sudo update-alternatives --config javac
Code:
sudo update-alternatives --config javaws
Where these two there this morning? Am I losing my mind? I'll check and let you know.
apascual89 said:
Code:
sudo update-alternatives --config javac
Code:
sudo update-alternatives --config javaws
Where these two there this morning? Am I losing my mind? I'll check and let you know.
Click to expand...
Click to collapse
Those two I added just in case... The java one was already there lol.
Sent from my Nexus 7 using Tapatalk 2
sparksco said:
Those two I added just in case... The java one was already there lol.
Sent from my Nexus 7 using Tapatalk 2
Click to expand...
Click to collapse
Yep that did it! It's building. Thanks Again
Java update
Oracle released u38 version which has security and bug fixes in it. More info here on bug fixes: http://www.oracle.com/technetwork/java/javase/2col/6u38-bugfixes-1880999.html As you can see there are quite a few
Also I updated the OP for version 38 and instructions on how to update to a newer version.
If your building ROMs you'll want to do a completely new clean build. For example remove your entire out directory before building.
[GUIDE][DEV] How to install Sun Java Oracle 1.7.0 jdk on Ubuntu 12.04+
In this guide you will be installing java 1.7
Prerequisites
Ubuntu 12.04 or later
Some basic knowledge of Ubuntu/Linux
Knowledge on how to develop for android (this guide will not cover that)
Instructions
1) Download Java 1.7
Download the latest 1.7 version of java for Linux from Sun Java Oracle's website. Make sure you have the correct version for your system. 64-bit users download the x64 ones.
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Select the latest "Java SE 7 Update" download (current 10)
2) Install Java
Open a command terminal and enter these commands, pressing enter after each line.
Note the versions will change when a new version is updated, change command lines accordingly.
First check for previous installations of openjdk for java 6 and 7
Code:
sudo apt-get remove openjdk-6-jdk
sudo apt-get remove openjdk-7-jdk
# For this next part remove anything that is openjdk with sudo rm -rf
Code:
ls /usr/lib/jvm
sudo rm -rf /usr/lib/jvm/###VersionYouWantToRemove###
Note: If you see
Code:
/usr/lib/jvm/default-java
You need to remove it. If you don't see it ignore this next command.
Code:
sudo rm /usr/lib/jvm/default-java
Continue.
Code:
cd ~/Downloads
gunzip ~/Downloads/jdk-7u10-linux-x64.tar.gz
tar -xvf ~/Downloads/jdk-7u10-linux-x64.tar
sudo mkdir -p /usr/lib/jvm/jdk1.7.0
sudo mv ~/Downloads/jdk1.7.0_10/* -f /usr/lib/jvm/jdk1.7.0/
For this part do not skip any steps
Code:
sudo ln -s /usr/lib/jvm/jdk1.7.0 /usr/lib/jvm/default-java
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0/bin/javaws" 1
3) Config java to be default
This next part will allow you to make sun java default after installing it. This will bring up a GUI in terminal to select which java you want to make default with numbers listed for each one. 0 being default, 1 is normally the same java version as 0. Select the sun java 1.7.0 one. Type the number and press enter.
Code:
sudo update-alternatives --config java
Code:
sudo update-alternatives --config javac
Code:
sudo update-alternatives --config javaws
Add java to your .bashrc
Code:
gedit ~/.bashrc
Add this to the very bottom of the file
If you have java 1.6 in your PATH you'll need to remove it in order to use java 1.7
Code:
# Java
export PATH=$PATH:/usr/lib/jvm/jdk1.7.0/bin
You must open a new terminal window/tab each time you edit your .bashrc file
Updating newer java versions. Just repeat steps 1, 2 and 3 but exclude these commands and .bashrc edits.
Code:
sudo mkdir -p /usr/lib/jvm/jdk1.7.0
sudo ln -s /usr/lib/jvm/jdk1.7.0 /usr/lib/jvm/default-java
Make sure to run these commands first before anything else
Code:
sudo rm -rf /usr/lib/jvm/jdk1.7.0/*
OP Update with new Guide instructions for java 1.7

How To Guide How To Install Windows Or Linux ISOs on your Android Devices - Windows 10 Nox Lab + Working Arm Distros for your phone using Termux

Update: A new thread is created to house "premade" linux distros. The first premade environment is an Ubuntu distro, installed using proot-distro in termux, Takes only a few minutes to restore the backup, else instructions are provided to build the environment yourself from scratch.
[GUIDE][NO-ROOT] How to install Ubuntu and other Linux Distros on Your Phone or Android TV Box, using Termux
NOTICE: THIS METHOD IS ONLY FOR NON ROOTED DEVICES PROOT-DISTRO GITHUB PAGE Hello Friends! Today I wanted to start a thread that will house prebuilt Linux environments, as well as instructions for building the Linux environments yourself...
forum.xda-developers.com
{
"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"
}
Or you can visit this thread and use method 2 to remote connect to your phone using windows RDC and have a much easier time programing vms in termux's qemu. A warning the windows arm editions break xrdp at least for me. It may be user error, I am unsure. Let me know if you have trouble too or success
[GUIDE][NO-ROOT] How to Remotely Connect to Your Phone, or Any Android Device, Using Termux and a PC
Hello Friends~! Today I wanted to teach you how to remotely connect to your phone, or any android device, using Termux and a PC. This example assumes your android device is on the same wireless network as your pc. In order to remote into our...
forum.xda-developers.com
Spoiler: UBUNTU ARM 64 FOR PHONE IN TERMUX
This machine seems to be working fine out of the box
How To Install Windows Or Linux ISOs on your Android Devices - Windows 10 Nox Lab + Working Arm Distros for your phone using Termux
Update: A new thread is created to house "premade" linux distros. The first premade environment is an Ubuntu distro, installed using proot-distro in termux, Takes only a few minutes to restore the backup, else instructions are provided to build...
forum.xda-developers.com
Spoiler: KALI LINUX NETHUNTER FOR PHONE IN TERMUX
This machine runs amazing once you do all the troubleshooting steps included in the comments
How To Install Windows Or Linux ISOs on your Android Devices - Windows 10 Nox Lab + Working Arm Distros for your phone using Termux
Update: A new thread is created to house "premade" linux distros. The first premade environment is an Ubuntu distro, installed using proot-distro in termux, Takes only a few minutes to restore the backup, else instructions are provided to build...
forum.xda-developers.com
Spoiler: WINDOWS 10 ARM
This one can really use some work, maybe someone can figure out what is wrong with it
How To Install Windows Or Linux ISOs on your Android Devices - Windows 10 Nox Lab + Working Arm Distros for your phone using Termux
Update: A new thread is created to house "premade" linux distros. The first premade environment is an Ubuntu distro, installed using proot-distro in termux, Takes only a few minutes to restore the backup, else instructions are provided to build...
forum.xda-developers.com
You can do the same for win11, get the image off archive.org but it wont work well unless your phone supports KVM or you have a work around
Spoiler: THE ORIGINAL GUIDE / NOX LAB FOR KNOWLEDGE PURPOSES --OUTDATED
As an edit and an update, the method listed below uses x86_64 version of qemu which will not run well on our phones. This guide also uses an android emulator to teach basics of building a virtual machine in qemu, but in practice on a phone it will be much different, when we use an Arm version of qemu. I am leaving this guide up though as it was fundamental in helping myself personally to even begin to understand qemu and the architectures and how to use the code.
This guide uses a modded nox android emulator which can be found HERE
Hello Friends~!
Today I will be walking you through using Termux, QEMU, and a VNC server to Run Windows or Linux isos on Your Android Devices as well as Android Emulators like Nox on Windows 10.
Spoiler: QEMU-SYSTEM-X86_64-HEADLESS SETUP
DOWNLOAD TERMU:
TERMU.zip
drive.google.com
Paste your iso and termu's apps in Barenox/bin, then install them in Nox.
Spoiler: PIC
Then install the apks by using the apk button on nox
BUILDING QEMU
In Termux, type:
Code:
pkg install x11-repo
apt-get upgrade -y
pkg install qemu-utils -y
pkg install qemu-system-x86-64-headless -y
BUILDING THE VIRTUAL MACHINE'S ENVIRONMENT
In Termux, type:
Code:
mkdir win7
cd win7
qemu-img create -f qcow2 win7.img 100G
A note here is that the name or command "win7" can be any iso you want to install.
For instance, you have an Ubuntu iso you want to install, use:
Code:
mkdir ubuntu
cd ubuntu
qemu-img create -f qcow2 ubuntu.img 100G
Then change the name of your iso to "ubuntu.iso" and so forth
100G can be edited as well. If you are worried about hard drive space, no need.
It is saved in qemu's take on sparse image format, "qcow2 files" (QEMU Copy On Write) thus only taking up space as you use it.
USING ADB TO PUSH THE ISO
In Barenox/bin
Open command prompt from the toolbar and run:
Code:
adb push win7.iso /data/data/com.termux/files/home/win7
Take note that /data/data/com.termux/... etc is where termux stores everything
Spoiler: PIC
BUILDING THE VIRTUAL MACHINE
In termux type:
Code:
qemu-system-x86_64 -smp 2 -net nic -net user -device AC97 -m 2048 -vnc 127.0.0.1:7 -cdrom win7.iso -hda win7.img
Take note that the port of "7" after our local server ip of 127.0.0.1 can be edited. I set this to 7 since this is windows 7
This is in reference to the "5900" port number asked for with VNC.
Install your vnc app. I used "vnc viewer"
The server ip will be 127.0.0.1 if asked and the port is 5907
or
127.0.0.1:5907
Spoiler: PIC
tadah~!
RUNNING THE MACHINE LATER
In termux
Code:
cd win7
qemu-system-x86_64 -smp 2 -net nic -net user -device AC97 -m 2048 -vnc 127.0.0.1:7 -hda win7.img
Then reopen the VNC App
These steps have all been automated, see the EXECUTABLE SCRIPTS section
IF YOU LEARN BETTER VISUALLY HERE IS A VIDEO OF THE STEPS
Spoiler: REFS
Termux Direct Apk DL:
https://f-droid.org/repo/com.termux_117.apk
VNC:
Download VNC Viewer | VNC® Connect
Control VNC® enabled computers with VNC® Viewer.
www.realvnc.com
This Guide Helped Me Get Started:
GitHub - blanckth/qemuTermux: Use QEMU in Termux as a full virtual machine and Deploy Any OS and iso
Use QEMU in Termux as a full virtual machine and Deploy Any OS and iso - GitHub - blanckth/qemuTermux: Use QEMU in Termux as a full virtual machine and Deploy Any OS and iso
github.com
This Guide Helped Me To Understand How To "Run a Batch" in Linux (.sh)
How to create batch files on Windows & Linux to automate small and complex tasks
While working on our computers we sometimes need to do repetitive tasks almost every single day. However, there is a simple way you can automate those tasks by
www.how2shout.com
What is a VNC?
What is a VCN? Benefits and Providers of Virtual Network Computing
Helped Me To Reprogram Parameters
QEMU documentation - QEMU
www.qemu.org
QCOW2 File - What is a .qcow2 file and how do I open it?
Learn about .QCOW2 files and view a list of programs that open them.
fileinfo.com
Difference Between Qemu and KVM – The Geek Diary
www.thegeekdiary.com
Spoiler: Outdated QTemu Tool history
INSTALL.md · master · QtEmu / gui · GitLab
Front-end for qemu emulator
gitlab.com
## Development
Urs Wolfer started QtEmu as school project. Ben Klopfenstein began adding some features that he wanted.
And in 2009 the project stoped its development.
In 2017 Sergio Carlavilla started from scrach the development of the 2.0 version. The new UI has based on
VirtualBox OSE and Virt-manager.
QtEmu / gui · GitLab
Front-end for qemu emulator
gitlab.com
original repo
GitHub - uwolfer/qtemu: This project is UNMAINTAINED. QtEmu is a graphical user interface for QEMU written in Qt4. Active fork: https://gitlab.com/qtemu
This project is UNMAINTAINED. QtEmu is a graphical user interface for QEMU written in Qt4. Active fork: https://gitlab.com/qtemu - GitHub - uwolfer/qtemu: This project is UNMAINTAINED. QtEmu is a g...
github.com
Building Android for Qemu: A Step-by-Step Guide
Developing Linux for Android on Qemu allows you to do some things that are not necessarily possible using the stock emulator.
www.collabora.com
AArch64 - Wikipedia
en.wikipedia.org
How to launch ARM aarch64 VM with QEMU from scratch.
The below instructions will allow for bringing up an ARM VM from scratch.
futurewei-cloud.github.io
Ubuntu – Error
Run u-boot in qemu
GitHub - qemu/u-boot: Mirror of git.qemu.org/u-boot.git
Mirror of git.qemu.org/u-boot.git. Contribute to qemu/u-boot development by creating an account on GitHub.
github.com
How to Use DD Show Progress Command in Linux? {2 Options Explained}
Use the dd command to show progress in the Linux terminal. Add the status attribute to see progress output or run dd with the pv command.
phoenixnap.com
/dev/zero - Wikipedia
en.wikipedia.org
Purpose of /dev/zero?
I tried to cat /dev/zero, and it didn't seem to do anything. I googled /dev/zero, and it says it's basically a blank file with infinite size. Is cat printing an infinite number of non-existent char...
unix.stackexchange.com
Features/PC System Flash - QEMU
wiki.qemu.org
https://forum.xda-developers.com/attachments/dd-png.5593745/
dd: different unit for bs, skip and count?
I am trying to copy a partition from an entire disk image. This command is working: dd if=image.iso of=test bs=512 skip=1161215 count=32768 In order to increase the speed, I'd like to set a bigge...
askubuntu.com
Android On Windows, With Windows~!
Looks great, will give it a try later. Thanks for the time & effort!
========================
SOURCES
==========
==================​
Spoiler: QEMU-SYSTEM-X86_64 SOURCES
Spoiler: REQUIRED APPS
TERMU.zip
drive.google.com
(112M)
Spoiler: WINDOWS 7 SOURCE
Spoiler: PREREQUISITES
A Rooted Device
You need to have Qemu Built already, have made your directory, and changed to it for the scripts to work
I.E hand type this part in Termux
Code:
pkg install x11-repo
apt-get upgrade -y
pkg install qemu-utils -y
pkg install qemu-system-x86-64-headless -y
mkdir win7
cd win7
qemu-img create -f qcow2 win7.img 100G
Spoiler: DOWNLOAD
WIN7SOURCE.zip
drive.google.com
(2.9G)
Spoiler: HOW TO USE ALL FEATURES
Copy the source files and paste them into barenox/bin, then execute the .push-all.bat script. When the adb push has completed, you can now run this code.
In Termux:
Code:
./hinstall.sh
After you have completed the installation, the parameters attaching a disk drive are no longer needed, hence the "hrun.sh" script. This script allows you to easily boot your new machine after changing to the machine's folder in Termux.
In Termux:
Code:
./hrun.sh
Then open your vnc app. IP and PORT info: 127.0.0.1:5907
The source files contain pre-built scripts for your convenience. If you would rather build your own, or understand fully what these are, please see the EXECUTABLE SCRIPTS comment below.
Spoiler: PREMADE INFO
Hello, for your convenience, a pre-installed hdd has been uploaded for this machine. What does that mean? You can bypass the Windows installation and all the steps required to do the setup, by simply pushing the Premade files and running ./hrun.sh
SEE PREMADES SECTION IN COMMENTS
Spoiler: HEADLESS SOURCE CODE
Code:
install:
mkdir win7
cd win7
qemu-img create -f qcow2 win7.img 100G
qemu-system-x86_64 -smp 2 -net nic -net user -device AC97 -m 2048 -vnc 127.0.0.1:7 -cdrom win7.iso -hda win7.img
run later:
cd win7
qemu-system-x86_64 -smp 2 -net nic -net user -device AC97 -m 2048 -vnc 127.0.0.1:7 -hda win7.img
iso obtained from:
My google Drive Vault
vnc ip and port:
127.0.0.1:7
127.0.0.1:5907
adb push path:
adb push win7.iso /data/data/com.termux/files/home/win7
adb push hinstall.sh /data/data/com.termux/files/home/win7
adb push hrun.sh /data/data/com.termux/files/home/win7
chmod path:
adb shell chmod 777 /data/data/com.termux/files/home/win7/hinstall.sh
adb shell chmod 777 /data/data/com.termux/files/home/win7/hrun.sh
commands:
./hinstall.sh
./hrun.sh
Spoiler: TINY7 SOURCE
Spoiler: PREREQUISITES
A Rooted Device
You need to have Qemu Built already, have made your directory, and changed to it for the scripts to work
I.E hand type this part in Termux
Code:
pkg install x11-repo
apt-get upgrade -y
pkg install qemu-utils -y
pkg install qemu-system-x86-64-headless -y
mkdir tiny7
cd tiny7
qemu-img create -f qcow2 tiny7.img 100G
Spoiler: DOWNLOAD
TINY7SOURCE.zip
drive.google.com
(691M)
Spoiler: HOW TO USE ALL FEATURES
First half of video is using the Premade, second half is SOURCES
Copy the source files and paste them into barenox/bin, then execute the .push-all.bat script. When the adb push has completed, you can now run this code.
In Termux:
Code:
./hinstall.sh
After you have completed the installation, the parameters attaching a disk drive are no longer needed, hence the "hrun.sh" script. This script allows you to easily boot your new machine after changing to the machine's folder in Termux.
In Termux:
Code:
./hrun.sh
Then open your vnc app. IP and PORT info: 127.0.0.1:5903
The source files contain pre-built scripts for your convenience. If you would rather build your own, or understand fully what these are, please see the EXECUTABLE SCRIPTS comment below.
Spoiler: PREMADE INFO
Hello, for your convenience, a pre-installed hdd has been uploaded for this machine. What does that mean? You can bypass the Windows installation and all the steps required to do the setup, by simply pushing the Premade files and running ./hrun.sh
SEE PREMADES SECTION IN COMMENTS
Spoiler: PROGRAMMER'S NOTES
Remember that Windows 7 is ancient now and takes (took) forever to setup, even as small as this is.
With this machine, first select "CUSTOM Install", then just set it and forget it. Tiny 7 has a built in script that executes after the initial setup completes, so when you get to this part, you are done, despite what the window says. The script hangs, as it is way outdated, we need to remove it. Close the window and delete the experience folder and delete enable quick launcher
Then we need to delete the actual script
Open task manager, find the PROCESS activate.exe, click on it once to select it, and at the top of vnc viewer, select the mouse icon to activate the left click option. at the bottom right if you click, it will allow you to open the side menu to open the file location. So, open the file location first, then select end task. Delete the install folder
alternatively, you can go into C:\Windows and delete the install folder
You'll notice that this is going to break the internet explorer and file manager shortcuts on your desktop. Just remove the shortcuts, and open the windows menu, search for internet, then right click and copy internet explorer. Go to your desktop and paste a short cut
Spoiler: HEADLESS SOURCE CODE
Code:
install:
mkdir tiny7
cd tiny7
qemu-img create -f qcow2 tiny7.img 100G
qemu-system-x86_64 -smp 2 -net nic -net user -device AC97 -m 2048 -vnc 127.0.0.1:3 -cdrom tiny7.iso -hda tiny7.img
run later:
cd tiny7
qemu-system-x86_64 -smp 2 -net nic -net user -device AC97 -m 2048 -vnc 127.0.0.1:3 -hda tiny7.img
iso obtained from:
https://archive.org/download/tiny-7/Tiny7.iso
vnc ip and port:
127.0.0.1:3
127.0.0.1:5903
adb push path:
adb push win7.iso /data/data/com.termux/files/home/tiny7
adb push hinstall.sh /data/data/com.termux/files/home/tiny7
adb push hrun.sh /data/data/com.termux/files/home/tiny7
chmod path:
adb shell chmod 777 /data/data/com.termux/files/home/tiny7/hinstall.sh
adb shell chmod 777 /data/data/com.termux/files/home/tiny7/hrun.sh
commands:
./hinstall.sh
./hrun.sh
========================
PREMADES
==========
==================​
Spoiler: QEMU-SYSTEM-X86_64 PREMADE IMAGES
Spoiler: REQUIRED APPS
TERMU.zip
drive.google.com
(112M)
Spoiler: WINDOWS 7
Spoiler: STOCK: WINDOWS 7 ULTIMATE SP1 (64 BIT) PREMADE
Spoiler: PREREQUISITES
A Rooted Device
You need to have Qemu Built already, have made your directory, and changed to it for the scripts to work
I.E hand type this part in Termux
Code:
pkg install x11-repo
apt-get upgrade -y
pkg install qemu-utils -y
pkg install qemu-system-x86-64-headless -y
mkdir win7
cd win7
Spoiler: DOWNLOAD
WIN7ULTSP1STOCKHDD.zip
drive.google.com
(3.1G)
Spoiler: HOW TO USE
It says Tiny7 but the steps are the same. First half is a PREMADE installation demo, second half is a SOURCES demo
This premade hard drive image saves us the time of installing windows. It is fully setup and ready to play with.
To use it, copy all the files to barenox/bin and run the .push-all.bat script.
If using your own device, paste the files into your adb folder or just execute the script if you have your adb permissions wrapped.
When it has completed, in Termux type:
Code:
./hrun.sh
Open your vnc app. IP and PORT info: 127.0.0.1:5907
And that will load the premade machine for you. It will simply boot into windows
Nothing has been added here, so if you want to run games and what not, there may be dependencies required. I will build a box that is game ready in the future with the 64bit edition.
Spoiler: MOD: WINDOWS 7, TINY 7 (32 BIT) PREMADE
Spoiler: PREREQUISITES
A Rooted Device
You need to have Qemu Built already, have made your directory, and changed to it for the scripts to work
I.E hand type this part in Termux
Code:
pkg install x11-repo
apt-get upgrade -y
pkg install qemu-utils -y
pkg install qemu-system-x86-64-headless -y
mkdir tiny7
cd tiny7
Spoiler: DOWNLOAD
TINY7HDD.zip
drive.google.com
(615M)
Spoiler: HOW TO USE
First half is a PREMADE installation demo, second half is a SOURCES demo
This premade hard drive image saves us the time of installing windows. It is fully setup and ready to play with.
To use it, copy all the files to barenox/bin and run the .push-all.bat script.
If using your own device, paste the files into your adb folder or just execute the script if you have your adb permissions wrapped.
When it has completed, in Termux type:
Code:
./hrun.sh
Open your vnc app. IP and PORT info: 127.0.0.1:5903
And that will load the premade machine for you. It will simply boot into windows
Nothing has been added here, so if you want to run games and what not, there may be dependencies required. I will build a box that is game ready in the future with the 64bit edition.
See Tiny7's Tree Under SOURCES. The PROGRAMMER'S NOTES Tree contains detailed instructions for how this was Programmed. I had to figure out how to remove the old script that came with this iso, and documented the steps there for others. Note that the preinstalled machine has been cleaned of the problematic INSTALL folder and the internet explorer shortcut corrected for you.
More MODS will be added as they are built
TERMUX AND REPO KNOWLEDGE​
Spoiler: TERMUX PROPERTIES AND USER BINARIES
Spoiler: CODE
The following code was used to pull Termux's properties File
Code:
adb pull /data/data/com.termux/files/home/.termux/termux.properties
Spoiler: FILE
Code:
### After making changes and saving you need to run `termux-reload-settings`
### to update the terminal. All information here can also be found on the
### wiki: https://wiki.termux.com/wiki/Terminal_Settings
###############
# General
###############
### Allow external applications to execute arbitrary commands within Termux.
### This potentially could be a security issue, so option is disabled by
### default. Uncomment to enable.
# allow-external-apps = true
### Default working directory that will be used when launching the app.
# default-working-directory = /data/data/com.termux/files/home
### Uncomment to disable toasts shown on terminal session change.
# disable-terminal-session-change-toast = true
### Uncomment to not show soft keyboard on application start.
# hide-soft-keyboard-on-startup = true
### Uncomment to let keyboard toggle button to enable or disable software
### keyboard instead of showing/hiding it.
# soft-keyboard-toggle-behaviour = enable/disable
### Adjust terminal scrollback buffer. Max is 50000. May have negative
### impact on performance.
# terminal-transcript-rows = 2000
### Uncomment to use volume keys for adjusting volume and not for the
### extra keys functionality.
# volume-keys = volume
###############
# Fullscreen mode
###############
### Uncomment to let Termux start in full screen mode.
# fullscreen = true
### Uncomment to attempt workaround layout issues when running in
### full screen mode.
# use-fullscreen-workaround = true
###############
# Cursor
###############
### Cursor blink rate. Values 0, 100 - 2000.
# terminal-cursor-blink-rate = 0
### Cursor style: block, bar, underline.
# terminal-cursor-style = block
###############
# Extra keys
###############
### Settings for choosing which set of symbols to use for illustrating keys.
### Choose between default, arrows-only, arrows-all, all and none
# extra-keys-style = default
### Force capitalize all text in extra keys row button labels.
# extra-keys-text-all-caps = true
### Default extra-key configuration
# extra-keys = [[ESC, TAB, CTRL, ALT, {key: '-', popup: '|'}, DOWN, UP]]
### Two rows with more keys
# extra-keys = [['ESC','/','-','HOME','UP','END','PGUP'], \
# ['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']]
### Configuration with additional popup keys (swipe up from an extra key)
# extra-keys = [[ \
# {key: ESC, popup: {macro: "CTRL f d", display: "tmux exit"}}, \
# {key: CTRL, popup: {macro: "CTRL f BKSP", display: "tmux ←"}}, \
# {key: ALT, popup: {macro: "CTRL f TAB", display: "tmux →"}}, \
# {key: TAB, popup: {macro: "ALT a", display: A-a}}, \
# {key: LEFT, popup: HOME}, \
# {key: DOWN, popup: PGDN}, \
# {key: UP, popup: PGUP}, \
# {key: RIGHT, popup: END}, \
# {macro: "ALT j", display: A-j, popup: {macro: "ALT g", display: A-g}}, \
# {key: KEYBOARD, popup: {macro: "CTRL d", display: exit}} \
# ]]
###############
# Colors/themes
###############
### Force black colors for drawer and dialogs
# use-black-ui = true
###############
# HW keyboard shortcuts
###############
### Disable hardware keyboard shortcuts.
# disable-hardware-keyboard-shortcuts = true
### Open a new terminal with ctrl + t (volume down + t)
# shortcut.create-session = ctrl + t
### Go one session down with (for example) ctrl + 2
# shortcut.next-session = ctrl + 2
### Go one session up with (for example) ctrl + 1
# shortcut.previous-session = ctrl + 1
### Rename a session with (for example) ctrl + n
# shortcut.rename-session = ctrl + n
###############
# Bell key
###############
### Vibrate device (default).
# bell-character = vibrate
### Beep with a sound.
# bell-character = beep
### Ignore bell character.
# bell-character = ignore
###############
# Back key
###############
### Send the Escape key.
# back-key=escape
### Hide keyboard or leave app (default).
# back-key=back
###############
# Keyboard issue workarounds
###############
### Letters might not appear until enter is pressed on Samsung devices
# enforce-char-based-input = true
### ctrl+space (for marking text in emacs) does not work on some devices
# ctrl-space-workaround = true
Spoiler: MORE TERMUX KNOWLEDGE
Internal and external storage - Termux Wiki
wiki.termux.com
Spoiler: BUILT IN BINARIES
Spoiler: QEMU X11 REPOS
QEMU-SYSTEM-X86_64 7.0 USER MANUAL PART 1​
Spoiler: SHOW
X86_64 USER MANUAL PART 2​
Spoiler: SHOW
EXECUTABLE SCRIPTS​
Spoiler: SHOW
Spoiler: HEADLESS INSTALL SCRIPT
This script simply saves us the time of retyping the virtual's machine's installation parameters by running "./hinstall.sh"
Spoiler: PREREQUISITES
A Rooted Device To Be Able To Modify and Execute Your New Scripts
You need to have Qemu Built already, have made your directory, and changed to it for the scripts to work
I.E hand type this part
Code:
pkg install x11-repo
apt-get upgrade -y
pkg install qemu-utils -y
pkg install qemu-system-x86-64-headless -y
mkdir win7
cd win7
qemu-img create -f qcow2 win7.img 100G
Make a new text file on your desktop. Call it hinstall
Open the text file and paste in:
Code:
qemu-system-x86_64 -smp 2 -net nic -net user -device AC97 -m 2048 -vnc 127.0.0.1:7 -cdrom win7.iso -hda win7.img
Spoiler: PIC
Save the file, change the extension to .sh, and paste it into barenox/bin.
Open command prompt from the toolbar and paste:
Code:
adb push hinstall.sh /data/data/com.termux/files/home/win7
adb root
adb shell chmod 777 /data/data/com.termux/files/home/win7.hinstall.sh
./hinstall.sh
Spoiler: PIC
Now run this in Termux: (In the win7 directory, per this example, minus the top picture xD)
Code:
./hinstall.sh
and that will start the virtual machine for us, without us needing to type in the steps. I have automated all this further, It will be added to the SOURCE section eventually
Spoiler: HEADLESS RUN SCRIPT
This script simply saves us the time of retyping the virtual's machine's parameters by running "./hrun.sh"
Make a new text file on your desktop. Call it hrun
Open the text file and paste in:
Code:
qemu-system-x86_64 -smp 2 -net nic -net user -device AC97 -m 2048 -vnc 127.0.0.1:7 -hda win7.img
Save the file, change the extension to .sh, and paste it into barenox/bin.
Open command prompt from the toolbar and paste:
Code:
adb push hrun.sh /data/data/com.termux/files/home/win7
adb root
adb shell chmod 777 /data/data/com.termux/files/home/win7.hrun.sh
You are now able to start your windows 7 vm in Termux by changing to the win7 directory and typing
Code:
./hrun.sh
Then open your vnc or spice app
Spoiler: ADB PUSH ALL SCRIPT
This is a simple script to automate pushing the windows iso, the hinstall.sh file. and hrun.sh file.
Simply paste the text in a new document and name it something like ".PUSHALL.bat"
We add the period at the beginning so the script will appear at the top of file list when added to the bin folder.
Spoiler: PIC
Code:
adb push win7.iso /data/data/com.termux/files/home/win7
adb push hinstall.sh /data/data/com.termux/files/home/win7
adb push hrun.sh /data/data/com.termux/files/home/win7
adb root
adb shell chmod 777 /data/data/com.termux/files/home/win7/hinstall.sh
adb shell chmod 777 /data/data/com.termux/files/home/win7/hrun.sh
The final commands in the script, adb root and chmod, allow us to modify the scripts we sent over, so they are allowed to be executed in Termux by using ./ and then the file name, like: ./hinstall.sh
You would then paste all these files into barenox/bin (or your adb directory if working on your own device) and run the .push-all.bat file, it will go through and automatically push over the iso and files, and chmod them for us. (You would need root permissions for this sort of automation)
See Windows 7 SOURCE for further documentation. (Work In Progress)
Spoiler: PULL VIRTUAL MACHINE'S HDD
You can make a batch file to easily pull the machine's hdd
Code:
adb pull /data/data/com.termux/files/home/win7/win7.img
Spoiler: HOW TO EDIT SCRIPTS IN WINDOWS
Right click and edit the batch and sh files
press ctrl plus h and replace as needed
To Edit the .sh without need of other program just change it to ".txt" and edit in there, then change back
Spoiler: HOW TO EDIT SCRIPTS IN TERMUX
In Termux, you can use the command "nano" then your file name, to edit the file in the shell
Make your edits here
Then press ctrl + x and then ENTER to save and close the file. You need to use Termux's built in ctrl button and then press X
Spoiler: SU HOME CODE
When you go into superuser mode in Termux, it forces you into the Root directory on your android device. You can create a script called home.sh
with code:
Code:
cd /data/data/com.termux/files/home/
and adb push and chmod the script, so now after you type su,
you can type ./home.sh and be rerouted to your termux home with all your machines
Will add more as I make them
PROGRAMMER'S NOTES​
Spoiler: SHOW
Spoiler: WINDOWS7
There's no additional programming notes here, other than to select custom install when you first run the disk in the emulator, else it will cause a loop.
Win7 is such a sweet baby <3 at least for the initial setup. Now we can finness the creation by adding certain dependencies to play windows games like .net framework, haxm and more but I will do that another day
Spoiler: TINY7
This is the only entry that is actually located in it's SOURCES tree, I am unable to move it bc it has a lot of images
Spoiler: WINDOWS 11 ARM
Spoiler: OBTAINING THE ISO
Spoiler: UUPDUMP
If you're not familiar with using UUPDUMP, I'll walk you through using them to get the Windows 11 ARM iso. You could use this site for other Windows Related ISOs and products but that will not be covered here.
UUP dump
UUP dump lets you download Unified Update Platform files, like Windows Insider updates, directly from Windows Update.
uupdump.net
Select the arm64 version for latest public build
Select only Windows Home (Unless you need pro for its built in tools)
Uncheck include updates
Unzip the package and run the uup download windows cmd
When the dl finishes, you can identify your iso's name by this line in cmd prompt. You can then rename it to what you like
Spoiler: DOWNLOAD WIN11 ARM
If you don't want to have to do the uupdump steps, I have uploaded my copy of windows 11 arm from them, to gdrive for us <3
DOWNLOAD:
win11arm.iso
drive.google.com
(4.16GB)
Spoiler: QEMU-IMG HACK, MAY BE USEFUL WITH OTHER PROGRAMS
To even be able to view the help file for qemu-img in Termux, I had to use Root explorer to copy the binary from data/data/com.termux/files/usr/bin
and paste it to data/data/com.termux/files/home
That allowed me to be able to call the help command and not get a packaging error. Even when using su to break out of the terminal's sandbox, I was unable to run the command.
Evidently the way termux stores usr added packages, breaks the logic when executing certain functionality, so this is a good "hack" if you need to see a certain tool's help file
Spoiler: AARCH64 EFI DRIVER
Download the driver from here:
Ubuntu – Error
Unzip the package, and open the folder until you get here:
Then copy the efi driver and adb push it to your arm system folder, in this case I am working on windows 11 arm so the path will be
Code:
adb push QEMU_EFI.fd /data/data/com.termux/files/home/win11arm
We have to add the efi driver to our machine's build directory, as opposed to the usr/share folder as shown in an example i listed earlier, due to us building in Termux.
PROGRAMMER'S NOTES​
QEMU-IMG (QEMU UTILITIES)​
Spoiler: SHOW
QEMU-SYSTEM-X86_64 CPU LIST​
Spoiler: SHOW
QEMU-SYSTEM-ARM 7.0 USER MANUAL PART 1​
Spoiler: SHOW
ARM USER MANUAL PART 2​
Spoiler: SHOW
ARM SYSTEM CPU LIST
QEMU-SYSTEM-AARCH64(ARM64)USER MANUAL ​
Spoiler: SHOW
​
AARCH64 USER MANUAL PART 2​
Spoiler: SHOW
​available cpus
Working on this build now. The very first step involves us using an efi driver. This has been added to the programming notes. The beginner code I am building with has been added to the SOURCES tree. Starting with figuring out WIN11ARM then we build android
If anyone makes anything cool feel free to share, it can be any of the qemu systems.
Spoiler: notes
This will eventually be moved into more relevant areas, as per usual. Just jotting down notes so I don't have to start from scratch.
I'm building based off a guide from here https://futurewei-cloud.github.io/ARM-Datacenter/qemu/how-to-launch-aarch64-vm/
There's been new REFS added to the OP to support knowledge gained from this man's Wonderful post. The programming and code is going to differ based on QEMU being at 7.0 at this point in time.
In order to properly flash the memory sets to the pflash file we are going to create, we will use a system binary called "zero". This can be located on any android device in the dev folder.
These articles are great illustrators of the usefulness (and age!) of this file system, to better understand what we are asking the dd program to do with it
/dev/zero - Wikipedia
en.wikipedia.org
Purpose of /dev/zero?
I tried to cat /dev/zero, and it didn't seem to do anything. I googled /dev/zero, and it says it's basically a blank file with infinite size. Is cat printing an infinite number of non-existent char...
unix.stackexchange.com
Im having troubles understanding what a pflash exactly is besides the qemu documentation https://wiki.qemu.org/Features/PC_System_Flash
Qemu won't load images if they aren't formatted RAW and the semantics in doing so with a pflash in qemu 7.0 are different. This is such an obscure area, it's hard to find everything... so kinda making it up as we go haha
The install code is having this error
https://forum.xda-developers.com/attachments/dd-png.5593745/
dd: different unit for bs, skip and count?
I am trying to copy a partition from an entire disk image. This command is working: dd if=image.iso of=test bs=512 skip=1161215 count=32768 In order to increase the speed, I'd like to set a bigge...
askubuntu.com
I have no idea what I am doing, so if there is someone smarter that can help enlighten us on how to do things properly that would be awesome. Otherwise I will continue to poke, prod, break, and remake until something works xD
taking a break on this for a few days to focus on the shield again. will be back~! <3
David Bombal has a good guide up how to get Kali Linux Nethunter on any android device (no root needed) using termux, and in it he showcases a different vnc app. I will investigate this share in the future. Just saving it and sharing it <3 https://davidbombal.com/kali-linux-nethunter-android-install-in-5-minutes-rootless/
Have been looking for a proper guide to actually emulate x86-based Windows on modern ARM64 Snapdragon chips for years, and somehow you descended from xda heaven. Thank you, I'll be having a fun few weeks of spare time now. I will report any progress or issues I encounter down the road.
Hi. I'm trying to find the guide to use a pre-made image (Tiny7.img) instead of creating a new for starters to get a grip on stuff, but I can't find it.
Could you help me? @jenneh
@tehdomic sorry it got buried in everything. the direct google link is here https://drive.google.com/file/d/12uP_rIEoPzqHqh0UqbsLDw6IqYbtNY4K/view
the comment the info is under here with the instructions, they are in the download area.
How To Install Windows Or Linux ISOs on your Android Devices - Windows 10 Nox Lab + Working Arm Distros for your phone using Termux
Update: A new thread is created to house "premade" linux distros. The first premade environment is an Ubuntu distro, installed using proot-distro in termux, Takes only a few minutes to restore the backup, else instructions are provided to build...
forum.xda-developers.com
Spoiler: show

Categories

Resources