Ubuntu Touch? - General Questions and Answers

I have a rooted phone that I would like to install linux natively that wouldn't need to do much except for access the phones camera and gps. (no other driver support necessary, not even display)
I was looking into UbuntuTouch (although, it could be any linux) and this guide here: https://devices.ubuntu-touch.io/installer/
I observed that it says "Devices generally require a specific version of Android/stock rom to be installed. This depends on the halium version the port is build on. For example, if the port is based on halium 9, make sure you have Android version 9 installed"
This is confusing to me, because if the new OS is replacing the stock rom, why does it matter what version it is on?
Looking at the ubuntu touch website, a lot of them still seem to be requiring Halium version (therefore android version) 9 and 10. But that seems pretty out of date, is there much work on installing Ubuntu Touch on Android 11 and 12. What if I have a new phone that launched recently and it doesn't have a firmware for android 10 or below. (or even for android 11)

Just like that, Ubuntu Touch must have a "host" OS. Analogy to apps that require a certain version of android, because they contain references to its properties.

ze7zez said:
Just like that, Ubuntu Touch must have a "host" OS. Analogy to apps that require a certain version of android, because they contain references to its properties.
Click to expand...
Click to collapse
hmm, Okay I didn't understand it needs a host OS... I thought its a standalone replacement. So if it installs itself onto of an existing firmware, Is the android OS still running beneath Ubuntu touch?

Devices - porting to a new device | Ubuntu Phone documentation
phone.docs.ubuntu.com
I'm not interested in Ubuntu Touch.
I installed it, saw what I was dealing with, and quickly gave up.

ze7zez said:
Devices - porting to a new device | Ubuntu Phone documentation
phone.docs.ubuntu.com
I'm not interested in Ubuntu Touch.
I installed it, saw what I was dealing with, and quickly gave up.
Click to expand...
Click to collapse
Thanks for the info. Yea it may not be helpful for me either. However, my use case may be different. All I want to do is write some native code, probably C++, and have it access the GPS and the camera. I don't need anything else working, touch, display, audio, cellular, wifi, etc, etc.

For more, see Ubuntu Touch on XDA.

For more, see Ubuntu Touch on XDA.

Related

VirtualBox Android Emulator with Marketplace

