Run Ubuntu 10.10 on Nexus One
--------------------------------
Background:
In June 2010, XDA zedomax got Ubuntu 9.04 running on Nexus One, tutorial is available at this thread:
http://forum.xda-developers.com/showthread.php?t=718952
I continued studying the tutorial and worked out a way to make Ubuntu 9.04 running better, smoother and cause less error, here's my post:
http://forum.xda-developers.com/showthread.php?t=815532
Recently HTC_Linux team has released version 0.3 of their Ubuntu image, compare to the original guide provided by zedomax, the v0.3 release is based on the latest Ubuntu 10.10. So I thought about making this tutorial to guide you to run Ubuntu 10.10 on your Nexus One.
--------------------------------
What benefits will you get from running Ubuntu 10.10 on Nexus One (at least):
1. Fully functional Linux terminal, with all standard Linux command line utilities
2. Fully functional desktop browser Firefox 3.6.13
3. Ability to compile and run native Linux applications
4. Bunch of graphical Internet and utility applications as shown in the screenshots
--------------------------------
Credit:
Thanks to the great XDA-developers community.
Thanks to Zedomax for providing the original tutorial of running Ubuntu on Nexus One.
Thanks to HTC_Linux team for creating the optimised Ubuntu 10.10 image file.
--------------------------------
Now the tutorial starts.
Preparation:
1. A micro SD card at least 4GB in capacity, 8GB/16GB is recommended
2. (Optional) If you're using Froyo App2SD, move all your applications which are on SD card back to Internal Storage, or you may also uninstall all applications that are on SD card. If you fail to do so, you won't be able to enter Ubuntu. However I've discovered a way that you won't need to move or uninstall apps on SD card, will discuss later.
3. Basic Linux shell knowledge
Then:
1. Get Ubuntu 10.10 from this post (file name: hd2-ubuntu_0.3.zip): http://forum.xda-developers.com/showthread.php?t=889433
2. Download attached scripts.zip
3. On your computer, make a directory on a partition that has more than 3.5GB available space, name the directory “ubuntu” (case-sensitive!)
4. Extract three scripts (b, e, u) from scripts.zip to the directory ubuntu
5. Once you finish download hd2-ubuntu_0.3.zip, extract linux/rootfs.ext2 to the directory ubuntu
6. In your ubuntu directory, rename rootfs.ext2 into ubuntu.img (case-sensitive!)
7. Now verify that you have the following files in your computer's ubuntu directory: b, e, u, ubuntu.img
8. Copy the whole ubuntu directory onto your SD card, put the SD card back to your phone
9. Power up your Nexus One
Now we have some script work:
1. Run a terminal application from your phone (e.g. Android Terminal, Better Terminal Emulator)
2. type “cd /sdcard/ubuntu” (enter)
3. type “sh u” (enter)
4. If you see “Type 'b' to boot Ubuntu”, then you're almost there!
5. Type “b” (enter)
6. If you see “[email protected]:/#” (like shown in screenshot) Congratulations! Now you're running Ubuntu 10.10 on your Nexus One!
Whenever you want to enter Ubuntu again, simply type “b” (enter) in your Android Terminal.
To properly exit from Ubuntu, you must type “exit” from Ubuntu terminal.
If your Android terminal application gets killed by Android system (i.e. you lost Ubuntu terminal), you need to go back to Android terminal, type “e” (enter), that will properly unmount Ubuntu.
Very often that you can get “loop device busy” error when exiting from Ubuntu, in that case, type “e” (enter) multiple times (it's harmless to run “e” script multiple times, don't worry). If still you get “loop device busy” error, don't worry, ignore it then.
--------------------------------
(Optional) If you would prefer working with GUI, now let's do some extra script work:
1. Install “android-vnc-viewer” from Market (freeware)
2. Enter Ubuntu terminal
3. Make sure that you have network connection (Wi-fi recommended)
4. type “apt-get update” (enter), and wait till it finishes
5. type “apt-get install tightvncserver” (enter) and answer “y” to the question
6. After installed tightvncserver, type “cd /bin” (enter)
7. Type the following commands (all are case-sensitive!):
“cat > x” (enter)
“rm -r -f /tmp” (enter)
“mkdir /tmp” (enter)
“chmod 777 /tmp” (enter)
“export USER=root” (enter)
“export XKL_XMODMAP_DISABLE=1” (enter)
“vncserver -geometry 1024x800” (enter)
(enter)
(press and hold trackball and click D on keyboard)
“chmod 777 x” (enter)
8. The above procedure makes a script named “x”, whenever you want to start GUI, you need to type “x” (enter).
Notice that the first time (only the first time) you run “x” script you'll be prompt to enter a password for VNC connection, then you'll be asked whether to create a “view-only” password, since it is not necessary, answer “n” to the question.
9. Start “android-vnc-viewer”, create a new connection with the following settings:
Nickname: (anything you like to identify the connection)
Password: the VNC connection password that you created when ran the “x”script
Address: localhost
Port: 5901
Color format: 24-bit color (4 bpp)
Click “Connect” button, and in about a minute, you'll see your Ubuntu 10.10 desktop!
10. We still need to create one final script called “s”, now go back to your Ubuntu terminal and type:
“cd /bin” (enter)
“cat > s” (enter)
“export USER=root” (enter)
“vncserver -kill :1” (enter)
“vncserver -kill :2” (enter)
“sudo reboot” (enter)
“sudo halt” (enter)
(enter)
(press and hold trackball and click “D” on keyboard)
“chmod 777 s” (enter)
11. If you have GUI running, you * MUST * type “s” (enter) to stop VNC server before you exit from Ubuntu terminal!
In case that your Android kills your Android Terminal application and you still have VNC server running, do the following steps:
a. Start Android Terminal
b. type “b” (enter) to bring back Ubuntu terminal
c. type “s” (enter) to stop VNC server
d. type “exit” (enter) to exit from Ubuntu terminal
Fail to do so you will have problem with VNC connection next time you use it.
--------------------------------
What are not working in Ubuntu:
1. Sound
2. Some applications may not run (I guess, due to Android memory management mechanism)
--------------------------------
A little trick to access SD card from your Ubuntu:
1. Install “SwiFTP” from Market (freeware)
2. Set up FTP server using SwiFTP
3. In Ubuntu, “Places → Connect to Server” then:
Service type: FTP (with login)
Server: localhost
Port: (port number specified in SwiFTP, default is 2121)
Folder: /
User Name: (user name specified in SwiFTP)
Then press “Connect” and enter your password specified in SwiFTP. Now feel free to access your phone's file system!
--------------------------------
How to bring up Ubuntu if you have applications installed on SD card using Froyo App2SD:
1. Make sure that your Android Terminal application is installed in Internal Storage
2. Put a shortcut to Android Terminal application on your home screen
3. Make sure you have got ubuntu directory and all its contents on SD card
4. Reboot your phone (stay sharp, these following steps require perfect timing!)
5. Once you enter lock screen, Immediately unlock it.
6. Enter Android Terminal and type “b” as quick as possible, do not press Enter yet!
7. Pay close attention to your notification bar, as soon as the “SD: Checking for errors” notification disappears (the little SD icon disappears), Immediately press Enter.
8. Now you should be in Ubuntu terminal, wait 1-2 minutes before you do anything else.
9. After 1-2 minutes, you may do whatever you want.
With some applications installed on SD card, you must do the procedure above to bring up Ubuntu terminal each time you reboot your phone.
--------------------------------
That's it! Thank you for reading this tutorial. Please feel free to make any comment or ask any question!
Awesome. I'll be trying this out as soon as I get a larger SD card. It would be great if you could upload a .zip with all of the scripts, downloads, etc. already placed in one folder; that would make it a lot easier.
Thx U for this Tutorial....it was really helpful...Can u fix the adobe flash thing...i know that sound will not work but just wondering if it can be installed.
yumcax said:
Awesome. I'll be trying this out as soon as I get a larger SD card. It would be great if you could upload a .zip with all of the scripts, downloads, etc. already placed in one folder; that would make it a lot easier.
Click to expand...
Click to collapse
Actually I thought about the same but here my uploading speed is 15kb/s maximum, so I'm not sure if I'm gonna upload a 600mb file...
reubenjack said:
Thx U for this Tutorial....it was really helpful...Can u fix the adobe flash thing...i know that sound will not work but just wondering if it can be installed.
Click to expand...
Click to collapse
Adobe Flash has no support for ARM architecture.. sorry, there's no way to install Adobe Flash plugin for Firefox on Ubuntu ARM.
OMG Im abt to die. Transfering the folder to my sd card takes 20 min. I really nid to get a better memory card (higher speed). SIGH..
Works nice on my N1 running MIUI 12.24..
BTW I have a question, if I wipe my phone(data,cache).. Would I need to perform any steps then?
Keshav_CoolDude said:
Works nice on my N1 running MIUI 12.24..
BTW I have a question, if I wipe my phone(data,cache).. Would I need to perform any steps then?
Click to expand...
Click to collapse
If you re-installed a rom (i.e. /system partition gets rewritten)
You'll need to execute the following commands on Android Terminal:
cd /sdcard/ubuntu
sh u
then type "b" to enter Ubuntu terminal
Happy New Year!
Hey,
In the OP you mention that some apps will not run because of the memory management? Is there a size threshold that this is start to be seen at or is it totally random on which things run/don't?
Thanks
houzuoguo said:
If you re-installed a rom (i.e. /system partition gets rewritten)
You'll need to execute the following commands on Android Terminal:
cd /sdcard/ubuntu
sh u
then type "b" to enter Ubuntu terminal
Happy New Year!
Click to expand...
Click to collapse
Okay.. Thanks for the guide..
Happy New Year..
Chopes said:
Hey,
In the OP you mention that some apps will not run because of the memory management? Is there a size threshold that this is start to be seen at or is it totally random on which things run/don't?
Thanks
Click to expand...
Click to collapse
I'm not very familiar with Linux kernel so sorry I can't give an accurate explanation
According to my observation, many applications in the Ubuntu 10.10 can successfully start (program title appears in task bar) but immediately they turn off by themselves.
And it seems to me that all those applications share a same characteristic: they're relatively bigger than others. For example, Terminal runs, Dictionary runs, Firefox runs, but Ubuntu Software Centre won't run.
So my guess is ... Android system would not allocate too much memory for an application in Ubuntu, thus they get killed before they could start.
I'll give this a one thumb up, because I got it working, got to play around a bit... it looks really nice... but I did a reboot of my phone after shutting it down properly, and now everytime I try to launch ubuntu again, I get a bunch of errors.
I've tried just about everything.... restoring to my nand backup I did before trying this, deleting the files off the sdcard and on my system relating to this, tried to set everything back up... but I still get errors and I can't get past them, even with trying "e" in the term.
FWIW, I'm on CM 6.1.1 and I do use DTa2sd with plenty of space left on all partitions. Here's a pastebin of my errors : http://pastebin.com/adCQ62iF
tehgeekguy said:
I'll give this a one thumb up, because I got it working, got to play around a bit... it looks really nice... but I did a reboot of my phone after shutting it down properly, and now everytime I try to launch ubuntu again, I get a bunch of errors.
I've tried just about everything.... restoring to my nand backup I did before trying this, deleting the files off the sdcard and on my system relating to this, tried to set everything back up... but I still get errors and I can't get past them, even with trying "e" in the term.
FWIW, I'm on CM 6.1.1 and I do use DTa2sd with plenty of space left on all partitions. Here's a pastebin of my errors : http://pastebin.com/adCQ62iF
Click to expand...
Click to collapse
Happy New Year!
Could you please go to Settings-> Application Settings-> Manage Applications-> on SD card and confirm there is no application on SD card?
Also please make sure you execute "b" after "Checking for Errors" notification disappears.
Running this distro does that mean i can use firesheep on my n1?
Awesome! What kind of battery life are you seeing using Ubuntu? Any apps in particular you've enjoyed having on your N1?
rossonza said:
Running this distro does that mean i can use firesheep on my n1?
Click to expand...
Click to collapse
According to my study Firesheep would require WinPcap to work, WinPcap is only available for Windows so unfortunately you can't use it.
Deathwish238 said:
Awesome! What kind of battery life are you seeing using Ubuntu? Any apps in particular you've enjoyed having on your N1?
Click to expand...
Click to collapse
I notice battery drains 2-3 mAh more when Ubuntu is idle, when actually using Ubuntu I notice 30-40mAh higher current draw. So actually it's not much
hey thanx houzuoguo,
working great on my n1....!!
is there any solution for the sound to run...??
I cant seem to get any of the "cat >" letters to work, it just hangs in the terminal.
houzuoguo said:
According to my study Firesheep would require WinPcap to work, WinPcap is only available for Windows so unfortunately you can't use it.
I notice battery drains 2-3 mAh more when Ubuntu is idle, when actually using Ubuntu I notice 30-40mAh higher current draw. So actually it's not much
Click to expand...
Click to collapse
Firesheep works in Ubuntu, you just have to compile it yourself.
1) Download the required dependencies:
Code:
sudo apt-get install autoconf libtool libpcap-dev libboost-all-dev libhal-dev xulrunner-1.9.2-dev
2) Install git:
Code:
sudo apt-get install git
3) Download the Firesheep source:
Code:
git clone https://github.com/codebutler/firesheep.git
4) Change to the Firesheep directory:
Code:
cd firesheep
5) Initialize it:
Code:
git submodule update --init
6) Compile it:
Code:
./autogen.sh && make
7) You'll find the file in the build directory.
hotweiss said:
Firesheep works in Ubuntu, you just have to compile it yourself.
1) Download the required dependencies:
Code:
sudo apt-get install autoconf libtool libpcap-dev libboost-all-dev libhal-dev xulrunner-1.9.2-dev
2) Install git:
Code:
sudo apt-get install git
3) Download the Firesheep source:
Code:
git clone https://github.com/codebutler/firesheep.git
4) Change to the Firesheep directory:
Code:
cd firesheep
5) Initialize it:
Code:
git submodule update --init
6) Compile it:
Code:
./autogen.sh && make
7) You'll find the file in the build directory.
Click to expand...
Click to collapse
Not to threadjack or anything of the sort but:
Does the above method work on getting firesheep installed on a n1 running ubuntu or is this just the way to install it assuming your running on normal hardware?
Second question, what is the resulting file?
Thanks,
Which terminal application are you using, and did you type the "cat >" on screen keyboard or copy&paste?
TUTORIAL ON ADB AND LOGCAT : JDMC : Just doing my contribution.
This is part of TeamAscend, so if you are going to post this Tutorial on other forums please credit me, visit our website : I AM AWESOME!
Hello this is just to teach newbie users on how to install adb and get it working, I will also teach you how to use logcat to help devs with particular issues, okay lets get into it, I will try to be as formal and understandable is I can, I'm still a 15 year old so bare with my written language, not that its bad but we Kiwi's use weird slangs...
Setting up ADB
1. Okay first of all we need to enable Android debugging.
1a. To do so, head into Settings > development and check android debugging, If you're on CM10 + you will need to set Developer Options to "ON" then select Android Debugging.
2. Get a usb adapter and connect it to your pc and connect your device. Let it install drivers "If it's the first time.
3. Download "SDK Tools". and install it to your desktop for now, you can move it later when you want.
4. Now create a new folder on the desktop and copy all SDK contents into it so its neat and tidy.
5. Open "SDK Manager" and un-check everything except "Android SDK Platform-Tools" and click install packages, wait till it's done then close the window, now you should be in the folder that contains the SDK Tools etc... if you see the "platform-tools" folder you're good to go.
6. Now open the "platform-tools" folder and copy the destination output at the top.
7. Now we need to set the new destination to CMD, click the start button type "cmd".
8. When it opens type "cd" obviously without the ", now hit space and click paste now your command should look something like this...
"cd C:\Users\Your PC name\Desktop\the folder that contains the sdk tools name\platform-tools" here's mine : "cd C:\Users\Lenovo\Desktop\ADB\platform-tools". Now hit enter, your target folder will change.
9. Once its done type " adb devices", make sure your phone is connected! now hit enter and it'll show your device, now you know ADB Is up and running! If doesn't show your device continue to the next step, if it does continue from step "11".
10. Download the HTC drivers and install it, plug your phone again and wait for it to install all components, if MTP fails to install just ignore it. (If your storage is on MTP), now repeat the procedure from "7" again.
11. Now lets Logcat, Now there are 2 different approaches to the logcat, I will be showing you how to do both in this tutorial. Neither one is more correct than the other, it is 100% personal preference. Feel free to try both and see where you get.
LOGCAT PROCEDURE
Doing logcat from inside the CMD window.
1. Make sure your phone is plugged in and debugging is on, now repeat procedure "7" to set target folder if it isn't already done. ie : cd _____________________________ <-- your folder destination.
2. Type "adb logcat" without the " and hit enter. It will then print a list of random writing, whether you understand or not, it doesn't matter, it's not for your use .
3. To save the logcat for devs to use, once the logcat is running, please RECREATE the bug/issue you are having. so that it logs the error into it, now to stop the logcat hit "ctrl" + "C".
4. Once this is done please RIGHT CLICK choose "Select All" then press "Enter" on your keyboard this will copy the entire log to the clipboard. You can then paste it into a .txt file to upload and show to devs.
Doing logcat to text file.
1. Now repeat procedure "7" to set target folder if it isn't already done, make sure your phone is plugged in and usb debugging mode is enabled. Once this is done we are going to type the following command "adb logcat > logcat.txt" without the ", this should initiate the logcat, it will appear as though nothing is happening, this is correct!!! So don't worry.
2. Once the logcat is running, please RECREATE the bug/issue you are having. To stop the logcat on your keyboard press "ctrl" + "C".
3. Now you've done logging, note the logcat.txt file will be located in the platform-tools folder, just open it and you will see logcat.txt, upload it for the dev and he/she will investigate.
More ADB Commands for various logcats Thanks to "Tcpaulh" from Modaco.
External adb folder, just needed thanks man : Download
1. radio logcat for Wifi issues.
adb logcat -b radio > radiolog.txt
2. kernel logs.
adb shell
su
cat /proc/kmsg > /sdcard/kmsg.txt
exit
adb pull /sdcard/kmsg.txt
3. kernel message buffer (on request).
adb shell
dmesg > /sdcard/dmesg.txt
exit
adb pull /sdcard/dmesg.txt
This was a tutorial I wrote up for my old device, users found it easier to understand then most, I cleaned this one up a bit which should be suitable for the Desire X, note, I may ask allot of question like a noob on the Q & A but HTC is so confusing.
Hopefully, users start using this so we can help out our devs, our sweet sweet devs, so they can whip u some magic.
If this helped, hit the thanks meter, no need for donations.
prove:
I give a zip file.download and extract it.you can find a video watch it as the prove of this post
You can test GSi ROM without any data loss.....
Requirements:
1.Need a laptop with Linux (window also can do...but Linux is batter for CMD line)
2.Unrooted phone.(magisk patch boot not boot gsi for my case try it if it work or not)
3.vbmeta.img(flash it via 'fastboot flash vbmeta vbmeta.img')
3.java installed in your machine...
4.Working brain to solve Errors.:fingers-crossed::fingers-crossed:
Step 1:
Go to the link and download any official gsi arm64-ab version (I can not boot unofficial gsi..Descendant X....any room which it not boot remember you cannot boot it even fastbood method )
https://www.google.com/url?sa=t&sou...FjAAegQIARAB&usg=AOvVaw0IRaTTGUOyl04z17LCE96H
Step 2:
Extract and rename file as 'system.img'...
Step 3:
Now open CMD terminal from where your system.img located and paste this cmd...
simg2img system.img system_raw.img
Error and slove...
You need to install simg2img on Linux...
After install and run this CMD you found error like about header file magic or like something...do not worry... that's mean your system.img file already a raw file and do not need to convert it..just rename this file as 'system_raw.img'
Step 4:
Now open CMD terminal from where your system_raw.img located paste this cmd...
gzip -c system_raw.img > system_raw.gz
Wait for finish..
Step 5:
Now connect your phone with via cable and in developers options turn on usb debugging mood and run this CMA...
adb push system_raw.gz /storage/emulated/0/Download/
Wait for finish........
Step 6:
Now run this CMD..
adb shell setprop persist.sys.fflag.override.settings_dynamic_system true
Step 7:
Now run this CMD...
adb shell am start-activity \
-n com.android.dynsystem/com.android.dynsystem.VerificationActivity \
-a android.os.image.action.START_INSTALL \
-d file:///storage/emulated/0/Download/system_raw.gz \
--el KEY_SYSTEM_SIZE $(du -b system_raw.img|cut -f1) \
--el KEY_USERDATA_SIZE 8589934592
You need to varying your identity by fingerprints or parttern if your device has lock function on...after varify you will notice a notification like this...
Dynamic system update
That's mean you can successfully do my instructions....:cyclops::cyclops:..
Wait for finish....
Now you have two option restart or discard....
Tap restart to go to your gsi or discard to destroy gsi install....
On gsi you can do what you want..
If your work or discover finis then reboot the phone with power button option.
After reboot you are now miui and yes no data lost...
After some moments you can again get two options (Restart or discard)...
This process go untill you discard gsi...
If you stay gsi after reboot then run the CMD....
adb shell gsi_tool enable
Now you can stay gsi after reboot how many time you want...
Disable this feature now type this CMD ...
adb shell gsi_tool disable
If you face some problems....tell me want is your problem......
If you can dual boot your device the thanks is free...
Go throw below link for more information...
https://developer.android.com/topic/dsu
Redmi note 9 merlin doesn't support seamless system update. Is it possible to do this?
Halloul said:
Redmi note 9 merlin doesn't support seamless system update. Is it possible to do this?
Click to expand...
Click to collapse
I think it's better to provide your questions in Redmi note 9 fourms in Xda.
Check it :https://forum.xda-developers.com/redmi-note-9
Halloul said:
Redmi note 9 merlin doesn't support seamless system update. Is it possible to do this?
Click to expand...
Click to collapse
Redmi note 9 supporting dynamic storage if it come with android 10 out of box..if you hava fastboot rom then go to image folder on it and find super.img.
If super.img found that's mean your are good to go...
Or if you find system.img and vendor.img then sorry
1st time its works great
Then i want to check another gsi but not showing in the notification menu
Mantipallykrishna said:
1st time its works great
Then i want to check another gsi but not showing in the notification menu
Click to expand...
Click to collapse
If you use two GSI. That's mean you install a a dynamic GSI over a GSI then the problem will happen. Because all GSI can not capable with it. If you flash dynamic GSI over MIui Rom then the problem not happened.when you in MIui then restart to go dynamic GSI.when you are in dynamic GSI then do not reboot your device just power off and then power on your device to go MIui.then you find the dynamic GSI restart option again.even if you can not find the notification then go to your device recovery option and reboot device from recovery mood.
Even if your problem not solve then you can activate GSI from adb cmd
adb shell gsi_tool enable
Then you can go GSI and when you reboot you can not go back MIui but it is good option to use GSI without data loss.to deactivate just run this adb cmd
adb shell gsi_tool disable
Now reboot and then you can back MIui again..
But remember to check if your dynamic GSI can connect you PC via adb.
This method work for me.I also face the same problem like you.hope you can solve your problem.and remember one thing that if you use magisk patched boot.img then you can not boot your dynamic GSI.I think it is a bug hopefully it will solve soon
the first time worked fine, then i tried the command: adb shell gsi_tool enable, for some reason i wasn't able to connect to gsi with adb to turn it off: adb shell gsi_tool disable
i flashed miui with miflash, but now the installation won't start again
just found out that when a micro sd card ist in the phone, for some reason dsu won't show up, i removed the micro sd card, restarted the phone, and now dsu shows in the notification bar
Shas45558 said:
prove:
I give a zip file.download and extract it.you can find a video watch it as the prove of this post
You can test GSi ROM without any data loss.....
Requirements:
1.Need a laptop with Linux (window also can do...but Linux is batter for CMD line)
2.Unrooted phone.(magisk patch boot not boot gsi for my case try it if it work or not)
3.vbmeta.img(flash it via 'fastboot flash vbmeta vbmeta.img')
3.java installed in your machine...
4.Working brain to solve Errors.:fingers-crossed::fingers-crossed:
Step 1:
Go to the link and download any official gsi arm64-ab version (I can not boot unofficial gsi..Descendant X....any room which it not boot remember you cannot boot it even fastbood method )
https://www.google.com/url?sa=t&source=web&rct=j&url=https://github.com/phhusson/treble_experimentations/wiki/Generic-System-Image-%28GSI%29-list&ved=2ahUKEwj04pKZwfnrAhVLfXAKHV8FAFcQFjAAegQIARAB&usg=AOvVaw0IRaTTGUOyl04z17LCE96H
Step 2:
Extract and rename file as 'system.img'...
Step 3:
Now open CMD terminal from where your system.img located and paste this cmd...
simg2img system.img system_raw.img
Error and slove...
You need to install simg2img on Linux...
After install and run this CMD you found error like about header file magic or like something...do not worry... that's mean your system.img file already a raw file and do not need to convert it..just rename this file as 'system_raw.img'
Step 4:
Now open CMD terminal from where your system_raw.img located paste this cmd...
gzip -c system_raw.img > system_raw.gz
Wait for finish..
Step 5:
Now connect your phone with via cable and in developers options turn on usb debugging mood and run this CMA...
adb push system_raw.gz /storage/emulated/0/Download/
Wait for finish........
Step 6:
Now run this CMD..
adb shell setprop persist.sys.fflag.override.settings_dynamic_system true
Step 7:
Now run this CMD...
adb shell am start-activity \
-n com.android.dynsystem/com.android.dynsystem.VerificationActivity \
-a android.os.image.action.START_INSTALL \
-d file:///storage/emulated/0/Download/system_raw.gz \
--el KEY_SYSTEM_SIZE $(du -b system_raw.img|cut -f1) \
--el KEY_USERDATA_SIZE 8589934592
You need to varying your identity by fingerprints or parttern if your device has lock function on...after varify you will notice a notification like this...
Dynamic system update
That's mean you can successfully do my instructions....:cyclops::cyclops:..
Wait for finish....
Now you have two option restart or discard....
Tap restart to go to your gsi or discard to destroy gsi install....
On gsi you can do what you want..
If your work or discover finis then reboot the phone with power button option.
After reboot you are now miui and yes no data lost...
After some moments you can again get two options (Restart or discard)...
This process go untill you discard gsi...
If you stay gsi after reboot then run the CMD....
adb shell gsi_tool enable
Now you can stay gsi after reboot how many time you want...
Disable this feature now type this CMD ...
adb shell gsi_tool disable
If you face some problems....tell me want is your problem......
If you can dual boot your device the thanks is free...
Go throw below link for more information...
https://developer.android.com/topic/dsu
Click to expand...
Click to collapse
its give me proble when in start activity at the end.
===========================================================
adb shell am start-activity \
-n com.android.dynsystem/com.android.dynsystem.VerificationActivity \
-a android.os.image.action.START_INSTALL \
-d file:///storage/emulated/0/Download/system_raw.gz \
--el KEY_SYSTEM_SIZE $(du -b system_raw.img|cut -f1) \
--el KEY_USERDATA_SIZE 8589934592
Exception occurred while executing 'start-activity':
java.lang.IllegalArgumentException: No intent supplied
at android.content.Intent.parseCommandArgs(Intent.java:7790)
at com.android.server.am.ActivityManagerShellCommand.makeIntent(ActivityManagerShellCommand.java:341)
at com.android.server.am.ActivityManagerShellCommand.runStartActivity(ActivityManagerShellCommand.java:438)
at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:189)
at android.os.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:98)
at android.os.ShellCommand.exec(ShellCommand.java:44)
at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:11390)
at android.os.Binder.shellCommand(Binder.java:936)
at android.os.Binder.onTransact(Binder.java:820)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:5216)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3162)
at com.android.server.am.OppoActivityManagerService.onTransact(OppoActivityManagerService.java:169)
at android.os.Binder.execTransactInternal(Binder.java:1166)
at android.os.Binder.execTransact(Binder.java:1130)
=========================================================
Here Is the error code. Im on A11. Realme C3. But when Im use Dsu and download and install from dsu it works im confused ??
fire7ly said:
its give me proble when in start activity at the end.
===========================================================
adb shell am start-activity \
-n com.android.dynsystem/com.android.dynsystem.VerificationActivity \
-a android.os.image.action.START_INSTALL \
-d file:///storage/emulated/0/Download/system_raw.gz \
--el KEY_SYSTEM_SIZE $(du -b system_raw.img|cut -f1) \
--el KEY_USERDATA_SIZE 8589934592
Exception occurred while executing 'start-activity':
java.lang.IllegalArgumentException: No intent supplied
at android.content.Intent.parseCommandArgs(Intent.java:7790)
at com.android.server.am.ActivityManagerShellCommand.makeIntent(ActivityManagerShellCommand.java:341)
at com.android.server.am.ActivityManagerShellCommand.runStartActivity(ActivityManagerShellCommand.java:438)
at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:189)
at android.os.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:98)
at android.os.ShellCommand.exec(ShellCommand.java:44)
at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:11390)
at android.os.Binder.shellCommand(Binder.java:936)
at android.os.Binder.onTransact(Binder.java:820)
at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:5216)
at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3162)
at com.android.server.am.OppoActivityManagerService.onTransact(OppoActivityManagerService.java:169)
at android.os.Binder.execTransactInternal(Binder.java:1166)
at android.os.Binder.execTransact(Binder.java:1130)
=========================================================
Here Is the error code. Im on A11. Realme C3. But when Im use Dsu and download and install from dsu it works im confused ??
Click to expand...
Click to collapse
Use dsu..it is easy method
Shas45558 said:
Use dsu..it is easy method
Click to expand...
Click to collapse
Yeah You Are Right ! . But Dsu gives Only Aosp Gsis. Which Is not So Great. If Any Ways I use Pixel Gsis it Would Be Great.
fire7ly said:
Yeah You Are Right ! . But Dsu gives Only Aosp Gsis. Which Is not So Great. If Any Ways I use Pixel Gsis it Would Be Great.
Click to expand...
Click to collapse
Hmm...thats is the point...use linux and when you input any cmd you must open cmd pannel from where you kept the rom which you try to installed...
Shas45558 said:
Hmm...thats is the point...use linux and when you input any cmd you must open cmd pannel from where you kept the rom which you try to installed...
Click to expand...
Click to collapse
you mean same directory where gsi present.
fire7ly said:
you mean same directory where gsi present.
Click to expand...
Click to collapse
Yes..
work in poco m3?
how about redmi note 9 pro sir? can you give me a link for the tut?
THIS IS ONLY TESTED IN WEAR OS 3 ON A GALAXY WATCH 4
THOUGH THIS SHOULD WORK ON ALL WATCHES AND OLDER VERSIONS OF WEAR OS
Requirements:
ADB installed on your computer
Have your wear OS device connected to the same network as you computer
A bit of patience, this works in a very weird way!
Downloading apks and installing them
Firstly enable adb and adb debugging over WiFi on your wear OS device
Then download the latest apks:
Termux
MultiVnc If you want a graphical environment on Linux
When you have the apks run these commands:
Code:
adb connect IP_OF_YOUR_WEAR_OS_DEVICE
You might be able to see your ip under the button for enabling adb debugging over wifi
Then run these commands in the downloads folder
Code:
adb -s " IP_OF_YOUR_WEAR_OS_DEVICE" install NAME_OF_THE_DOWNLOADED_TERMUX_APK_FILE
and
Code:
adb -s " IP_OF_YOUR_WEAR_OS_DEVICE" install NAME_OF_THE_DOWNLOADED_MULTI-VNC_APK_FILE
BE AWARE THAT YOU MIGHT HAVE TO RESTART THE ADB CONNECTION, SOMETIMES IT MAY FREEZE.
to do that run
Code:
adb disconnect
then
Code:
adb connect IP_OF_YOUR_WEAR_OS_DEVICE
Installing Linux in Termux
Stay awake sleepyhead!
To make everything easier enable the option in Termux to keep your watch awake, this will save you from so much trouble.
First open up Termux, then long press the black background.
Then press the three dots and choose the option "More...".
Scroll down until you see the option "Keep screen on", turn on that.
Keyboard?
I've discovered that there's a problem with Wear OS keyboards, for some reason they might not interact properly with certain android applications.
So open up Termux in your Wear OS device and see if you can write anything in Termux.
If that works, see if there's any enter button on your keyboard and see if it works.
If Termux gave any response to what you entered then skip this part and head straight for "The Linux multiverse!"
If the enter button doesn't work then you gotta install an android keyboard.
The best keyboard I've found that also works on round Wear OS devices is "Unexpected keyboard"
Download the keyboard and run:
Code:
adb -s " IP_OF_YOUR_WEAR_OS_DEVICE" install NAME_OF_THE_DOWNLOADED_KEYBOARD_APK_FILE
When the keyboard is installed change you default keyboard into the previously installed keyboard.
The Linux multiverse!
On your ANDROID PHONE install Andronix.
In there you will have a lot of options for installing Linux on Termux. You can choose whatever you want!
When you've chosen what you want, then Andronix will copy a command to your phones clipboard.
Oh no!
This is where you might only have a few options!
The problems is that you have to get the command from your phone to your Wear OS device, though your Wear OS device might not even let you copy and paste!
Though there is a way to bypass this, ANDROID APPS! The easiest way is to install messenger lite(not messenger for Wear OS).
First download Messenger lite. (source for the messenger download link)
Then In the downloads folder run:
Code:
adb -s " IP_OF_YOUR_WEAR_OS_DEVICE" install NAME_OF_THE_DOWNLOADED_MESSENGER_APK_FILE
Log into messenger on your phone and your Wear OS device.
On your phone send the command Andronix gave you, to yourself in messenger.
Then open up messenger on your Wear OS device and long press the command and select copy!
Now the biggest hassle is gone!
The long, really long awakening
Now that you've copied the command, enter Termux. Then long press the black background and press paste.
NOW DON'T TOUCH ANYTHING, so that you don't accidentally change anything in the command.
From your computer run:
Code:
adb shell input keyevent 66
Try to remember this command, or put it somewhere easy to copy. You'll need it pretty often. (this command serves as an enter button)
The installation of Linux will now begin, there will be some Y/N questions, just choose the default options by running:
Code:
adb shell input keyevent 66
After a while you might get questions about region, keyboard and such.
use
Code:
adb shell input keyevent 66
to scroll down when it says [MORE]
then use
Code:
adb shell input text "NUMBER/WORD"
(don't remove the parentheses)
then again use
Code:
adb shell input keyevent 66
as an enter button
It might also ask you for a vnc password, choose a small and easy password.
FINALLY LINUX!
You should now have Linux installed on your Wear Os device. Go do whatever you want with it.
Just remember that your Wear OS device uses arm, so if you wanna use x86 applications, then you gotta use Box64 if you have a 64-bit processor and Box86 if you have a 32-bit processor
Start Linux(Linux might automatically start after installation)
First run:
Code:
adb shell input text "ls"
Code:
adb shell input keyevent 66
This will run the ls command.
Look for a file closely name to start-SOME_LINUX_DISTRO.sh or start-andronix.sh
then run:
Code:
adb shell input text "./start-SOME_LINUX_DISTRO"
then
Code:
adb shell input keyevent 66
BOOM Linux is now running :3
What about GUI?
If you installed a Linux version with a graphical interface then you either gotta use a VNC to display anything on your watch
run
Code:
adb shell input text "vncserver-start"
then
Code:
adb shell input keyevent 66
then
Code:
adb shell input keyevent 66
The terminal will say " New 'remote-desktop' at :NUMBER on machine localhost "
remember that number
now exit Termux and start Mutli-Vnc
Scroll down to "New Connection"
in Address enter localhost
in port enter 590 and then the number. (If the number as is higher than 9, enter 59 and then the number)
Scroll down password and enter in the vnc password you chose earlier.
Then the scroll all the way down and press the big green "Connect" button!
You should now some something, maybe not a lot, but something"
You can manually set the resolution if you want, so that you're able to utilize the screen better, go here for a guide on that.
External GUI
If you actually wanna use the Linux installation, then you'll have to use an external device to view the desktop.
You can follow this guide here, as it's better at explaining then me.
You can also use this guide if you wanna use XSDL.
A tip for entering &, use the keyboard on the watch! Also the read the explanation of commands before you continue, you'll need it!
Command explanation!!
adb shell input text " " will enter any text into the connected adb device, %s is used for spaces
adb shell input keyevents will do any key event, like pressing enter, 66 is for enter
If something doesn't work, let me know. I might've missed something!