Related
This guide is for getting your tablet rooted from Linux. It is similar to the guides made by Indirect and t-r-i-c-k for Windows and OS X respectively.
Get ADB working
If you are running a 64 bit system then you will need to have the 32 bit ncurses library installed.
For Arch Linux:
Code:
sudo pacman -S lib32-ncurses
For Ubuntu (can someone check this?):
Code:
sudo apt-get install lib32ncurses5
Now you will need the Android SDK. you can get it from http://developer.android.com/sdk/index.html
Extract the downloaded SDK to a location of your choice. This will give you an android-sdk-linux directory.
Now we need to install the platform tools. Run the android-sdk-linux/tools/android program and install at least the "Android SDK Platform-tools"
Optionally, you can install the Nook Tablet/Color SDKs.
Choose Tools->Manage Addon Sites
Click the "New..." button and add http://su.barnesandnoble.com/nook/sdk/addon.xml
Also add http://su.barnesandnoble.com/nook/sdk/Nook_Tablet_addon.xml
Now install the Nook Color and/or Nook Tablet SDKs.
You will have to manually edit or create the ~/.android/adb_usb.ini file. Make sure it contains the following line:
Code:
0x2080
Now we need to set up the udev rules for your Nook. These instructions work for Arch Linux, let me know if they don't work for your distribution.
create an /etc/udev/rules.d/51-android.rules file and populate it with:
Code:
SUBSYSTEM=="usb", ATTR{idVendor}=="2080", MODE="0666"
SUBSYSTEM=="usb",ATTR{idVendor}=="2080",ATTR{idProduct}=="0004",SYMLINK+="android_adb"
SUBSYSTEM=="usb",ATTR{idVendor}=="2080",ATTR{idProduct}=="0004",SYMLINK+="android_fastboot"
run the following commands:
Code:
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
$ sudo udevadm control --reload-rules
reference:
https://wiki.archlinux.org/index.php/Android
Enable USB debugging on your Nook
Open up your web browser on your Nook and go to http://comptonsoft.com/test and Download AppMenu.
reference: http://forum.xda-developers.com/showpost.php?p=19421107&postcount=18
After the download completes, open the AppMenu.apk from the notification area (tap on the lower left corner of the nook screen where the three down arrows are)
Choose "Package Installer", when it says "Install blocked" choose "Settings"
Check off "Unknown Sources" and then choose "Development"
Check off both "USB debugging" options and uncheck "Auto Mount"
Bring up the notification window and tap on the AppMenu.apk and install with package installer. This time it should work.
If you ever need to get back to the appmenu you can now access it from the search screen (make sure to show all results). Sometimes the thing likes to reset it's debugging abilities.
Perform a temporary root
Now the fun begins. Let's get the rootkit. Download the zergrush binary from http://forum.xda-developers.com/showthread.php?t=1296916
Extract the zergRush file from the zip and remember where you put it. I put mine in ~/Downloads
Adjust the following instructions according to your location:
Plug in your nook, you should get a beetle icon in the notification area.
Open up a terminal on your computer and change to the android-sdk-linux/platform-tools directory, and do the following commands:
Code:
$ cd ~/android-sdk-linux/platform-tools
$ ./adb kill-server
$ ./adb start-server
$ ./adb push ~/Downloads/zergRush /data/local/
$ ./adb shell
We are now in the nook.
Code:
$ chmod 755 /data/local/zergRush
$ /data/local/zergRush
zerg does it's thing and if all goes well, says it's restarting as root and kicks us out of adb
Code:
$ ./adb remount
It should say "remount succeeded" if the root worked.
Install su to make the root permanent
In order for the root to persist after a reboot we need to install superuser. Get it from http://androidsu.com/superuser/
Make sure to get the gingerbread version. Extract the contents of the zip somewhere, say ~/Downloads/superuser/ and do the following:
Code:
$ ./adb push ~/Downloads/superuser/system/bin/su /system/bin
$ ./adb push ~/Downloads/superuser/system/app/Superuser.apk /system/app
$ ./adb shell
# chmod 6755 /system/bin/su
# ln -s /system/bin/su /system/xbin/su
# chmod 644 /system/app/Superuser.apk
# exit
Install google apps
Of course we are gonna want to get access to the market and what not.
Get google apps from http://goo-inside.me/gapps
Extract somewhere, say ~/Downloads/gapps and do the following:
Code:
$ rm ~/Downloads/gapps/system/app/SetupWizard.apk
$ ./adb push ~/Downloads/gapps/system /system
$ ./adb shell
# chmod 644 /system/app/*
# chmod 644 /system/lib/libvoicesearch.so
# chmod 644 /system/etc/permissions/*
# chmod 644 /system/framework/*
# exit
$ ./adb remount
$ ./adb reboot
When the nook comes up again, choose search, tap the g in the upper left, choose apps, type in market. Choose to add an account, create/sign in.
I had to back out of the market in go back in again a couple times to get the "agree to license screen". If the market just sits there loading for a while, try that.
You can run any apps you install any time by searching for them.
Some tips for getting the most out of your tablet:
I suggest installing a launcher from the market. I use zeam. I think launcher pro and adw launcher are both popular choices also. These will allow you launch apps directly, instead of searching for them.
The Homecatcher app seems to be getting a good reception I haven't had a chance to try it yet, but i plan on it. It allows you to use a different launcher than barnes and noble's by default
Install busybox from here. You'll need to have an sd-card in your tablet for the install to work, but don't need it afterwords (just throw the one from your phone in or something if you don't have one).
To get adbd running as root (to do things like remount or push to system folder) you can run zergRush again as in the temporary root step. I had to su, and then run zergRush, and adb seems a little flakey and kicked me out from time to time when i did it, but it worked. ADB root goes away every time you reboot still.
Happy trails.
Worked great
I'm a noob to both linux and android and your directions worked like a charm, Thanks so much.
flawless
absolutely flawless instructions. thank you!
Works good but now I can't "adb remount" because I get an "operation not permitted", and thus I can't "adb push".
Is this normal behavior after this root?
The only reason I noticed was from attempting to install the newer talk app which is probably possible by other means but I haven't found the right answer out of about a billion search results.
Also the part about installing the color sdk stuff or adding the adb_usb.ini line isn't accurate I don't think. I had to run "android update adb" and then the file was updated, which is the same as editing the file but I think it gets autocreated or updated from something else possibly.
firephoto said:
Works good but now I can't "adb remount" because I get an "operation not permitted", and thus I can't "adb push".
Is this normal behavior after this root?
Click to expand...
Click to collapse
Yeah... :-(
You'll have to su and remount by hand. The following should work:
Code:
$ adb shell
$ su
# mount -o rw,remount /dev/block/platform/mmci-omap-hs.1/by-name/system /system
# exit
$ exit
$ adb push teh_files
Sadly after you reboot the adb deamon doesn't have superuser permissions anymore and can't do things like remounting filesystems.
I'm not sure why this is tbh. maybe because the SUID bit isn't set, or the version of adb in the tablet is gutted?
I'm sure people would be grateful if someone figured it out (hint hint), it's gonna cause all kinds of annoyances like this in the future no doubt :-/
firephoto said:
Also the part about installing the color sdk stuff or adding the adb_usb.ini line isn't accurate I don't think. I had to run "android update adb" and then the file was updated, which is the same as editing the file but I think it gets autocreated or updated from something else possibly.
Click to expand...
Click to collapse
Weird. It definitely wasn't on my system after installing tablet sdk and before installing the color sdk and definitely was after installing the color sdk. i'll change the original post to get rid of that part, since it's kind of unnecessary anyhow.
There's something that seems more locked down (while allowing root) so maybe it's intentional to maintain some security in certain situations. (guessing).
I did mount the filesystem rw but that still doesn't allow the push. Seem like the standard adb shell user doesn't have the permissions to do the normal things and then the root user doesn't have the commands even though the $PATH is correct.
So some permission bit set strange somewhere I guess but I haven't found it yet.
Oh wow, you are right. And it gets even better...
You can push to the /mnt/media/ directory...
And now for the good news...no cp command, and mv doesn't work to move files apparently.
As a temporary work around you can use cat >< I feel so dirty saying this:
Code:
$ adb push teh_file /mnt/media
$ adb shell
$ su
# cat /mnt/media/teh_file > /system/teh_file
Things are getting really hackey now :-/ maybe i will have to look into the adbd issues after all. Not tonight though.
I'll update the guide tomorrow to get busybox installed so we have a cp command. The market app didn't work for me, but I don't have an sd card in mine atm, and i think it wants to download there.
Anyone with an sd card able to just install the (stericson) busybox market app?
I did some research on adbd. Apparently by default it runs as a "shell" user, not root.
This is pretty standard for stock roms apparently. There are a few ways around this.
For more information, see this thread
Honestly, I forgot the step to remove zergRush from /data/local, so the easiest thing in my opinion would be to just run zergRush whenever you need adb running as root.
Also, busybox from the market installs just fine with an sd-card, doesn't have to be a good one or anything, it just needs a place to park the busybox binary that it is copying over
Great work. Was thinking about writing one once I got an NT but knew someone would beat me to it. FYI you can follow link in my signature to install adb in Ubuntu. Will try this as soon as I get my hand on one (next week). Thank you
Sent from my NookColor using xda premium
I used the first half of these instructions to get sideloading working on my non-rooted NT 1.4.1. Windows messed everything up by installing the "correct" drivers automatically and adb wouldn't recognize the NT so had to flip to Linux. Thanks!
Sent from my BNTV250 using Tapatalk
I get the following error after it begins installing the SDK Platform-tools: Stopping ADB server failed (code -1). Is this normal?
This is a clean install of the Android SDK.
Thanks!
Code:
Fetching https://dl-ssl.google.com/android/repository/addons_list-1.xml
Validate XML
Parse XML
Fetched Add-ons List successfully
Fetching URL: https://dl-ssl.google.com/android/repository/repository-5.xml
Validate XML: https://dl-ssl.google.com/android/repository/repository-5.xml
Parse XML: https://dl-ssl.google.com/android/repository/repository-5.xml
Found SDK Platform Android 1.1, API 2, revision 1 (Obsolete)
Found SDK Platform Android 1.5, API 3, revision 4
Found SDK Platform Android 1.6, API 4, revision 3
Found SDK Platform Android 2.0, API 5, revision 1 (Obsolete)
Found SDK Platform Android 2.0.1, API 6, revision 1 (Obsolete)
Found SDK Platform Android 2.1, API 7, revision 3
Found SDK Platform Android 2.2, API 8, revision 3
Found SDK Platform Android 2.3.1, API 9, revision 2 (Obsolete)
Found SDK Platform Android 2.3.3, API 10, revision 2
Found SDK Platform Android 3.0, API 11, revision 2
Found SDK Platform Android 3.1, API 12, revision 3
Found SDK Platform Android 3.2, API 13, revision 1
Found SDK Platform Android 4.0, API 14, revision 3
Found SDK Platform Android 4.0.3, API 15, revision 1
Found ARM EABI v7a System Image, Android API 14, revision 2
Found ARM EABI v7a System Image, Android API 15, revision 1
Found Samples for SDK API 7, revision 1
Found Samples for SDK API 8, revision 1
Found Samples for SDK API 9, revision 1 (Obsolete)
Found Samples for SDK API 10, revision 1
Found Samples for SDK API 11, revision 1
Found Samples for SDK API 12, revision 1
Found Samples for SDK API 13, revision 1
Found Samples for SDK API 14, revision 2
Found Samples for SDK API 15, revision 1
Found Android SDK Platform-tools, revision 10
Found Android SDK Tools, revision 16
Found Documentation for Android SDK, API 15, revision 1
Found Sources for Android SDK, API 14, revision 1
Found Sources for Android SDK, API 15, revision 1
Found Android Support package, revision 6
Fetching URL: https://dl-ssl.google.com/android/repository/addon.xml
Validate XML: https://dl-ssl.google.com/android/repository/addon.xml
Parse XML: https://dl-ssl.google.com/android/repository/addon.xml
Found Google APIs by Google Inc., Android API 3, revision 3
Found Google APIs by Google Inc., Android API 4, revision 2
Found Google APIs by Google Inc., Android API 5, revision 1 (Obsolete)
Found Google APIs by Google Inc., Android API 6, revision 1 (Obsolete)
Found Google APIs by Google Inc., Android API 7, revision 1
Found Google APIs by Google Inc., Android API 8, revision 2
Found Google APIs by Google Inc., Android API 9, revision 2 (Obsolete)
Found Google APIs by Google Inc., Android API 10, revision 2
Found Google APIs by Google Inc., Android API 11, revision 1
Found Google APIs by Google Inc., Android API 12, revision 1
Found Google APIs by Google Inc., Android API 13, revision 1
Found Google APIs by Google Inc., Android API 14, revision 2
Found Google TV Addon by Google Inc., Android API 12, revision 2
Found Google APIs by Google Inc., Android API 15, revision 1
Found Google Market Licensing package, revision 1
Found Google USB Driver package, revision 4
Found Google Market Billing package, revision 1
Found Google Admob Ads Sdk package, revision 4
Found Google Analytics Sdk package, revision 2
Found Google Webdriver package, revision 2
Fetching URL: http://www.echobykyocera.com/download/echo_repository.xml
Validate XML: http://www.echobykyocera.com/download/echo_repository.xml
Parse XML: http://www.echobykyocera.com/download/echo_repository.xml
Found Dual Screen APIs by KYOCERA Corporation, Android API 8, revision 1
Found Dual Screen APIs by KYOCERA Corporation, Android API 10, revision 1
Fetching URL: http://developer.lgmobile.com/sdk/android/repository.xml
Validate XML: http://developer.lgmobile.com/sdk/android/repository.xml
Parse XML: http://developer.lgmobile.com/sdk/android/repository.xml
Found Real3D by LGE, Android API 10, revision 1
Found Real3D by LGE, Android API 8, revision 1
Fetching URL: http://innovator.samsungmobile.com/android/repository/repository.xml
Validate XML: http://innovator.samsungmobile.com/android/repository/repository.xml
Parse XML: http://innovator.samsungmobile.com/android/repository/repository.xml
Found GALAXY Tab by Samsung Electronics., Android API 8, revision 1
Fetching URL: http://developer.sonyericsson.com/edk/android/repository.xml
Validate XML: http://developer.sonyericsson.com/edk/android/repository.xml
Parse XML: http://developer.sonyericsson.com/edk/android/repository.xml
Found EDK 1.2 by Sony Ericsson Mobile Communications AB, Android API 10, revision 1
Fetching URL: http://su.barnesandnoble.com/nook/sdk/addon.xml
Validate XML: http://su.barnesandnoble.com/nook/sdk/addon.xml
Parse XML: http://su.barnesandnoble.com/nook/sdk/addon.xml
Found NOOKcolor by Barnes and Noble, Inc., Android API 8, revision 1
Fetching URL: http://su.barnesandnoble.com/nook/sdk/Nook_Tablet_addon.xml
Validate XML: http://su.barnesandnoble.com/nook/sdk/Nook_Tablet_addon.xml
Parse XML: http://su.barnesandnoble.com/nook/sdk/Nook_Tablet_addon.xml
Found NOOK Tablet by Barnes and Noble, Inc., Android API 10, revision 1
Done loading packages.
Preparing to install archives
Downloading Android SDK Platform-tools, revision 10
Installing Android SDK Platform-tools, revision 10
Stopping ADB server failed (code -1).
Installed Android SDK Platform-tools, revision 10
Downloading SDK Platform Android 2.3.3, API 10, revision 2
Installing SDK Platform Android 2.3.3, API 10, revision 2
Installed SDK Platform Android 2.3.3, API 10, revision 2
Downloading SDK Platform Android 2.2, API 8, revision 3
Installing SDK Platform Android 2.2, API 8, revision 3
Installed SDK Platform Android 2.2, API 8, revision 3
Downloading Samples for SDK API 10, revision 1
Installing Samples for SDK API 10, revision 1
Installed Samples for SDK API 10, revision 1
Downloading Samples for SDK API 8, revision 1
Installing Samples for SDK API 8, revision 1
Installed Samples for SDK API 8, revision 1
Downloading Android Support package, revision 6
Installing Android Support package, revision 6
Installed Android Support package, revision 6
Downloading NOOK Tablet by Barnes and Noble, Inc., Android API 10, revision 1
Installing NOOK Tablet by Barnes and Noble, Inc., Android API 10, revision 1
Installed NOOK Tablet by Barnes and Noble, Inc., Android API 10, revision 1
Downloading Google APIs by Google Inc., Android API 10, revision 2
Installing Google APIs by Google Inc., Android API 10, revision 2
Installed Google APIs by Google Inc., Android API 10, revision 2
Downloading NOOKcolor by Barnes and Noble, Inc., Android API 8, revision 1
Installing NOOKcolor by Barnes and Noble, Inc., Android API 8, revision 1
Installed NOOKcolor by Barnes and Noble, Inc., Android API 8, revision 1
Downloading Google APIs by Google Inc., Android API 8, revision 2
Installing Google APIs by Google Inc., Android API 8, revision 2
Installed Google APIs by Google Inc., Android API 8, revision 2
Updated ADB to support the USB devices declared in the SDK add-ons.
Stopping ADB server succeeded.
Starting ADB server succeeded.
Done. 10 packages installed.
Done loading packages.
Did it work? Can adb see the NT? Can you root? The error may not be normal, but it doesn't really matter unless something doesn't work...
Sent from my Desire HD using Tapatalk
winsettr said:
Did it work? Can adb see the NT? Can you root? The error may not be normal, but it doesn't really matter unless something doesn't work...
Sent from my Desire HD using Tapatalk
Click to expand...
Click to collapse
Running openSUSE 12.1
I've tried different USB ports but something isn't right:
Code:
*******@arena:~/programs/android-sdk-linux/platform-tools> ./adb kill-server
*******@arena:~/programs/android-sdk-linux/platform-tools> ./adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
*******@arena:~/programs/android-sdk-linux/platform-tools> ./adb push zergRush /data/local
error: insufficient permissions for device
*******@arena:~/programs/android-sdk-linux/platform-tools> ./adb devicesList of devices attached
???????????? no permissions
*******@arena:~/programs/android-sdk-linux/platform-tools> ./adb shell
error: insufficient permissions for device
*******@arena:~/programs/android-sdk-linux/platform-tools>
*******@arena:~/programs/android-sdk-linux/platform-tools> ls -l /etc/udev/51-android.rules
-rw-r--r-- 1 root root 234 Jan 2 18:12 /etc/udev/51-android.rules
*******@arena:~/programs/android-sdk-linux/platform-tools>
I have even tried running this with SUDO and as ROOT but then I'm am presented with an empty "List of devices attached" after running "./adb devices" command. I have also rebooted my Linux system and the Nook Tablet but no change.
You shouldn't need special permission to push ZergRush (how else could you get it on the NT to root) so that's a problem. When you stop then start the adb daemon, then list devices (before trying to push ZergRush), is the NT listed?
Sent from my Desire HD using Tapatalk
RegLinUsr said:
...
I have even tried running this with SUDO and as ROOT but then I'm am presented with an empty "List of devices attached" after running "./adb devices" command. I have also rebooted my Linux system and the Nook Tablet but no change.
Click to expand...
Click to collapse
winsettr said:
You shouldn't need special permission to push ZergRush (how else could you get it on the NT to root) so that's a problem. When you stop then start the adb daemon, then list devices (before trying to push ZergRush), is the NT listed?
Sent from my Desire HD using Tapatalk
Click to expand...
Click to collapse
Your question is easily answered with the information from the end of my post...
Fully reading a post before replying is quite the useful trait. It helps to notice that this is not my first time rooting something as well so the obvious isn't the issue here, the problem is something else that is a bit off of the beaten path. Might be something openSUSE specific; missing driver or program but I'm not sure at this point.
Stil remount will not work for me?
ylixir said:
Yeah... :-(
You'll have to su and remount by hand. The following should work:
Code:
$ adb shell
$ su
# mount -o rw,remount /dev/block/platform/mmci-omap-hs.1/by-name/system /system
# exit
$ exit
$ adb push teh_files
Here's my commands:
$ su
su
reloc_library[1311]: 2959 cannot locate '_ZNK7android6Parcel15setDataPositionEj
'...
CANNOT LINK EXECUTABLE
$ su
mount -o rw,remount /dev/block/platform/mmci-omap-hs.1/by-name/system /system
mount: Operation not permitted
Click to expand...
Click to collapse
Works!
Thank you! tried on the mac and had issues with device not being found. This worked perfect, thanks again for the guide!
Ren
I don't see any option to "Manage add-on sites" in the ADK Manager (the "android" app). Where are you getting this from?
Nevermind, I understand it now.
I am trying to set up an Android Virtual Device (AVD) running Android L Preview so that I can begin developing an app using the new Material Design theme. I already have AVDs set up running KitKat and Gingerbread, it is only the Android L Preview that is not working. I have tried both the AVD Manager built-in to Android Studio, as well as from a separate installation of the Android SDK.
Here is my config.ini:
Code:
avd.ini.encoding=ISO-8859-1
abi.type=armeabi-v7a
disk.dataPartition.size=1024M
hw.accelerometer=yes
hw.audioInput=yes
hw.battery=yes
hw.camera.back=webcam0
hw.camera.front=emulated
hw.cpu.arch=arm
hw.cpu.model=cortex-a8
hw.dPad=no
hw.device.hash2=MD5:2fa0e16c8cceb7d385183284107c0c88
hw.device.manufacturer=Google
hw.device.name=Nexus 5
hw.gps=yes
hw.keyboard=yes
hw.lcd.density=480
hw.mainKeys=no
hw.ramSize=2048
hw.sdCard=yes
hw.sensors.orientation=yes
hw.sensors.proximity=yes
hw.trackBall=no
image.sysdir.1=system-images\android-L\default\armeabi-v7a\
sdcard.size=1024M
skin.dynamic=no
skin.name=1080x1920
skin.path=1080x1920
tag.display=Default
tag.id=default
vm.heapSize=64
When I start the AVD I just get a black screen. I ended up letting it run for 5 hours and it never booted. Looking through the logcat, the following errors are repeated continuously:
Code:
06-27 13:32:31.945 319-319/? E/Netd﹕ Failed to open /proc/sys/net/ipv6/conf/default/accept_ra_rt_table: No such file or directory
06-27 13:32:31.945 319-319/? E/Netd﹕ Failed to open /proc/sys/net/ipv6/conf/eth0/accept_ra_rt_table: No such file or directory
06-27 13:32:31.945 319-319/? E/Netd﹕ Failed to open /proc/sys/net/ipv6/conf/lo/accept_ra_rt_table: No such file or directory
06-27 13:32:31.945 319-319/? E/Netd﹕ Failed to open /proc/sys/net/ipv6/conf/sit0/accept_ra_rt_table: No such file or directory
06-27 13:32:32.293 320-320/? E/SurfaceFlinger﹕ hwcomposer module not found
06-27 13:32:32.293 320-320/? E/SurfaceFlinger﹕ ERROR: failed to open framebuffer (No such file or directory), aborting
06-27 13:32:32.295 320-320/? A/libc﹕ Fatal signal 6 (SIGABRT), code -6 in tid 320 (surfaceflinger)
Here's the full logcat: http://pastebin.com/Ctjy5YLF
Does anyone have any idea what I did wrong or why the emulator isn't working? How can I get this up and running?
Thanks!
Same here
I'm having the exact same issue but not getting any errors in the LogCat. Hopefully someone has a solution. I've downloaded the new Android Studio and tried it but it didn't work. I also re-downloaded the ADT Eclipse bundle and tried it with that. Still no joy.
I had the same black screen until I enabled "Use Host GPU" under Emulation Options when creating the AVD.
Black screen with the emulator running android L
same problem here.. tried host GPU and no luck...
eddieringle said:
I had the same black screen until I enabled "Use Host GPU" under Emulation Options when creating the AVD.
Click to expand...
Click to collapse
Can confirm enabling 'Use Host GPU' has made the emulator work.
eddieringle said:
I had the same black screen until I enabled "Use Host GPU" under Emulation Options when creating the AVD.
Click to expand...
Click to collapse
Now I feel like an idiot. I initially had that selected for my Gingerbread AVD but it displayed an error when starting and disabled the message. I assumed my GPU wasn't compatible for whatever reason so I never tried it with the Android L AVD. Or perhaps it had something to do with trying it over an RDP remote desktop session before. Or my RAMDISK being full. Anyways, it's working now, so thank you.
GPU + Atom x86 has made the emulator go from a black screen to the android startup screen. And now, we wait
Edit: To be clear, I tried GPU + ARM, didn't work.
Edit2: It work, still slow as hell though
eddieringle said:
I had the same black screen until I enabled "Use Host GPU" under Emulation Options when creating the AVD.
Click to expand...
Click to collapse
That worked for me. Thanks a million. :good:
eddieringle said:
I had the same black screen until I enabled "Use Host GPU" under Emulation Options when creating the AVD.
Click to expand...
Click to collapse
This does work for me on Linux
Just an update - I discovered two things.
1 - this was not an issue with the L Preview, but rather with emulating a Nexus 5.
2 - there are two ways to solve the issue, one way is to use host GPU, the other is to select a skin rather than choosing no skin. The nice thing about the second method is that the snapshot feature can be used, greatly increasing the emulator start time.
FWIW.. I noticed..
So apparently the x86 version of Lollipop in the emulator requires the GPU or else you get a blank screen and missing hwcomposer module support files.. (I don't know if the files are in the preview .imgs but haven't gone looking).
If you create an arm (SLOW AS MOLASSES) arm image.. after the forever of booting you can do actual screenshots. It's 32-bit and the colors band, but there ya go.
EDIT: I bring you the new OFFICIAL way of installing X11 applications, I've been neglecting this thread way too much and need to give it some love.
The old instructions (OLD METHOD) are no longer needed as of April on the rc and rc-proposed channels, this should work on all channels however (tested up to latest devel-proposed image)
NOTE: You still need a writable image for the first parts of this, after you install the tools, it can go back to read-only.
1) Open Terminal
2) Install the following packages: libertine libertine-tools python3-libertine-chroot
3) Open the Ubuntu Store and install the scope: libertine-scope
4) Open the Libertine application that's now available in your launcher and follow instructions, it will set up a Ubuntu Vivid chroot in your home directory, install the components needed, and drop you at the package management screen. From here, you can update and add PPAs to the container via the Settings Icon -> Manage Container, Install packages via the plus icon, etc.
5) Favorite the Libertine XApps scope by swiping up on the home screen and hitting the star, then open the scope and you'll see any applications you installed there.
If you cannot install your container via the Libertine application (I know that it didn't have support for chroot until recently, not sure if that version has landed yet), you can install your container via the teminal, so open your terminal but DO NOT sudo su. All Libertine-container-manager commands MUST be done as phablet.
To create a container (this line will likely change when Xenial drops as Libertine will be switching to LXC on Xenial):
Code:
libertine-container-manager --create -i <container id> -n <friendly name (this shows up in the Libertine app)> -t chroot
Using this command, the system will build the new libertine container, wait until it's finished and then you can continue by using the installed Libertine application.
Onscreen Keyboard in Libertine Applications
THIS CAN FINALLY BE DONE! The only con to it, is that it is mostly unusable in applications that open dialog boxes along the bottom of the screen, the XMir window does not scroll up like native applications do to give a better viewing window. (I have been told that this will change in OTA-12 when the keyboard support drops for Libertine/Puritine apps)
To install on-screen keyboard:
Open Libertine and add ppa:brandontschaefer/maliit to your container. Then hit update in Manage Containers. Once done, install the following, maliit-inputcontext-gtk2, maliit-inputcontext-gtk3, maliit-framework. After that, setup is complete in your container, now we need to do some extra work outside the container to make it pass the GTK_IM_MODULE variable we need over to Libertine. To do this, add this line to your .bashrc or if you have a writable image, you can add this to the systemwide profile (not sure if this will be replaced on OTA though):
Code:
export GTK_IM_MODULE=maliitphablet
Restart the tablet OS, Open an application such as Libreoffice Writer and BEHOLD!
Notes
You can also manage your container via the terminal with libertine-container-manager. To get a root shell without installing mate terminal (You can't get a root shell via this method (installing a term), Proot acts like fakeroot all over your container's rootfs), you can use the following:
- l-c-m exec -c bash (This command does not mount any user directories (/home/phablet will not exist) and is best used for making changes to the container's rootfs)
or if you only need a user shell:
- DISPLAY= libertine-launch <containerid (default is vivid)> bash (This mounts user directories, but is no different than if you installed something like mate-terminal and ran it. The reason we are passing an empty DISPLAY variable is because libertine-launch will refuse to start if DISPLAY isn't set, even it if doesn't exist.)
- DPI Hacks: To change the DPI of applications in Libertine, you need a new way to make the .Xdefaults file as only the XDG User directories get mounted inside the libertine container, not your entire Home. To do this, install your favorite editor inside of the libertine container (I find nano to be the easiest for new users), and open Terminal, then follow these instructions:
1) Open your editor to ~/.local/share/libertine-container/user-data/[my container id, default = vivid]/.Xdefaults and fill it with the following:
Code:
Xft.dpi: 175
or what your preferred DPI is. On the Nexus 7 flo the comfortable DPI is 175 with an application font size of 14 (I use Liberation Sans which comes from Libreoffice).
- You can make your applications look great still, you don't have to be stuck with the default Raleigh GTK style. Download and install LXAppearance in your container and add ppa:noobslab/themes then start installing themes. Enjoy! The Ubuntu Touch Themes are wonderful and FlatPlat works well with the system UI as well.
Some cons to this:
- It requires at least 3GBs available in your internal storage (wherever your home folder resides) to store a full, non-touch Ubuntu Vivid container.
Pros:
- It survives OTAs, the only thing able to break this would be a change to XMir, PRoot, or Libertine. Which is landing in the images shortly by default so there's not much of a chance to break this.
- Nothing you do will break your UTouch system. Unlike the old method, this only installs the items needed to run the container, which are to become standard inside the images very soon.
OLD METHOD
--------------------
EDIT: I have not tested this in stable, rc, rc-proposed yet. Only the dev-proposed channel.
So there is some questioning I see going on about how to run things like Firefox efficiently and well. So I figured I'd write up a little something for it.
First you'll want to set your DPI in ~/.Xdefaults, as I have a Nexus 7, mine looks similar to this:
Xft.dpi: 240
Note that you may need to do some additional tweaking.
Now that you have Xdefaults made, install the ubuntu-pocket-desktop and matchbox-window-manager packages (along with the program you wish to use, for this tutorial, I'll use libreoffice).
Create a file in /bin called wm-wrapper.sh (or whatever you choose here, just remember the name), fill it with:
Code:
#!/bin/bash
matchbox-window-manager -use_titlebar no -use_dialog_mode const-horiz &
exec [email protected]
and save it, then chmod a+x it.
EDIT: For this next part, I recommend copying the .desktop to ~/.local/share/applications to avoid them being overwritten on package updates.
Now, navigate to /usr/share/applications/ and open the .desktop file for the application you are wanting to run. Add the following lines under [Desktop]:
Code:
X-Ubuntu-Touch=true
X-Ubuntu-XMir-Enable=true
Change the Exec line so that your wrapper (in my case wm-wrapper.sh) is in front of the executable, such that the line becomes (or similar):
Code:
Exec=/bin/wm-wrapper.sh libreoffice %U
Save it, then search for your application in the Unity Scopes. Open it up and you should see your application running as an XMir app easy. For future applications, you will simply need to do the changes to it's .desktop file.
EDIT: A helpful redditor gave me this tip to enable sending touch events over to Xmir. Setting the GTK_TEST_TOUCHSCREEN environment variable to 1 will apparently remove hover events and the like (events that are not normally sent with a touch screen, but with a mouse). I have not had time to take a look at this yet however so YMMV.
Thanks man, gonna try this on my n4 later today. ?
thumbzzzz said:
Thanks man, gonna try this on my n4 later today.
Click to expand...
Click to collapse
No problem, Like I said, not sure if it works on other channels, but it works great on the dev-proposed channel. You will also want to close applications using their menu items as closing the Xmir root window will cause the application to terminate without asking to save anything. Libreoffice can get around this via Document Recovery though.
I had been working on this for a good solid week testing applications and different ways to get X11 applications working so I could make it a full workstation, so I figured why not post my findings since the Ubuntu forum doesn't seem to get much love.
Thanks for the matchbox tip! It works quite nicely, especially, it brings a nice onscreen keyboard with it. I use the following setup now:
~/.local/share/applications/gedit-mb.desktop
Code:
[Desktop Entry]
Name=GEdit in Matchbox
Type=Application
Terminal=false
Icon=/usr/share/gedit/logo/gedit-logo.png
X-Ubuntu-Touch=true
#X-Ubuntu-XMir-Enable=true
Exec=/home/phablet/bin/matchbox-wrapper.sh gedit
~/bin/matchbox-wrapper.sh
Code:
#!/bin/bash
export DISPLAY=:1
Xmir $DISPLAY &
sleep 1
# xlogo
# xeyes
# x11vnc -forever -nopw -quiet -display $DISPLAY &
matchbox-window-manager &
sleep 1
matchbox-keyboard &
[email protected]
~/.matchbox/kbdconfig
Code:
# http://unix.stackexchange.com/questions/223110/what-are-the-keyboard-shortcuts-for-matchbox-window-manager
<ctrl><alt>p=prev
<ctrl><alt>n=next
<ctrl><alt>d=!matchbox-desktop
<ctrl><alt>x=!xterm
<ctrl><alt>f=!firefox
Together with the Xft.dpi setting (I use 220) this gives me a quite usable editor. If you have any other tips ShadowEO, I'd love to hear them!
One thing I'd like to figure out is how to modify the DPI for the Mir GDK Backend. Currently GTK3 applications started with the backend are way to small.
ShadowEO said:
One thing I'd like to figure out is how to modify the DPI for the Mir GDK Backend. Currently GTK3 applications started with the backend are way to small.
Click to expand...
Click to collapse
Do you have a specific example? Which application are you looking at?
doniks said:
Do you have a specific example? Which application are you looking at?
Click to expand...
Click to collapse
Sorry, for some reason I wasn't subscribed to this post (weird.)
Anyway the specific application I was looking at was gedit, when started with the native GDK Mir backend, it is almost unusable with touch as the elements are so small. GDK_SCALE doesn't work and neither does any of the GTK dconf settings for scaling.
Also, I have switched to using rc-proposed, so any more changes I do will likely be able to be installed without worrying about the snapshot channel.
Also messing with some touch-screen specific .gtk2.0-rc entries seem to help, but since I reformatted, I don't quite have those offhand at the moment. I'll have to look them up again.
Hi!
Thanks a lot for all these useful explanations! Finally I was able to run Firefox on my bq E4.5 (rc-proposed)! But I have a few questions:
1) I don't have any on-screen keyboard
2) it works like with a mouse (no touch scrolling for instance)
Is there something I can do about that?
takri said:
Hi!
Thanks a lot for all these useful explanations! Finally I was able to run Firefox on my bq E4.5 (rc-proposed)! But I have a few questions:
1) I don't have any on-screen keyboard
2) it works like with a mouse (no touch scrolling for instance)
Is there something I can do about that?
Click to expand...
Click to collapse
You could try the touchegg package for multi touch gestures, I haven't gotten around to testing it yet. As for keyboard, you can use onboard for most applications or if the application is a QT application, it will pop up the system keyboard (behavior was exhibited by calibre)
ShadowEO said:
You could try the touchegg package for multi touch gestures, I haven't gotten around to testing it yet. As for keyboard, you can use onboard for most applications or if the application is a QT application, it will pop up the system keyboard (behavior was exhibited by calibre)
Click to expand...
Click to collapse
Thanks a lot for your answer. Sorry I don't know much yet about all this so my questions might be silly!
1) I installed touchegg but I don't know how to make it work
2) I have no keyboard in any app I installed (caja, gedit, firefox, ...)
Another question: I have a bq E4.5 and although I have 3.5G of free space on my internal memory the space available for apt-get-ed apps is much smaller (I have 50M left after installing just those few apps above). So no way to try libreoffice or other heavier app. Do you know if there is a solution for that?
Thank you very much!
takri said:
2) I have no keyboard in any app I installed (caja, gedit, firefox, ...)
Click to expand...
Click to collapse
If you use the matchbox setup I described above then you should have a keyboard.
Another question: I have a bq E4.5 and although I have 3.5G of free space on my internal memory the space available for apt-get-ed apps is much smaller (I have 50M left after installing just those few apps above). So no way to try libreoffice or other heavier app. Do you know if there is a solution for that?
Click to expand...
Click to collapse
This website describes a tweak to put the apt cache on an external SD card. It's in German, but the command lines should be clear enough. Let us know how it goes.
https://wiki.ubuntuusers.de/Ubuntu_Touch/Terminal/#Freien-Speicher-beobachten
You would need to run touchegg in the wrapper. Sadly wth keyboard, the only applications that will get the system keyboard are QT based applications. GTK+ and other applications will require onboard to be installed. I messed around with trying to install maliit-context-gtk2 to get the system keyboard to show in all apps, but that broke the keyboard completely.
Remember XMir is better used with a physical keyboard since it doesn't trigger the Ubuntu keyboard for everything.
You can also make the system img bigger if using MultiROM: you simply run e2fsck -fp /path/to/Ubuntu.IMG and resize2fs <target size> /path/to/Ubuntu.IMG.
ShadowEO said:
You would need to run touchegg in the wrapper.
Click to expand...
Click to collapse
I've played around with this a bit, but I can't get touchegg to work. I start an xmir application, then log in via ssh from my desktop. After setting the DISPLAY variable, I can start more X applications ok. After starting touchegg I see an output like this:
Code:
Reading config from "/home/phablet/.config/touchegg/touchegg.conf"
Try to make a multitouch gesture. If everything goes well the information about the gesture must appear
[+] Avaliable gesture:
Name -> Flick
[+] Avaliable gesture:
Name -> Drag
[+] Avaliable gesture:
Name -> Pinch
[+] Avaliable gesture:
Name -> Rotate
[+] Avaliable gesture:
Name -> Tap
[+] Avaliable gesture:
Name -> Touch
I assume that I am supposed to see some more output when a touch gesture is recognised by touchegg, but nothing ever shows up.
I can see touch events with either xinput or evtest
Code:
$ xinput test "xmir-fake-touch-pointer:0"
motion a[0]=36317 a[1]=42290
button press 1
motion a[0]=36590 a[1]=41730
motion a[0]=36645 a[1]=41275
motion a[0]=36536 a[1]=40469
motion a[0]=36263 a[1]=39524
motion a[0]=35935 a[1]=39034
motion a[0]=34897 a[1]=38019
motion a[0]=33532 a[1]=36934
motion a[0]=32713 a[1]=36303
motion a[0]=31839 a[1]=35778
motion a[0]=31293 a[1]=35533
motion a[0]=30856 a[1]=35323
motion a[0]=30638 a[1]=35253
motion a[0]=30419 a[1]=35148
motion a[0]=30255 a[1]=35078
motion a[0]=29928 a[1]=34903
motion a[0]=29873 a[1]=34868
motion a[0]=29873 a[1]=34868
motion a[0]=29873 a[1]=34868
button release 1
Code:
$ evtest /dev/input/event0
Input driver version is 1.0.1
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0
Input device name: "elan-touchscreen"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event type 3 (EV_ABS)
Event code 47 (ABS_MT_SLOT)
Value 0
Min 0
Max 9
Event code 48 (ABS_MT_TOUCH_MAJOR)
Value 0
Min 0
Max 31
Event code 53 (ABS_MT_POSITION_X)
Value 0
Min 0
Max 1343
Event code 54 (ABS_MT_POSITION_Y)
Value 0
Min 0
Max 2239
Event code 57 (ABS_MT_TRACKING_ID)
Value 0
Min 0
Max 65535
Event code 58 (ABS_MT_PRESSURE)
Value 0
Min 0
Max 255
Properties:
Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
Event: time 9936.473027, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1159
Event: time 9936.473088, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 12
Event: time 9936.473088, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 27
Event: time 9936.473118, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 338
Event: time 9936.473118, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1059
Event: time 9936.473149, -------------- SYN_REPORT ------------
Event: time 9936.509709, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 11
Event: time 9936.509709, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 43
Event: time 9936.509709, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 351
Event: time 9936.509739, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1061
Event: time 9936.509739, -------------- SYN_REPORT ------------
Event: time 9936.512791, type 3 (EV_ABS), code 58 (ABS_MT_PRESSURE), value 46
Event: time 9936.512791, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 357
Event: time 9936.512791, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1063
Some websites point to synclient for the configuration of touchegg, but that doesn't seem to work in Xmir:
Code:
$ synclient
Couldn't find synaptics properties. No synaptics driver loaded?
Does anyone else have more luck with touchegg?
While researching it, I stumbled over references to xSwipe, but I haven't looked into that any further.
ShadowEO said:
You would need to run touchegg in the wrapper. Sadly wth keyboard, the only applications that will get the system keyboard are QT based applications. GTK+ and other applications will require onboard to be installed. I messed around with trying to install maliit-context-gtk2 to get the system keyboard to show in all apps, but that broke the keyboard completely.
Click to expand...
Click to collapse
Just to reiterate, the matchbox-keyboard works fine for me!
Oh, and one thing I wanted to share: The firefox extension Grab and Drag allows a more natural touch screen style drag-to-scroll.
I completely forgot the matchbox keyboard while writing that reply, I'm not sure what's going on with touchegg as I haven't had a chance to play with it on Ubuntu touch. It could be that XMir isn't actually passing that much information about touch events.
matchbox-window-manager struggle
I am on the new Aquarius m10 Ubuntu tablet.
Tried to run tome applications and realized the X11 and Mir problem.
Came across your solution! Thank you for sharring!
Well, I dont seem to be able to install matchbox-window-manager
It shows a lot of missing dependencies and I am not abble to install them manually either..
The following packages have unmet dependencies:
matchbox-window-manager : Depends: libmatchbox1 (>= 1.7-1) but it is not going to be installed
Depends: libstartup-notification0 (>= 0.2) but it is not going to be installed
Depends: libxsettings-client0 but it is not going to be installed
Any light?? Thank you very much
eskizon said:
I am on the new Aquarius m10 Ubuntu tablet.
Tried to run tome applications and realized the X11 and Mir problem.
Came across your solution! Thank you for sharring!
Well, I dont seem to be able to install matchbox-window-manager
It shows a lot of missing dependencies and I am not abble to install them manually either..
The following packages have unmet dependencies:
matchbox-window-manager : Depends: libmatchbox1 (>= 1.7-1) but it is not going to be installed
Depends: libstartup-notification0 (>= 0.2) but it is not going to be installed
Depends: libxsettings-client0 but it is not going to be installed
Any light?? Thank you very much
Click to expand...
Click to collapse
Mhm, not sure. You do have set it to read-write and you did an apt update, right?
doniks said:
Mhm, not sure. You do have set it to read-write and you did an apt update, right?
Click to expand...
Click to collapse
Thanks for sharing this info! I also own the M10 ubuntu tablet and try to run some X11 apps.
I am able to apt-get matchbox-window-manager. But it won't start and says it can't find the display.
Running either:
Code:
matchbox-window-manager
matchbox-window-manager -d :0
as a normal user or root always returns: "can't open display! check your DISPLAY variable.".
ubuntu-pocket-desktop is up to date and I also set the DPI in ~/.Xdefaults.
What could be the reason it can't find the display? What could I try?
Tazard4 said:
What could be the reason it can't find the display?
Click to expand...
Click to collapse
You don't have an X server running. At least not at :0.
What could I try?
Click to expand...
Click to collapse
Follow the instructions in the original post or in my post #4.
Bumping this thread as I've edited the OP with the official instructions for running Legacy X Applications on Ubuntu Touch. As well as information about getting the system maliit-based OSK showing in X Applications (It's not that great though, you still may have better luck with matchbox-keyboard/on-board, but not sure how you'd even start those in Libertine.)
I have installed Android Studio version 2.3.3 on Windows 7 64-bit Enterprise.
Using the AVD Manager, I created a new device.
Issue: When I start the Android Virtual Device, a screen flashes and disappears. Based on some suggestions online, I read that we need to modify the Graphics settings of the Virtual Device however I don't get the option to modify these settings.
Below are the settings of the Android Device I have created:
Nexus 5X (5.2 1080x1920 xxhdpi)
Nougat (Android 7.0 x86)
Emulated Performance (Graphics -> Automatic)
Device: Enable Device Frame (checked)
Camera: Front and Back (Emulated)
Network Speed: Full and Latency: None
RAM: 1536 MB
VM Heap: 256 MB
Internal Storage: 800 MB
Keyboard: Enable Keyboard Input.
And here is the output of the command: avdmanager.bat list avd
Available Android Virtual Devices:
Name: username
Device: Nexus 5X (Google)
Path: C:\Users\username\.android\avd\username.avd
Target: Google Play (Google Inc.)
Based on: Android 7.0 (Nougat) Tag/ABI: google_apis_playstore/x86
Skin: nexus_5x
Sdcard: C:\Users\username\.android\avd\username.avd\sdcard.img
My aims:
- Use Android Studio to develop a basic Android application - should be possible
- Use Android Studio to back up my physical phone (Hisense phone running Nougat 7.0) and create an emulated version of it running on my PC - should be possible, is it?
My PC:
- Windows XP 32-bit
- Pentium Dual Core T2330 processor NOT supporting Intel® Virtualization Technology (VT-x)
- 2 GB RAM
Questions:
- Are the above aims possible to achieve with my PC?
- If yes, what are the recommended Android Studio and Java SE Development Kit versions/settings to use that work for sure?
Story: I have tried to use Android Studio 3.0.1 with various versions of Java SE Development Kit 8 (including 121, 144, and 152) and various settings/hacks constantly running into various bugs/issues, most of which were seemingly resolved by new settings/hacks, yet I ended up with the same error messages after I have tried everything I have found online that nice people suggested on forums.
I am unable to even compile and run a default Android app, I get these error messages:
Gradle build finished with 2 error(s) in 21s 591ms
Error:java.util.concurrent.ExecutionException: java.lang.RuntimeException: No server to serve request. Check logs for details.
Error:Execution failed for task ':app:mergeDebugResources'.
> Error: java.util.concurrent.ExecutionException: java.lang.RuntimeException: No server to serve request. Check logs for details.
I am unable to run a default-loaded Android Virtual Device, I get this error message:
Emulator: Process finished with exit code -1073741511 (0xC0000139)
I am clueless how to continue. If my aims are possible to achieve, could someone tell me the Android Studio and JDK versions and settings that work 100% under 32-bit Win XP?
Thanks in advance!