Does anyone know of any VirtualBox Android Emulator that has Marketplace?
Thanks!
Oh, I forgot to add "that's free" and not the $50 that some cheeky bastards are trying to charge for a thing called AndroidVM!
iridium21 said:
Does anyone know of any VirtualBox Android Emulator that has Marketplace?
Thanks!
Oh, I forgot to add "that's free" and not the $50 that some cheeky bastards are trying to charge for a thing called AndroidVM!
Click to expand...
Click to collapse
Android doesn't just load up and run on a PC. It's a source code project that a real developer has to spend time porting from platform to platform, unless you want to run it from a runtime built from the SDK. To do that requires an underlying OS, like Windows, Linux a MAC - something capable of running the SDK.
Since, VMware is emulating a PC, then in order to run as a real virtual machine, android needs to be pretty much ported to a PC. Since Android is built on a Linux kernel, it's not impossible, but geese - why? That said, it's bound to show up on an Intel compatible tablet at some point, if it hasn't already.
attn1 said:
Android doesn't just load up and run on a PC. It's a source code project that a real developer has to spend time porting from platform to platform, unless you want to run it from a runtime built from the SDK. To do that requires an underlying OS, like Windows, Linux a MAC - something capable of running the SDK.
Since, VMware is emulating a PC, then in order to run as a real virtual machine, android needs to be pretty much ported to a PC. Since Android is built on a Linux kernel, it's not impossible, but geese - why? That said, it's bound to show up on an Intel compatible tablet at some point, if it hasn't already.
Click to expand...
Click to collapse
I'm already running Android under Virtualbox - I just wondered if there's a version for VB that has Marketplace.
attn1 said:
Android doesn't just load up and run on a PC. It's a source code project that a real developer has to spend time porting from platform to platform, unless you want to run it from a runtime built from the SDK. To do that requires an underlying OS, like Windows, Linux a MAC - something capable of running the SDK.
Since, VMware is emulating a PC, then in order to run as a real virtual machine, android needs to be pretty much ported to a PC. Since Android is built on a Linux kernel, it's not impossible, but geese - why? That said, it's bound to show up on an Intel compatible tablet at some point, if it hasn't already.
Click to expand...
Click to collapse
Wow. So much complete and utter wrong in one post... I've been running Android under a virtual machine for quite a while...
There is an x86 version of Android available at androidx86.org
It will definitely run under Virtual Box or any other virtualization software package. It's Android 1.6 by the way, and you will have to perform some geek-like activities to simulate an SD-card to install appz.
Big question is whether an ARM-device version of Android would work in a normal VM emulator (not talking about Bochs and stuff).
FloatingFatMan said:
Wow. So much complete and utter wrong in one post... I've been running Android under a virtual machine for quite a while...
Click to expand...
Click to collapse
Well, since I hadn't heard of a port to x86, I was certainly wrong about that, which makes the rest of the post moot, but not wrong. In any event, I stand corrected.
sorry to add a flame of any kind but this
"Since, VMware is emulating a PC, then in order to run as a real virtual machine, android needs to be pretty much ported to a PC. Since Android is built on a Linux kernel, it's not impossible, but geese - why? That said, it's bound to show up on an Intel compatible tablet at some point, if it hasn't already."
is totally wrong.
Virtual machines virtualise the hardware of your machine (bad explanation I KNOW). if you have a PowerPC you can only emulate PowerPC (Mac for those that dont know) and intel/amd chips are things like x86 then theres smaller devices like ARM. my point is that if you have a Intel/amd box you can only emulate x86 O/S. however if you have a netbook with a version of linux or windows built on arm arch then u could prob get away with the original android if you are running normal x86 then u require android that has been built from source on x86.
this made me laugh
"Since Android is built on a Linux kernel, it's not impossible"
all i can say is what??
anyway back to the point... to run android on a x86 box u need x86 android
The problem with getting the Market to work is simply that the GApps are currently only available in a compiled for ARM version. period. that's the answer you wanted to hear i guess.
@others: stop OTing please...
hvc123 said:
sorry to add a flame of any kind but this
"Since, VMware is emulating a PC, then in order to run as a real virtual machine, android needs to be pretty much ported to a PC. Since Android is built on a Linux kernel, it's not impossible, but geese - why? That said, it's bound to show up on an Intel compatible tablet at some point, if it hasn't already."
is totally wrong.
Virtual machines virtualise the hardware of your machine (bad explanation I KNOW). if you have a PowerPC you can only emulate PowerPC (Mac for those that dont know) and intel/amd chips are things like x86 then theres smaller devices like ARM. my point is that if you have a Intel/amd box you can only emulate x86 O/S. however if you have a netbook with a version of linux or windows built on arm arch then u could prob get away with the original android if you are running normal x86 then u require android that has been built from source on x86.
this made me laugh
"Since Android is built on a Linux kernel, it's not impossible"
all i can say is what??
anyway back to the point... to run android on a x86 box u need x86 android
Click to expand...
Click to collapse
VMware and Virtualbox emulate PC hardware. Since Android runs on a Linux kernel, and Linux was originally developed for an x86 PC, it follows that a port of Android could be done for a PC. Since this was not a generic discussion about virtual machines but a specific discussion about PC emulation, I don't see where the argument is.
PC = x86 and it's successors. You said I was totally wrong and then pretty much made my case. The only point I missed is that the work had already been done. To run Android in a x86 (PC) VM, you'll need an X86 (PC) compatible version of Android - right - what I said.
Right... Ok, now does anyone know the answer to the original question?
the_fish said:
The problem with getting the Market to work is simply that the GApps are currently only available in a compiled for ARM version. period. that's the answer you wanted to hear i guess.
@others: stop OTing please...
Click to expand...
Click to collapse
OP should read your thread.
arctu said:
OP should read your thread.
Click to expand...
Click to collapse
I have
Supposedly, these guys have Android with Marketplace for VirtualBox:
http://www.androidvm.com/home
So it must be able to be done - the only problem is that it's $49.95!
deleted
zgornz said:
They state they are running Ubuntu in a VM, then installed the Android emulator in Ubuntu, then the android emulator is setup to have the Marketplace. The android emulator is doing the ARM emulation.
I think using qemu User Mode emulation it might be possible to actually launch the Marketplace and apps via android-x86 without using a phone emulator. Not sure it would be that valuable, but it would allow lots more apps on a netbook running Android.
Click to expand...
Click to collapse
I imagine it would be a mess to get a touch screen working in android running on an emulator.
I read reviews on androidx86 booted (not emulated) on a few netbooks that ran great and very responsive..I also read one on a touch screen comp that worked fine..they claim all apps work-minus gapps obviously.
I plan on trying this on my Toshiba nb205 netbook today and can post a review if anyone is interested..
Sent from my Nexus One using the XDA mobile application powered by Tapatalk
A review would sure be appreciated. More knowledge is always better.
Just a quick follow up, I tried out the Androidx86 on my netbook this weekend, both booted off the usb and installed on the hd..it runs..nothing spectacular and slightly dissappointing. You still only have a 4x4 screen and the Marketplace is entirely different, very small selection of "blah" apps..none of my favorite android apps anyways-facebook,twitter,gmail..not really any widgets either. Lastly, you need to use an external mouse..the touchpad just moves the background but gives you no pointer (could be a hardware compatability issue tho)..
On the positive side, the internet was very fast and resume time was almost instantanious..not really any major bugs, just nothing too special..
This method works with 1.6 as originally described here:
link-> forum.xda-developers.com/showthread.php?t=529170
I got it to run with the signed-dream_devphone_userdebug-img-14721.zip image from HTC for the developer phone.
link-> developer.htc.com/adp.html
I replaced the android-sdk-windows\add-ons\google_apis-4_r02\images\system.img with the one from the signed-dream_devphone_userdebug-img-14721.zip
(you should backup the original system.ini)
I then used the Android SDK GUI interface to create a Google API Level 4 machine.
I did not need to install the marketenabler.apk, as described in the original thread.
It boots up like a new Dev Phone, it behaves like there is a valid SIM and working data connection.
CTRL-F11 rotates the screen (slide out keyboard).
I have only installed a few free apps (K9 mail) but they seem to work fine.
I can't post links so copy, and paste them.
It would be trivial to create an Ubuntu virtual machine and then install the Android SDK inside of it and modify the system.img. Installing the SDK on your own machine probably takes less space and resources then running it inside another VM.
attn1 said:
Well, since I hadn't heard of a port to x86, I was certainly wrong about that, which makes the rest of the post moot, but not wrong. In any event, I stand corrected.
Click to expand...
Click to collapse
Updated, not corrected.
Yes, you were absolutely correct except for being out of date, because that process you described has already taken place as others have now pointed out.
To the person who said he was wrong, actually, no.
Android as it stands on the phone, is an ARM system compiled in ARM machine code. Android apps are hardware/platform agnostic but the operating system is not, it does have to be ported and recompiled for any different hardware system. That being said, it seems that most of that work is finished, ala androidx86.org
Cheers,
Rob
x86 Android Market
I have been reading a bit. It seems that it is possible to have Gapps installed for x86.
Froyo, people have been using Cyanogen 6 Gapps for Tegra.
Android x86 launched their Gingerbread version not long ago. It would not surprise me if Cyanogen 7 Gapps worked with it. Different devices used different versions and now there is just one version for all. It should be possible to run VM from the desktop.
NDK dependent Apps: in theory, it may be possible taking the apk using android apk tool, x86 NDK from the x86 build and rebuild it for x86 code.
I will be playing with an old EEE900 and see how this goes sooon.

[Q] Android x86 efi boot

So I tried out Android x86 for my PC. It works beautifully. I cannot boot it on my Surface Pro though... It seems like the Surface Pro was designed to only boot EFI boot loaders. Not BIOS boot loaders... I was wondering if somebody could lend a hand at helping me get past this issue. I really think Android x86 would be great for the Surface Pro, there are so many things I miss from my Nexus 7 but I don't want an Android device, if I could just dual boot it every now and then, I would be happy. Can someone please get the Android 4.2 x86 ISOs to boot via EFI? That would be appreciated.
sionicion said:
So I tried out Android x86 for my PC. It works beautifully. I cannot boot it on my Surface Pro though... It seems like the Surface Pro was designed to only boot EFI boot loaders. Not BIOS boot loaders... I was wondering if somebody could lend a hand at helping me get past this issue. I really think Android x86 would be great for the Surface Pro, there are so many things I miss from my Nexus 7 but I don't want an Android device, if I could just dual boot it every now and then, I would be happy. Can someone please get the Android 4.2 x86 ISOs to boot via EFI? That would be appreciated.
Click to expand...
Click to collapse
hmmm ... interesting you tried ...
and came out with a finding ...
following this thread on the possible development on this front ...
I've always dreamt of a Surface Pro on Android always ...
a reboot to Win7 for Work ... and back to Android !!!
going to be really very interesting ...
Hope the Android X86 team is peaking at this thread ...
Cheers!
Did you bother disabling secure boot?
Otherwise you can try "jar of beans" or "bluestacks" to run android applications for windows. There is a version of bluestacks which claims to be optimised for the surface pro, in reality its just bluestacks with proper windows 8 touch support.
SixSixSevenSeven said:
Did you bother disabling secure boot?
Otherwise you can try "jar of beans" or "bluestacks" to run android applications for windows. There is a version of bluestacks which claims to be optimised for the surface pro, in reality its just bluestacks with proper windows 8 touch support.
Click to expand...
Click to collapse
Of course I did, the problem is the Surface Pro's UEFI chip does not actually support booting BIOS-based bootloaders. It only boots EFI-based bootloaders like the Windows Boot Manager or Grub EFI, etc. Unless one was to emulate BIOS to boot Android, it needs a EFI bootloader to even boot it on the Surface Pro. Ubuntu boots fine on the Surface Pro, but it is booting from Grub EFI. I copied the Grub EFI file to my other flash drive, and Grub indeed boots. It is the trouble of getting Android x86 to boot because it isn't using a EFI-based bootloader.
Also, that wasn't the point. I want to run pure Android just for the experience of having Android right on my Surface so I don't miss having a Nexus 7. I tried it on my desktop PC and it runs beautifully, if only I could get it on my Surface...
Surface Pro comes with Windows 8 Pro and a CPU capable of second-level address translation. It is therefore capable of running Client Hyper-V, which is a hypervisor-based virtualization (rather than hosted VM) technology that allows you to run another OS in parallel with Windows. I believe it includes support for BIOS-based OSes. Perhaps you should try that?
GoodDayToDie said:
Surface Pro comes with Windows 8 Pro and a CPU capable of second-level address translation. It is therefore capable of running Client Hyper-V, which is a hypervisor-based virtualization (rather than hosted VM) technology that allows you to run another OS in parallel with Windows. I believe it includes support for BIOS-based OSes. Perhaps you should try that?
Click to expand...
Click to collapse
But what's the point in that? I don't want to virtualize. I want to run it natively... That's like saying hey use Bluestacks. I want Android running native on my Surface.
Anyway, guys I got it. Here it is.
First of all, running on a hypervisor is nothing like using Bluestacks. Android would then be running as "natively" as Windows at that point (Windows itself would also be running on the hypervisor), except that Windows would have first access to the display (Android would be able to use the graphics hardware nonetheless). When the virtual display was set to the Android machine, Android would be interacting with the input devices. As a plus side, you could switch back and forth rapidly...
That said, if you managed to get it working on bare metal, that's cool. Did you mean to include a link in your "Here it is "?
GoodDayToDie said:
First of all, running on a hypervisor is nothing like using Bluestacks. Android would then be running as "natively" as Windows at that point (Windows itself would also be running on the hypervisor), except that Windows would have first access to the display (Android would be able to use the graphics hardware nonetheless). When the virtual display was set to the Android machine, Android would be interacting with the input devices. As a plus side, you could switch back and forth rapidly...
That said, if you managed to get it working on bare metal, that's cool. Did you mean to include a link in your "Here it is "?
Click to expand...
Click to collapse
The tutorial is on the YouTube page. But the problem with the Hyper-V hypervisor is it uses that remote console. I only found it decent for running Windows with the guest drivers installed. Unless I'm just not executing it very well, Hyper-V isn't a good solution. Since VirtualBox is used much more in the Linux world, I would use that before using Hyper-V.
I'll investigate the virtual solutions though and let you know.
more recent linux kernel versions do support hyper-v, partly provided by microsoft believe it or not
I would assume that hyper-v support would carry over into android. Just a case of setting it up.
Worth trying. However, Android runs a somewhat customized kernel build that probably doesn't include a lot of the optional stuff such as the Hyper-V helpers. Of course, you could install the required kernel module for them...
SixSixSevenSeven said:
I would assume that hyper-v support would carry over into android. Just a case of setting it up.
Click to expand...
Click to collapse
I somewhat doubt the android platform itself has support for hyper-v.
Further, if you're looking to boot android directly would an android kernel and platform support booting via UEFI at all yet?
What partition would android be installed to? it likely wouldn't like being stuffed into an NTFS partition so you'd have to repartition the SSD and take some of the space from Windows, or boot android from an SDcard or USB memory stick.
EDIT: I see you did infact get it running, nice job, did you just use GRUB for a bootloader? did you have android run from the SSD or from elsewhere?
tbh if I had a surface pro I don't think i'd be installing android on it, slightly a waste.
by the way, a faster way of doing advanced reboot so you get the boot options is to hold shift and select the reboot option from the power menu.
So, after a short little flip around the web, I came across this
https://01.org/android-ia/downloads/2013/android-4.2.2r1-ia0
somehow.
I would love to have my Surface Pro dual-bootable between Android and Win8, but your tutorial has sort of overwhelmed me.
Are you using this code? Would it be better to?
Just wasn't sure where this development was going....
Purrsia said:
So, after a short little flip around the web, I came across this
https://01.org/android-ia/downloads/2013/android-4.2.2r1-ia0
somehow.
I would love to have my Surface Pro dual-bootable between Android and Win8, but your tutorial has sort of overwhelmed me.
Are you using this code? Would it be better to?
Just wasn't sure where this development was going....
Click to expand...
Click to collapse
You can try my guide in windows 8 development forums
Sent from my HTC One X+ using xda app-developers app
---------- Post added at 10:37 AM ---------- Previous post was at 10:36 AM ----------
feherneoh said:
Can't you add the lines which boot android-x86 into Ubuntu's GRUB? If it can be loaded, it could be used to load Android's kernel
Click to expand...
Click to collapse
Microsoft locked it, you can only use the stock bootloader for now
Sent from my HTC One X+ using xda app-developers app
rEFIit
Have you tried a rEFIit or rEFIitd? As the name subtly suggests, its a bootloader for EFI machines. I suggest having a look. I'm going to try this myself on a couple of machines tomorrow once I get to work. Good luck! Let me know how it turns out or if I lead someone down the right track!
rEFInd - An EFI boot manager utility: http://goo.gl/KRwzk
rEFIt: http://refit.sourceforge.net/
Agreed, Android on a Surface would be kick ass. Windows for work, Android for real life!
Hi Folks.....
Feeling a little nervous here seems I must have took a wrong turn somewhere to end up in the Microsoft Surface forum LOL.
Is anyone still wondering about this? I noticed the other day that the linux kernel 3.10 which is currently used by the android-x86 project has android efi drivers/patches which maybe what you require. I'd also have a poke around the Android-IA sources which is the official intel android open source project from what I recall there's more efiboot goodies in there.
As an extra bonus the 3.10 kernel also includes a patch for Binder which allows a 32bit userspace to function correctly with a 64bit PAE kernel which means "BIG RAM" so if you have more than 4 gig and a 64 bit processor you can get access to the full ram allocation, not quite the pure 64bit Android that I want but it'll do for now while I figure out the finer points of x86_64 assembly language.
If Anyone wants/needs a kernel rattling off with these options enabled just let me know and i'll well rattle one off!
Thanks
trevd said:
Hi Folks.....
...I noticed the other day that the linux kernel 3.10 which is currently used by the android-x86 project has android efi drivers/patches which maybe what you require. I'd also have a poke around the Android-IA sources which is the official intel android open source project from what I recall there's more efiboot goodies in there.
As an extra bonus the 3.10 kernel also includes a patch for Binder which allows a 32bit userspace to function correctly with a 64bit PAE kernel which means "BIG RAM" so if you have more than 4 gig and a 64 bit processor you can get access to the full ram allocation, not quite the pure 64bit Android that I want but it'll do for now while I figure out the finer points of x86_64 assembly language.
If Anyone wants/needs a kernel rattling off with these options enabled just let me know and i'll well rattle one off!
Thanks
Click to expand...
Click to collapse
If the offer still stands, I would be interested in this (..or even just a how-to).
I have a multiboot system with PCLinuxOS, Ubuntu, and Win8.1 running right now, and I can get the recent 4.4rc1 release from android x86 to boot if I switch to legacy bios and use legacy grub from PCLinuxOS or the android_x86 thumbdrive, but I cannot get it to boot from Ubuntu's EFI capable Grub2 (..d/t kernel panic). On my Acer m5-583p it works great in legacy mode (wifi, touchscreen, keyboard, etc), but I would like to be able to use an EFI bootloader so that I don't have to change to/from legacy/efi before selecting the OS at boot.
Thanks! :good:

[Q] re:custom os on x86 android tablet?

I have searched lots on the subject of getting a full linux distro running on an android device most of which were really not really what I am looking for, almost everything I find on the subject seems to be some kind of hybrid solution where running linux side by side or on top of android but imo that just seems messy and may as well just be using andorid with it's apps than do that.
I ran into interesting information about modding chromebooks some of when were the similar side-by-side solution but others actually more what I was looking for, they enable legacy seabios while not enough to get windows installed seems to work fine to boot into linux and another guy had baked his own custom seabios replacing the chrome bios entirely.
my question, the atom tablets Im seeing pop up a few places are standard x86 right ? is it possible to either
1/run a modded sea bios similar to chromebook mods? then boot a stock ubuntu distro installation maybe from external storage?
2/or somehow have the existing/modded bootloader boot linux kernel/ubuntu install ?
can't help think if it were that simple maybe someone would have done it already but also thinking the hardware (drivers) are supported by android so they should be supported by linux right ? and if it is standard x86 can't be too much a stretch right ?
I don't own an atom tablet but was thinking it may be desirable (and add more use) if I could get a full linux distro installed and be a lot more affordable than full fledged windows based tablet.
anyway thanks
ps:that captcha is harcore
They are kinda standard. But they are not following PC architecture. They are so called Intel MID (Mobile Internet Device). On such devices you may find neither EFI nor ACPI. They have so called SFI which is a complete disaster. But Intel Merrifield is more or less supported by upstream kernel and Yocto (thanks to Intel Edison platform). You may try to gather information about those devices (official name of SoC is Intel Atom Z34xx).

[Firefly] [ROCKCHIP] [ITX-3588J] ITX-3588J ARM Android/Linux Dual "Deskphone" Progress

First off, I wanted to say I posted a few threads about this thing here asking questions about stuff I needed to get it working in the way I'd like and I'd want to thank you because I have made a lot of progress in getting it to be what I'd like it to be. I also don't know if this is the best forum to post this report because it's neither a question nor necessarily a tutorial but rather a summary and description of work already done so far, and especially because this device, while it sure runs Android (very well!) does not fit into any of the categories on this site neatly.
The story so far
This post concerns my experience working with the ITX-3588J, a board released just a few months ago by the Chinese manufacturer Firefly (or T-Chip Intelligent Technology Co. Ltd, based in Zhongshan) that is in the coveted mini-ITX form factor which means it can actually fit into a small-size desktop computer case and indeed has enough compute power to theoretically - and perhaps not so theoretically! - function as an honest desktop system with an ARM processor: namely the - also very new - Rockchip RK3588 system-on-a-chip.
About two months ago, I was looking into acquiring a new kind of computer to replace my somewhat longer on the tooth x86 machine that would be compact, low-power, and easy to transport while also being a fully capable desktop. And I certainly didn't want Apple. I had seen some very small form x86 desktops before, but I also knew there were many boards - like Raspberry Pi - that featured the ARM processor. Not content with the Pi, which is still very weak for this application at least when compared against modern software, I wanted to see if there was something else by now in a similar vein, and when I saw this board I thought it was an amazing option, esp. given I have not yet found a peer. Many ARM single-board devices exist but this is the only one I've found so far that looks to be in a proper desktop form factor and sporting a processor powerful enough to work at that level.
So I got the board, a case, and - noting it had SATA ports - a cheap 250 GB SSD, and put it all together ... and fired it up! And to my surprise, it booted up Android! Which was a real shocker because I generally thought this'd be like another PC board, not having had much experience with this ecosystem beyond phones, so that it would just give the usual "OS not found" stuff. Nope - pre-loaded on the board. Very minimal, very bare-bones though, not even the Google Play and similar essentials required for a usable Android experience. Yet with the little bit I had, I couldn't help but notice it was extremely fluid, responsive, and snappy, moreso than my aging 2018 era x86 box. Moreover, it was very, very interesting (and exciting!) to see Android booted onto a full-size monitor screen like Linux or Microsoft Windows - and actually and surprisingly, to see that it didn't look and feel all that bad!
However, of course, I wanted more. First, I wanted a fully-featured installation of Android. Second, I wanted to run Linux on it - especially given that, a short while later, I found that the board manufacturers were offering a stock Ubuntu 20.04 to be installable to it. Although, in the early stages, I didn't know how to do this at all, and then soon after learned how to reflash the embedded MMC chip to change the OS. And I did so, trying the Ubuntu and finding it also very performant, but not liking either that it was not quite the newest version but also more that it was mutually exclusive with Android - so far.
And that would begin a long - and at many times frustrating, especially given how much information out there is not at all tuned to a device like this being pressed into this application - learning journey toward exploring topics as diverse as how ARM processors and SoCs work under the hood, U-Boot, kernel features, the Firefly-Rockchip developer kit - and having to essentially single-handedly discover many of that kit's ins and outs given there was pretty much no documentation - and more, ultimately leading to where I've got it to now.
What it can do at this point
And that is, right now, I have it sitting here, loaded up with the stock Android 12 and Ubuntu 20.04 - with the former on the eMMC and the latter on the SSD hard drive. On the Android side, Google Play is now loaded and functional, though Google Chrome is not (it crashes with a "Telephony is null" exception for some reason, which seems to suggest for some reason it's trying to act like it's on a phone but isn't). Zoom - an app that I really, really wanted to have (and why I wanted to keep Android around on it) - works and works smoother and cleaner than my 2018 x86 Linux clunker. On the Ubuntu side, though, things are not yet coming - mostly because of seeming inability to use U-Boot to boot from the SSD. I managed to install GRUB, and given that Firefly's generous board SDK provides the full U-Boot source code was able to recompile it with the necessary "bootefi" command enabled which is not present in stock, but nonetheless alas this U-Boot seems to have its SATA support bugged or incomplete, because it would crash immediately upon trying to initialize that subsystem.
Where I'd like to go with it
Obviously, full dual boot of Android and Ubuntu, so getting U-Boot to boot the GRUB resident on the hard drive, is the biggest issue so far, and that means investigating whatever is the problem (or not?) in its SATA subsystem. Getting Google Chrome working on Android is another important step. Moreover - though it would cost extra money that I do not have right now - there's the very interesting possibility, owing to the fact that it has a built in M.2 slot on the board, and alluded to in the title - that the device could be made to act as a cell phone. And finally, the possibility of upgrading to a newer version of Ubuntu (ideally 22.04) - however from what I know so far, it looks like this will have to wait because the stock Linux kernels do not currently support the RK3588 fully - though I'd suggest the Linux kernel developers really should take a look at the SDK that came with this thing because it has lots of code in it including for the kernel, all under GPL.
Final note
One of the most interesting things I've learned from this project, and mentioned earlier, is just how well Android seems to work as a desktop OS. While there have apparently been some attempts to port it to x86, this is perhaps one of the first devices that is desktop-workable and which runs it natively. And one of the things I find that's nice about it is that ironically, because all the apps are designed for small screens, when they are run on a very big screen (and this monitor is not "very big" even by today's monitor standards, being a used and earlier LCD type), they are extremely easy on the eyes and have minimal UI clutter when compared to a typical desktop app on most Linux WMs and on MS Windows.
If you want to know more about the details, or anything else, feel free to ask any questions you might have!
UPDATE:
I believe I may have found an easier way to dual-boot Linux with Android, and that consists of configuring a custom ROM that will put both kernels, and GRUB, on the board's eMMC, while the rootfs for both OSes is placed on the hard disk. Will be seeing how it works.
UPDATE:
I have almost completed the custom ROM! I have now both Android and at least the base system for Ubuntu 20.04 (Kernel 5.10.66) bootable with Android now storing user data on the hard drive; though I'm still running into some hardware initialization issues in the latter that are keeping me from actually installing the desktop system. With regard to the Ubuntu system, there is some interesting issue in that for some reason the provided SDK kernel, which I had to rebuild, seems to build more Android-like because it wants to look in "/vendor" for some things related seemingly to the networking facilities, and it is possible this is preventing me from bringing up wifi, which I need in order to download the rest of the system.
But lots of progress overall - it seems that a full-fledged ARM desktop running simultaneously Android and Ubuntu is within reach to be wrung from this board!
Ignore my request for an update in another post. Seems you like you moving along. I don't need dual boot, just a working Android 12 with GPlay and Chrome. Did you get Chrome to work?
mebalzer said:
Ignore my request for an update in another post. Seems you like you moving along. I don't need dual boot, just a working Android 12 with GPlay and Chrome. Did you get Chrome to work?
Click to expand...
Click to collapse
Thanks. Yeah, I want to say that I have pretty successfully gotten Android 12 working on it for sure, but Ubuntu is proving much more difficult due to graphics support issues, and I'm not sure if it will be possible until RK3588 is supported in the mainline Linux kernel tree which is still something under development. And yes! I got Chrome to work Everything works, actually - it's great as an Android system, though obviously Android is kinda funny to use as a desktop OS. I am wondering if I can't get a "pseudo" Linux using something like Linux Deploy in lieu of running it natively, at least until the kernel development catches up with this new processor.
(FWIW, I'm posting this post from that machine while it is running A12. )
Good to see someone else is interested in it, though. What are you planning on using yours for?
Insofar as getting Android 12 to work w/GApps - it depends on if you want to do it purely on the eMMC or you want to also put user data on an attached hard drive like I did. In either case, the best option, I feel, is to create a custom ROM - I could provide custom ROMs for it for download, but don't know because of Google's licensing conditions around the GApps and have heard of people getting in trouble with Google for distributing custom ROMs for phones that have GApps in them. You basically need to unpack the stock Android image, unpack the "super.img", then load the apps from a package like NikGApps into the "product" partition (NOT "oem" - that was a big mistake), then repack everything and flash to the eMMC again. You will need the board SDK from Firefly for all this as it has the custom ROM-packing and flashing tools.
Alternatively, it is possible to manually install the NikGApps GApps using the Android console - as it's a fully unlocked system, obtaining root access is trivial: just put it into Developer mode and you will find the root access in the "Developer options..." menu under "System".
Shimmy99 said:
Insofar as getting Android 12 to work w/GApps - it depends on if you want to do it purely on the eMMC or you want to also put user data on an attached hard drive like I did. In either case, the best option, I feel, is to create a custom ROM - I could provide custom ROMs for it for download, but don't know because of Google's licensing conditions around the GApps and have heard of people getting in trouble with Google for distributing custom ROMs for phones that have GApps in them. You basically need to unpack the stock Android image, unpack the "super.img", then load the apps from a package like NikGApps into the "product" partition (NOT "oem" - that was a big mistake), then repack everything and flash to the eMMC again. You will need the board SDK from Firefly for all this as it has the custom ROM-packing and flashing tools.
Alternatively, it is possible to manually install the NikGApps GApps using the Android console - as it's a fully unlocked system, obtaining root access is trivial: just put it into Developer mode and you will find the root access in the "Developer options..." menu under "System".
Click to expand...
Click to collapse
Thanks I will keep this in mind. See my reply to you other reply on another post as well.
I would to run gplay as well please send me instruction the nikapps github doesnt say nothing

Development Environment Setup: Hardware?

Asking this question because the attempt to get TWRP on my device is becoming a compound problem as the distance to being able to build it approaches 1. Otherwise known as the law of inverse noobness: Hindsight is always 20/20. Personally, not even half way to 1 in being able to do this, as am fairly new to doing things at the operating system level of programming. Not brand-new though, and knowing how and where to look things up helps, so if you have hints or can point me in the right direction that'd be great. First question is sort of along the lines of "how do you setup your dev environment" if you want to make it modular? More precisely:
So right now, the build page for AOSP concerning my device says to use Ubuntu 14.04 and do all those things to set it up for that. Do I need to do that in order to get TWRP built for my device? To have it set up the same way as the AOSP advises? Having a different computer for each dev environment would be a bit much, but running them in qemu seems even more ridiculous. Perhaps a better idea is to set up a "build environment" on bootable USB sticks that do all the work? That would simply a lot of things, like not having to swap out hard drives, and being able to easily clone a USB drive to "just work" and build AOSP/TWRP at will on any computer.
For reference, it is the Moto G Power (2021) "Sofia" device. They've released sources for it, but not much development going on. So learning how to do this for my device might just unlock TWRP (and with it, probably the Nethunter kernel/chroot environment) for other devices not yet supported.
Help me, help you. Thanks.
(Have other questions, too).
Why not use WSL2?
How to install Linux WSL2 on Windows 10 and Windows 11
The latest version of the Windows Subsystem for Linux is a significant upgrade; for most, it's now easier than ever to install.
www.windowscentral.com
jwoegerbauer said:
Why not use WSL2?
Click to expand...
Click to collapse
I don't use windows.
Bump.
Asking this because it seems that, being new to programming and having no formal training, I'm missing something from tutorials (like the TWRP git page, or some of the tutorials here on this forum that haven't been updated since 2013) and other material that might be thought to be "known" or "implied" and I just can't seem to understand what. Because when I go to build projects or whatever, following tutorials to the letter, still end up with errors and other problems that aren't covered in the tutorial. Part of that problem is installing dependencies, and then having them conflict with other installed things, like having two of python and three versions of java. So having a "build environment" to prevent conflicts is something that wasn't taught, but learned through trial and error, but that isn't the only problem I'm having.
McChadwicke said:
For reference, it is the Moto G Power (2021) "Sofia" device.
Click to expand...
Click to collapse
Hmm. I have the same model, but it's "borneo".
Did you build TWRP for your device? Any pointers or tips?
I usually just modify stock recovery to have rooted, permissive ADB.
I really don't need more than that in a recovery.
I haven't done much with my GP21 since the Firehose loader is restricted.
Renate said:
I usually just modify stock recovery to have rooted, permissive ADB.
I really don't need more than that in a recovery.
I haven't done much with my GP21 since the Firehose loader is restricted.
Click to expand...
Click to collapse
Not sure why the last reply didn't quote you...
Setting up a build environment is an evolving problem. As of this writing it seems the Ubuntu team is switching to a "pro version" system, a paywall, for some services...
Also, AOSP recommends Ubuntu 14 for a build environment. Gave up trying to run it from USBs lol, it is running on a dedicated system. But android-sdk is no longer available in apt, while running Ubuntu 14.04 + latest updates? So went to check why and now AOSP is using its own system for build environment setup and management. Tried running it in Ubuntu 14, but gave errors with the setup script provided.
Seeing now if I can't get the android sdk to run in Mint-XFCE... Will check back. TWRP build page says I need these things to build it (TWRP), right?
Also, how much of the preinstalled vendor crud can be pruned before it breaks?
Thanks.
Edit: reference on the TWRP guide I'm using is https://forum.xda-developers.com/t/...ompile-twrp-from-source-step-by-step.3404024/ (posted 2016)
I think that all build environments are getting more restricted.
"Just do it OUR way" seems to be the new corporate slogan.
I build Android apps without Android Studio, Gradle or an IDE.
Renate said:
I think that all build environments are getting more restricted.
"Just do it OUR way" seems to be the new corporate slogan.
I build Android apps without Android Studio, Gradle or an IDE.
Click to expand...
Click to collapse
Does TWRP have its own build control system? Considering all these changes, should it?
To keep things isolated, clean and manageable on host system, that has no dev tools
or anything extra besides standard desktop stuff. (under main linux distros)
#1 For smallest , fastest deployment of various build/dev environments i use schroot
on devuan/debian , it is a system to manage/automate the use of chrootable containers.
like regular manual chroot but most thigs are automated/preconfigured with
just a few commands and config files.
Basicaly a new root filesystem (userspace) that is independent of hosts root filesystem and just
uses hosts kernel (or as much/little acces to kernel as you give it trough schroot config files)
has its own packages and dependencies and will only see specific sections of hosts filesystem sections you give it access to like say /src/myproject from host. can be a separate /home
or shared with host, all depends on your config.
Using debootstrap to create the filesystems for containers of specific distributions/verions.
Or can just manualy copy an install and rip out the kernel etc...
(Can install ubuntu userspace in debian with debootstrap , if need be.)
(like lineageOS was hard to find all the correct/matching dev tools under devuan, so ubuntu it was)
#2 For something a bit beefier LXC on top of libvirt.
(regular chroot wont run services, or have its own networking , LXCs can , with some extra configuration)
#3 For when you just need an actual full blown VM os installation use KVM/qemu on top of libvirt .
(like installing 15 year old redhat 5.1 in a container wont work, kernels and main libs too far apart)
(or anything that is just too different from current linux kernel , other OS s etc...)
virt-manager is nice for graphicaly managing VMs and LXCs
#1 But schroot is essential and will suffice for more then 90% if not whole 100% of your needs.
if you want a clean host system from being clobbered by constant installing and testing and such . Keeps the environment contained in its own filesystem namespace , have as many as you need .
start fresh,rollback,clone etc.............
Once configured just start another tab in a terminal emulator and schroot in to the container
and your main host system in unaffected, always clean .
#4 Running all of this on top of ZFS takes it a step up, to the next level of effeciency.
zfs helps quite a bit with cloning,branching,snapshots, rollbacks but not essential,
like git versioning for things that are too big for or are not made for git management
(but is another system on to itself to learn, so ignore it if new to linux )
just cloning a 300Mb-1Gb base bootstrap install folder takes no time on regular filesystem on ssds .
With these 3 tools , you can have 10s if not 100s of different environments on a single host
quickly deployable once you get to know the procedures. all usable at the same time without
reboot,
#5 The most important is learning how to hunt for the right version of tools and all of the
dependencies and the correct versions of those , as each project will have their own
and will base it on their own distribution of choice at a specific point in time.
(by being able to install/test/restart in container makes this whole process , easier)
you can test many different ideas at the same time , and merge what works in
to your own dev-build-env for a specific project.
(like hunting down correct tutorial for specific/old/obscure phone and a rom and recovery
and rooting tools associate from a time long past. using wayback machine to source
correct versions of each , as normal web has erased them )
even used schroot to install games for nephew from untrusted sources without hesitation,
and just delete the container when done, but that was a bit more involved as proprietary
nvidia drivers had to be installed on host and partially in containers.
dandudikof said:
To keep things isolated, clean and manageable on host system, that has no dev tools
or anything extra besides standard desktop stuff. (under main linux distros)
#1 For smallest , fastest deployment of various build/dev environments i use schroot
on devuan/debian , it is a system to manage/automate the use of chrootable containers.
like regular manual chroot but most thigs are automated/preconfigured with
just a few commands and config files.
(like hunting down correct tutorial for specific/old/obscure phone and a rom and recovery
and rooting tools associate from a time long past. using wayback machine to source
correct versions of each , as normal web has erased them )
Click to expand...
Click to collapse
neat. schroot looks like a solution. answers a lot of questions, anyway. that last part scares me though. using the wayback machine to source things jeez. there's gotta be a better way, but probably not unless i want to do it myself which will only add time to "the project".
McChadwicke said:
neat. schroot looks like a solution. answers a lot of questions, anyway. that last part scares me though. using the wayback machine to source things jeez. there's gotta be a better way, but probably not unless i want to do it myself which will only add time to "the project".
Click to expand...
Click to collapse
That was just worse case scenario if you get in to very obsolete/old/abandoned stuff (10-20 year old) projects/hardware etc...
dandudikof said:
10-20 year old
Click to expand...
Click to collapse
yeah some of the hardware is in that range. actually upgraded one of the old rigs (because parts are cheap) from an athlon to a phenom lmao thing has 16gb ram, it is stacked now with top of the line things from that era. keeping it around for nostalgia's sake at this point since it still works.
xmrig gets abysmal hash rates, not even worth running on older hardware.

Categories

Resources