[Q] SSH/SCP binaries on rooted Nexus 7? - Nexus 7 Q&A, Help & Troubleshooting

So, I've successfully rooted my Nexus 7, using wugfresh's Nexus Root Toolkit. I'm new to the Android world (but have good linux/unix knowledge), so i apologize if what i'm asking is obvious. But, after i've rooted, I do not see an ssh or scp binary included. It's my understanding that all of the basic linux binaries are ported into Android via BusyBox, where the binaries are included as applets and then symlinks are created so that you can call the applet in the same manner as you would call the binary in a linux environment. With that said, I do not see either ssh or scp included as a BusyBox applet. I was able to install Dropbear SSH Server, which includes it's own client. Using that, I am able to use "dbclient" to establish an ssh connection from my Nexus 7. The dbclient binary seems to operate just like a normal ssh command would. However, I don't see any way to get scp work through Dropbear, and the Dropbear client does seem a little wonky (for instance, it does not hide your password when you type it in to login).
I'm wondering if ssh/scp were prevously included binaries in previous versions of Android and this might be a jellybean specific issue? Or, am I missing something really basic here?
Any info you all might have to point me in the right direction would be much appreciated!
thanks!

Me too
I am also looking for the same. The ROM SGT7 comes with openssh and I am wondering if I can grab the binary or apk and move it to another ROM if I decide to change.
If I have time I will look at it this weekend.

They should be present in any recent cm10 build (see the dev threads) so you could download an image and unzip to get at the binaries.
Sent from my Nexus 7 using Tapatalk 2

sam3000 said:
They should be present in any recent cm10 build (see the dev threads) so you could download an image and unzip to get at the binaries.
Sent from my Nexus 7 using Tapatalk 2
Click to expand...
Click to collapse
ok, this worked for me. thanks for the suggestion. I had seen cm9/cm10 threads on the forums, but had not really known what they were about. After doing a little research, i understand better now. Anyways, I was able to download a recent CM10 build and unzip it on my laptop. From there, I copied scp and ssh from the /system/bin directory to my local /system/bin on the Nexus 7. I also needed to give executable perms on the copied files. Finally, I also needed to copy libssh.so from /system/library to the same directory on my Nexus 7.
Now, in a terminal window on my Nexus 7, I can scp and ssh as root.
thanks for the suggestion!!!
Sent from my Nexus 7 using xda app-developers app

Related

Ultimate guide to get Ubuntu and Busybox on your samsung galaxy tab 10.1

this is an easy pease guide to install Ubuntu with working Busybox on your samsung galaxy Tab 10.1
Requirements:
A rooted device (there are lots op threads on xda on how to root your 10.1)
after rooting download Ubuntu installer Free
the second app you need to download is busybox installer
and third you will need to download and install android-vnc you will need this to view the ubuntu after instalation
and then last but not least you can download a overclocking kernel to make things work smoother. there is a thread in xda about this.
and then download the setcpu.apk file. search it on google.
If you have any trouble finding the correct apps and kernels please post in your reply and I will give you the links to the kernels I am using uploaded by myself for you to download
Okay so lets get this party started
okay so after rooting your device install the Ubuntu Installer Free and follow the promts. it is an easy to use app which guides you to 3 downloads. the first download is the ubuntu.sh file. and then there are two links to download the ubuntu image. If you want a light (not good looking) version of ubuntu download the smaller image (the second option of the downloads).
If you want the gnome (sexy looking ubuntu) download the third option.
while you are downloading the files GO AHEAD and install the BusyBox installer app. then choose the 1.18.4 version and install it into you system/bin directory. it will give you the directory in a list to choose. once thats done install the same version again but in the system/xbin directory.
while you wait for ubuntu installer to download the images for you go ahead and search for that nifty overclock kernel. make sure IT IS NOT the one from zedomax because then you will have no screen rotate ability. look for an overclock kernel that has ov_oa in its description. once again post in this thread if you are having troubles and i will upload my kernel.
So after ubuntu installer has downloaded files go ahead and extract them into the /sdcard/ubuntu folder (you will have to create the folder)
after you have extracted the files into /sdcard/ubuntu folder (this directory is in the root of your tab. you do not have to create a folder in the root saying /sdcard/ubuntu. you can just make a folder named Ubuntu and drop the files in there.
so after plainc the files into the Ubuntu folder go to you terminal on your device. if you dont have a terminal you can download it from the market for free. its called android terminal.
in the terminal tipe the following
su
cd /sdcard/ubuntu
sh ubuntu.sh
if you have correct busybox installed you will get a prompt that asks you for the screen size. make the screen size 1280x800
then IF it gives you a choise between lightlinux or Gnome. select option 2. gnome
after that done open android vnc and set the following
name: ubi
password: ubuntu
adress: localhost
port: 5900
and then select connect.
and congratulations. everything was perfect. if not. pm me or reply in this thread for support.
Have you test it on Galaxy Tab 8.9
Hi. it will work on the galaxy Tab 8.9. just follow the same steps and make sure your device is rooted. as for the overclocking on the 8.9 I am not sure what the steps are
Was just wondering how much space does an installation like that take up? And will an Ubuntu install like that actually support everything that "normal" Ubuntu does (for instance compiling python, c, etc. on the device?). What about programs that work with Ubuntu on a PC, will they work on the Tab as well?
it takes up to 4gig of your storage. the ubuntu for the tab is ubuntu 10 Gnome. so everything works as normal ubuntu 10 would work. python and all those compiling programs will work. if you connect a mouse and keyboard to you tab it would work the same way as it would on a pc.
llewelyn12 said:
it takes up to 4gig of your storage. the ubuntu for the tab is ubuntu 10 Gnome. so everything works as normal ubuntu 10 would work. python and all those compiling programs will work. if you connect a mouse and keyboard to you tab it would work the same way as it would on a pc.
Click to expand...
Click to collapse
Nice, will give it a try to see if I can get some of my pygame projects to work (just for the kicks of it) .
I'm guessing you can't use the virtual keyboard with it though right? You need a hardware one? Or maybe, you could download a virtual keyboard for Ubuntu and see if that works ... hmm ... testing time! ^_^
PS: Do you know which desktop environment is used in the light version? Since I have the 16GB tab and I'd mostly use linux through the command prompt to program some basic stuff etc. I wouldn't really need a good desktop interface, just enough to run some graphic stuff when needed. Plus a lightweight DE would run faster
there is an awesome virtual keyboard you can download its called florence. it look ssexy and works good for me.but i stil prefer the manual keyboard.
Check out this pic. It gives an on screen keyboard
Sent from my GT-P7500 using XDA
Does the touchscreen work alright? I remember the native port had troubles with it.
Okay, after a bit of testing I thought I'd share my findings.
The installation was really simple, even though I had problems at first due to a wrong Busybox version - but I downgraded to 1.18.4 and it worked just fine.
I've tried both the "full" install and the "small" one. Both installed without problems, but the "full" one noticeably slower, even when running LXDE desktop environment. Guess that's one of the prices you have to pay for a system with way more applications. Apart from being kinda slow, mostly everything worked fine, the only problem I found was that if you wanted to change the background color of the terminal (the transparent thing wasn't doing it for me) it crashed. Otherwise I've tried out firefox, thunderbird etc. and it all worked fine.
On the "small" install, things seemed faster, CPU/memory was definitely stressed much less then in the full version. But, I ran into a quite big problem - terminals inside the GUI don't work at all. Everytime I run the lxterminal (tried installing some other terminals too, same problem) it starts up, but doesn't do anything. It doesn't even show the usual prompt (for instance "[email protected]>" or something like that). That means you can't run any terminal commands or apps (like top) through the GUI. You CAN however, run apt-get install through the terminal emulator you used to start the whole thing up.
So I worked around the problem by installing stuff from the terminal emulator, then trying it out in the GUI. It works, but it's definitely a real setback, since you can't even do simple stuff like "python test.py" etc. (well, you can through the terminal emulator in android, but then you're limited to text stuff, can't start up tkinter or pygame for instance).
I've managed to run a simple game made in pygame, and it actually had around 20 fps, but since you're looking at it through android-vnc, there's no way for stuff like that to be playable. Felt nice to see your python work on android, especially if you're not on good terms with Java .
I'd also recommend setting the resolution to something smaller, since you have to take the status bar into account - if you don't do that, you'll have to "scroll" up and down to see the whole screen - I've settled on 1280x720, seems to work fine for me.
Another problem I've noticed is that the Esc, F1, F2, ..., F12 keys didn't work inside linux (I'm using an Apple Wireless keyboard). Also, I couldn't play any music files (wanted to see if voice was working).
I'll definitely play around with this a bit more, and I can see myself using this (probably directly through the android terminal emulator, since it detects all my keyboard keys and has auto-completion etc.) for some non graphical programming in Python and C on the move, even without a hardware keyboard it's manageable.
What about anyone else? Did you try it out and what did you think? Anyone has any solutions to my terminal and special keys problem?
PS: Touchscreen doesn't have any problems, you have a few different input modes that you can play around, I haven't found one that would suit me perfectly though (the one I like best can't right click it seems). Ah well, nothing's perfect
Wow man, thanks for your feedback and support! there is a keyboard you can download inside software centre that gives you all the cool keys you would need. but seeing that you cannot use the lxterminal it pretty useless. ill see what I can find out about that but in the meantime thanks a lot for the feedback
nightmarebadger said:
Nice, will give it a try to see if I can get some of my pygame projects to work (just for the kicks of it) .
I'm guessing you can't use the virtual keyboard with it though right? You need a hardware one? Or maybe, you could download a virtual keyboard for Ubuntu and see if that works ... hmm ... testing time! ^_^
PS: Do you know which desktop environment is used in the light version? Since I have the 16GB tab and I'd mostly use linux through the command prompt to program some basic stuff etc. I wouldn't really need a good desktop interface, just enough to run some graphic stuff when needed. Plus a lightweight DE would run faster
Click to expand...
Click to collapse
I don't have the tablet (yet-hopefully gonna get one soon) but I'd suggest trying e17 (enlightenment) as your desktop environment. It is lightweight (at least compared to GNOME and KDE), IMO it looks nicer than other lightweight DE's (though the default mouse navigation style is not typical) and it has a touchscreen option/version/interface (don't exactly know what to call it). I have never tried the touchscreen version, but I have seen some screenshots and when I tried it out on a regular computer it asked if I want the touchscreen UI or the normal one. AFAIK it has its own onscreen keyboard (haven't tried it). I'm pretty sure gnome has one as well (somewhere in accessibility)
nightmarebadger said:
Okay, after a bit of testing I thought I'd share my findings.
The installation was really simple, even though I had problems at first due to a wrong Busybox version - but I downgraded to 1.18.4 and it worked just fine....
Click to expand...
Click to collapse
Badger, thanks for the mention of downgrading to 1.18.4. Thanks sent to you and the OP
I got it to run fine on my E4GT phone using 1.19.4 but it did not want to work on the Tab. I found that the following apps worked best on my Tab:
1. BusyBox (by Stephen Stericson) - just run this and even if you have 1.19.4 just use the drop down to select 1.18.4 and it will copy over it for you.
(Do not use the uninstall option as it is not needed and can cause problems)
2. Android Terminal Emulator (by Jack Palevich)
3. android-vnc-viewer (by androidVNC team + antlersoft)
Other apps may work but I have found the combination of these 3 to get ubuntu running on my Tab10 just fine.
btw Badger... I am with you 100% on not being on good terms with java
Graphics problem
I've installed this on my Samsung Galaxy Tab 8.9. I seem to have it operating OK but the graphics seem to not be working. The icons on the left are a black and white blur. I have changed the colour format to all of the different settings and no luck - any ideas? Thanks.
Permission Denied
When trying to bootubuntu I keep getting permission denied. I was skipping the su step, as I was following someone elses instructions, and I am now getting farther, but still permission denied at bootunbuntu. I haven't tried a linux flavor since red hat almost 10 years ago, and I was no guru then, so I'm sure whatever I'm missing will be rediculous...
wat kernel
llewelyn12 said:
this is an easy pease guide to install Ubuntu with working Busybox on your samsung galaxy Tab 10.1
Requirements:
A rooted device (there are lots op threads on xda on how to root your 10.1)
after rooting download Ubuntu installer Free
the second app you need to download is busybox installer
and third you will need to download and install android-vnc you will need this to view the ubuntu after instalation
and then last but not least you can download a overclocking kernel to make things work smoother. there is a thread in xda about this.
and then download the setcpu.apk file. search it on google.
If you have any trouble finding the correct apps and kernels please post in your reply and I will give you the links to the kernels I am using uploaded by myself for you to download
Okay so lets get this party started
okay so after rooting your device install the Ubuntu Installer Free and follow the promts. it is an easy to use app which guides you to 3 downloads. the first download is the ubuntu.sh file. and then there are two links to download the ubuntu image. If you want a light (not good looking) version of ubuntu download the smaller image (the second option of the downloads).
If you want the gnome (sexy looking ubuntu) download the third option.
while you are downloading the files GO AHEAD and install the BusyBox installer app. then choose the 1.18.4 version and install it into you system/bin directory. it will give you the directory in a list to choose. once thats done install the same version again but in the system/xbin directory.
while you wait for ubuntu installer to download the images for you go ahead and search for that nifty overclock kernel. make sure IT IS NOT the one from zedomax because then you will have no screen rotate ability. look for an overclock kernel that has ov_oa in its description. once again post in this thread if you are having troubles and i will upload my kernel.
So after ubuntu installer has downloaded files go ahead and extract them into the /sdcard/ubuntu folder (you will have to create the folder)
after you have extracted the files into /sdcard/ubuntu folder (this directory is in the root of your tab. you do not have to create a folder in the root saying /sdcard/ubuntu. you can just make a folder named Ubuntu and drop the files in there.
so after plainc the files into the Ubuntu folder go to you terminal on your device. if you dont have a terminal you can download it from the market for free. its called android terminal.
in the terminal tipe the following
su
cd /sdcard/ubuntu
sh ubuntu.sh
if you have correct busybox installed you will get a prompt that asks you for the screen size. make the screen size 1280x800
then IF it gives you a choise between lightlinux or Gnome. select option 2. gnome
after that done open android vnc and set the following
name: ubi
password: ubuntu
adress: localhost
port: 5900
and then select connect.
and congratulations. everything was perfect. if not. pm me or reply in this thread for support.
Click to expand...
Click to collapse
Im having problem, terminal emulator say loop missing.
So plz provide me kernel link and name os version on wich tat kernal need to b flashed
model: samsung galaxy tab 10.1 3g (gt-p7500).
help me for loop supporte kernal
sriabhi said:
Im having problem, terminal emulator say loop missing.
So plz provide me kernel link and name os version on wich tat kernal need to b flashed
model: samsung galaxy tab 10.1 3g (gt-p7500).
Click to expand...
Click to collapse
Hello sir,
I need a kernal for loop support on samsung galaxy tab 10.1 3g
(model: gt-p7500).
Plz send me link for kernal and tell me on what rom that kernal
has to be flashed.
can you please direct me to the Ubuntu Installer Free? Can't seem to find it on Play market.
komorka said:
can you please direct me to the Ubuntu Installer Free? Can't seem to find it on Play market.
Click to expand...
Click to collapse
It's called "Lunux Ultimate Installer" now...or something along those lines anways. If you search for Ubuntu Installer, it comes up.
llewelyn12 said:
this is an easy pease guide to install Ubuntu with working Busybox on your samsung galaxy Tab 10.1
Requirements:
A rooted device (there are lots op threads on xda on how to root your 10.1)
after rooting download Ubuntu installer Free
the second app you need to download is busybox installer
and third you will need to download and install android-vnc you will need this to view the ubuntu after instalation
and then last but not least you can download a overclocking kernel to make things work smoother. there is a thread in xda about this.
and then download the setcpu.apk file. search it on google.
If you have any trouble finding the correct apps and kernels please post in your reply and I will give you the links to the kernels I am using uploaded by myself for you to download
Okay so lets get this party started
okay so after rooting your device install the Ubuntu Installer Free and follow the promts. it is an easy to use app which guides you to 3 downloads. the first download is the ubuntu.sh file. and then there are two links to download the ubuntu image. If you want a light (not good looking) version of ubuntu download the smaller image (the second option of the downloads).
If you want the gnome (sexy looking ubuntu) download the third option.
while you are downloading the files GO AHEAD and install the BusyBox installer app. then choose the 1.18.4 version and install it into you system/bin directory. it will give you the directory in a list to choose. once thats done install the same version again but in the system/xbin directory.
while you wait for ubuntu installer to download the images for you go ahead and search for that nifty overclock kernel. make sure IT IS NOT the one from zedomax because then you will have no screen rotate ability. look for an overclock kernel that has ov_oa in its description. once again post in this thread if you are having troubles and i will upload my kernel.
So after ubuntu installer has downloaded files go ahead and extract them into the /sdcard/ubuntu folder (you will have to create the folder)
after you have extracted the files into /sdcard/ubuntu folder (this directory is in the root of your tab. you do not have to create a folder in the root saying /sdcard/ubuntu. you can just make a folder named Ubuntu and drop the files in there.
so after plainc the files into the Ubuntu folder go to you terminal on your device. if you dont have a terminal you can download it from the market for free. its called android terminal.
in the terminal tipe the following
su
cd /sdcard/ubuntu
sh ubuntu.sh
if you have correct busybox installed you will get a prompt that asks you for the screen size. make the screen size 1280x800
then IF it gives you a choise between lightlinux or Gnome. select option 2. gnome
after that done open android vnc and set the following
name: ubi
password: ubuntu
adress: localhost
port: 5900
and then select connect.
and congratulations. everything was perfect. if not. pm me or reply in this thread for support.
Click to expand...
Click to collapse
I need the download files to run ubuntu on my galalaxy tab 3 10.1. thanks.

Guide for building your own custom Raring Ubuntu-Core IMG.

Guide to making a Raring Ubuntu-core image on a Linux PC/laptop (NOT a virtual machine (VM)) for the purpose of installing it on your TF101.
All credit goes to the time and consideration x3maniac took to assist me with doing this!
OP for Tubutnu by x3maniac
This guide allows you to create a CORE Ubuntu image on your Linux box and then install it using the Tubuntu application for Windows. ***Please note, a CORE image does not contain a GUI. The gnome-core guide in the next link will walk you through the steps of installing the gnome-core GUI after you have made your fresh Raring Ubuntu-Core image.***
http://forum.xda-developers.com/showthread.php?p=37803357
***Why do I want to do this when the OP by x3maniac already has a Raring image for download? This guide is helping you make your own UPDATED image. There are daily builds of Raring and the image in the OP by x3maniac is over 2 months old as of this last update to this post.***
Please note that I am using a stock Ubuntu 12.10 laptop. I believe any variant of Ubuntu on a laptop or PC should work with this guide just fine.
Download the files first and then open Terminal to input our commands.
Download: http://cdimage.ubuntu.com/ubuntu-core/daily/current/raring-core-armhf.tar.gz
(You may optionally choose any date time from the Ubuntu-core folders. Ensure you are using the armhf tar.gz file.
Download (Recommended): https://www.dropbox.com/s/dqn9aa94oeju9kf/modules.tar.gz
Alternate Download: http://goo.im/dev/x3maniac/mod_firm_ext.zip
Alternate Download: http://www.novaspirit.com/downloads/mod_firm_ext.zip
After the downloads are complete, open Terminal and let’s get the image built!
A side note, I did not know that using ~ represented the user folder so if you do great, if not it will help you understand that /home/thomas can be represented using ~. So any subfolders of /home/thomas are included using the ~. I will specify my full paths and you can substitute the directories you wish to use. (Linux is still new to me too, I know enough to be dangerous!)
1. mkdir /home/thomas/images/ubuntu-raring
2. cd /home/thomas/images/ubuntu-raring
3. sudo apt-get install qemu
4. sudo apt-get install qemu-user-static
5. Now type this command: qemu-img create raring.img 200M
a.The Ubuntu Raring core image is approximately 186MB. So you understand at 186MB you only have 14MB available of extra stuff you can put into the image. You can resize up later but never down. You may specify any MB size you wish to use for the image. Experiment later, for now just make it 200M.
6. fdisk raring.img (you will see an error about invalid flag, this is ok, step 7 below is w for write, do proceed to step 7)
7. Type w to quit
8. Determine the file system you want (I used ext4)
a. Now type: mkfs.ext4 raring.img (according to config file of Tubuntu app, the partition is set up as ext3, you can use that as well)
b. A warning that your image is not a block special device (when choosing ext4) hit Y to proceed.
c. From /Ubuntu-raring directory type: mkdir mount
9. Now type: sudo mount –o loop ./raring.img ./mount
10. Now type: cd mount
10a. Now type: ls (you are only listing the mount directory to verify you have the lost+found directory) Go up one directory to /home/thomas/images/ubuntu-raring
11. Now type: cp /home/thomas/Downloads/raring-core-armhf.tar.gz /home/thomas/images/ubuntu-raring
12. Now type: sudo tar xvvf raring-core-armhf.tar.gz –C ./mount (you should not be in the mount directory)
13. Now type: sudo tar xvvf modules.tar.gz -C ./mount (you should not be in the mount directory)
14. sudo cp /usr/bin/qemu-arm-static /home/thomas/images/ubuntu-raring/mount/usr/bin (enter)
15. Now type: sudo chroot mount (if successful you will see /#)
16. Now type: passwd and make a password and confirm it.
17. Now type: exit
18. Now type: sudo umount ./mount
19. You should now be in the /home/thomas/images/ubuntu-raring/ directory. From here use the ls command and see your raring.img file.
20. You will need to copy this file your Windows box and use the Tubuntu installation application OR wheelie and nvflash commands. (Wheelie and nvflash commands are for more advanced users).
21. Click on this link for the next guide: http://forum.xda-developers.com/showthread.php?p=37803357
Hi, I have no problems creating the image and mounting it. But when chrooted:
apt-get update
0% [Working]qemu: Unsupported syscall: 374
Err http://ports.ubuntu.com raring Release.gpg
Something wicked happened resolving 'ports.ubuntu.com:80' (-11 - System error)...
I am on Ubuntu 12.10 64-bit. What could it be? qemu & qemu-user-static installed, qemu-arm-static copied...
Thank you and sorry for my CZ-english
onmail said:
Hi, I have no problems creating the image and mounting it. But when chrooted:
apt-get update
0% [Working]qemu: Unsupported syscall: 374
Err http://ports.ubuntu.com raring Release.gpg
Something wicked happened resolving 'ports.ubuntu.com:80' (-11 - System error)...
I am on Ubuntu 12.10 64-bit. What could it be? qemu & qemu-user-static installed, qemu-arm-static copied...
Thank you and sorry for my CZ-english
Click to expand...
Click to collapse
I need to update my guide. After the image is created on your Linux box you then install it on your tablet using tubuntu application. From the tab is where you run apt get commands. Sorry about that.
Sent from my SGH-T999 using Tapatalk 2
TomTcom said:
I need to update my guide. After the image is created on your Linux box you then install it on your tablet using tubuntu application. From the tab is where you run apt get commands. Sorry about that.
Sent from my SGH-T999 using Tapatalk 2
Click to expand...
Click to collapse
Oh, I see, but I think I will not be able to install apt-utils wpasupplicant if the wlan0 adapter is not working (I mean when wpasupplicant is not installed in the image).
onmail said:
Oh, I see, but I think I will not be able to install apt-utils wpasupplicant if the wlan0 adapter is not working (I mean when wpasupplicant is not installed in the image).
Click to expand...
Click to collapse
Yes you will because the core image has everything you need except the supplicant. You can make your own supplicant or copy from your working dual booted prime image of android. Let me try and update the guide later tonight.
Sent from my SGH-T999 using Tapatalk 2
onmail said:
Oh, I see, but I think I will not be able to install apt-utils wpasupplicant if the wlan0 adapter is not working (I mean when wpasupplicant is not installed in the image).
Click to expand...
Click to collapse
Ok, made several changes to my guide. Here's a couple things to note in case you missed them.
1. This guide helps you make an image of Raring Ubuntu-Core. This means there is no GUI and an additional post I have linked to for installing Gnome-Core (your actual desktop environment) for Raring.
2. After the Raring.img is made, you need to start on the Raring Gnome-Core guide and follow those instructions. That installation takes about 2 hours to download and answer questions because it is such a core install.
3. About the wifi, you will be using x3maniac's Tubuntu Windows installation application and starting from fresh with Prime Android and your new Raring image and if you follow the second guide it will walk you through setting up your wifi (do make sure you boot into Prime Android and set up your wifi first before booting to Raring.
4. Please familiarize yourself with the OP I have linked to for the x3maniac Tubuntu application.
It's not as hard as it may seem. After you do it a few times it's rather quick. Installing gnome-core by yourself is kind of slow and a bit tedious but the purpose of doing this was to have complete control of your image.
Later on if you are brave you can also build your own kernel as well and make changes. See my guide in my xda signature.
Hope this helps, thanks for using my guide. Hit the thanks button a couple of times and I'll make sure you get up and running.
TomTcom said:
Ok, made several changes to my guide. Here's a couple things to note in case you missed them.
1. This guide helps you make an image of Raring Ubuntu-Core. This means there is no GUI and an additional post I have linked to for installing Gnome-Core (your actual desktop environment) for Raring.
2. After the Raring.img is made, you need to start on the Raring Gnome-Core guide and follow those instructions. That installation takes about 2 hours to download and answer questions because it is such a core install.
3. About the wifi, you will be using x3maniac's Tubuntu Windows installation application and starting from fresh with Prime Android and your new Raring image and if you follow the second guide it will walk you through setting up your wifi (do make sure you boot into Prime Android and set up your wifi first before booting to Raring.
4. Please familiarize yourself with the OP I have linked to for the x3maniac Tubuntu application.
It's not as hard as it may seem. After you do it a few times it's rather quick. Installing gnome-core by yourself is kind of slow and a bit tedious but the purpose of doing this was to have complete control of your image.
Later on if you are brave you can also build your own kernel as well and make changes. See my guide in my xda signature.
Hope this helps, thanks for using my guide. Hit the thanks button a couple of times and I'll make sure you get up and running.
Click to expand...
Click to collapse
OK, thanks a lot, I will try. I have been playing with Tubuntu for some weeks and now I just started playing with building the image (and thinking about kernel...). Just now I am on Lubuntu (with xfce4 which I prefer) with 2.6 kernel and I am trying on my son's TF101 Raring with Gnome and 3.1 kernel. I am just thinking about the possibility when one system is "fine tuned" if it would be possible to copy it from one TF to the other one (I mean just the Linux partition).
onmail said:
Hi, I have no problems creating the image and mounting it. But when chrooted:
apt-get update
0% [Working]qemu: Unsupported syscall: 374
Err http://ports.ubuntu.com raring Release.gpg
Something wicked happened resolving 'ports.ubuntu.com:80' (-11 - System error)...
I am on Ubuntu 12.10 64-bit. What could it be? qemu & qemu-user-static installed, qemu-arm-static copied...
Thank you and sorry for my CZ-english
Click to expand...
Click to collapse
Replying to my own post because I must say - sorry, I am ehm an idiot... Because the only problem was - I have not edited the /etc/resolv.conf in the mount/etc directory. So now I can easily apt-get anything in the chroot! So it seems I can easily "prepare" an image with everything inside
onmail said:
Replying to my own post because I must say - sorry, I am ehm an idiot... Because the only problem was - I have not edited the /etc/resolv.conf in the mount/etc directory. So now I can easily apt-get anything in the chroot! So it seems I can easily "prepare" an image with everything inside
Click to expand...
Click to collapse
Did it work? I couldn't not without finding a way to inject VI into the image for editing the file. You can mess with permissions but it ultimately doesn't work from the Linux box.
If you are able to do it without the tab, post the instructions and I'll add it to my OP and give you the credit.
Sent from my SGH-T999 using Tapatalk 2
TomTcom said:
Did it work? I couldn't not without finding a way to inject VI into the image for editing the file. You can mess with permissions but it ultimately doesn't work from the Linux box.
If you are able to do it without the tab, post the instructions and I'll add it to my OP and give you the credit.
Sent from my SGH-T999 using Tapatalk 2
Click to expand...
Click to collapse
It works I am just in the middle of installing xubuntu-desktop... I have made a quick & dirty bash script which will help to set hostname for the new TF101, root password, make a new user with password and add him to sudo group, automatically enable all the deb repos (universe etc.), set cpu freqs in rc.local and install some usefull utils (sudo cpufrequtils bash-completion wpasupplicant nano mc net-tools). And there is a second script you can run on the first run on TF101 which will resize the linux partition to its limit, copy the wpa_supplicant.conf from the android partition and starts wlan0 I will send this to you asap but will test this first. Hope my English is understandable
onmail said:
It works I am just in the middle of installing xubuntu-desktop... I have made a quick & dirty bash script which will help to set hostname for the new TF101, root password, make a new user with password and add him to sudo group, automatically enable all the deb repos (universe etc.), set cpu freqs in rc.local and install some usefull utils (sudo cpufrequtils bash-completion wpasupplicant nano mc net-tools). And there is a second script you can run on the first run on TF101 which will resize the linux partition to its limit, copy the wpa_supplicant.conf from the android partition and starts wlan0 I will send this to you asap but will test this first. Hope my English is understandable
Click to expand...
Click to collapse
Xubuntu on raring is working without any problems. Now I would like to get the nvidia accelerated drivers working. I have tried 2 or 3 3.1 kernels but still without success. Googling for some help on compiling 3.1 kernel.
onmail said:
Xubuntu on raring is working without any problems. Now I would like to get the nvidia accelerated drivers working. I have tried 2 or 3 3.1 kernels but still without success. Googling for some help on compiling 3.1 kernel.
Click to expand...
Click to collapse
Awesome! If you go to the op for x3maniac, you can view his github that has 3.1 kernel source. Take a look and see of it helps.
Sent from my SGH-T999 using Tapatalk 2
TomTcom said:
Awesome! If you go to the op for x3maniac, you can view his github that has 3.1 kernel source. Take a look and see of it helps.
Sent from my SGH-T999 using Tapatalk 2
Click to expand...
Click to collapse
By the way, I have instructions for compiling the 2.6.36 kernel in my xda signature if that helps you.
Sent from my SGH-T999 using Tapatalk 2
TomTcom said:
By the way, I have instructions for compiling the 2.6.36 kernel in my xda signature if that helps you.
Sent from my SGH-T999 using Tapatalk 2
Click to expand...
Click to collapse
Yes, I know, I have already checked that. The 2.6 kernel is ok but I would really like to see the nvidia drivers working...
Had an issue mounting raring.img in step 9, had to run sudo fsck.ext4 "path to file" afterwards it mounted smoothly, dont know why tho.
JoinTheRealms said:
Had an issue mounting raring.img in step 9, had to run sudo fsck.ext4 "path to file" afterwards it mounted smoothly, dont know why tho.
Click to expand...
Click to collapse
Hmmm...did step 8a work ok?
Sent from my SGH-T999 using Tapatalk 2
TomTcom said:
Hmmm...did step 8a work ok?
Sent from my SGH-T999 using Tapatalk 2
Click to expand...
Click to collapse
Afaik it did, gave me the mentioned prompt, and finished without error. Might have something to do with me running a x64 vm ? as i wasnt able to chroot either. Im trying to get this running on my tf300t, but its alot different to installing it on the trusty tf101
Cheers for the guide tho, help me understand the whole process :good:
JoinTheRealms said:
Afaik it did, gave me the mentioned prompt, and finished without error. Might have something to do with me running a x64 vm ? as i wasnt able to chroot either. Im trying to get this running on my tf300t, but its alot different to installing it on the trusty tf101
Cheers for the guide tho, help me understand the whole process :good:
Click to expand...
Click to collapse
I believe our dev x3 mentioned there were differences on a VM so it probably has to do with that.
Glad the guide is helpful. Welcome!
Sent from my SGH-T999 using Tapatalk 2
Nice guide ! I just crated a 13.04 raring img. ( Used VM Kubuntu 12.04 )
Need some updates but nice
And there is a problem with actual release, wpa supplicant is not pre installed and now I'm in the begining of your second guide and cant set up wifi.
I had to download package with chroot, then install with my tab same for nano
Anyway, it's just FYI I dont really need help
Kingzak34 said:
Nice guide ! I just crated a 13.04 raring img. ( Used VM Kubuntu 12.04 )
Need some updates but nice
And there is a problem with actual release, wpa supplicant is not pre installed and now I'm in the begining of your second guide and cant set up wifi.
I had to download package with chroot, then install with my tab, and now it doesnt find iwlan0
Anyway, it's just FYI I dont really need help
Click to expand...
Click to collapse
This guide wasn't designed to use wifi, only to correctly package it for flashing 13.04 directly to the tab. The next guide adds the gui and requires your Android to be set up to copy over the wpa_supplicant file before executing those commands.
Onmail was able to script more changes to the image from "chroot" but I didn't go that far, he was able to get the supplicant and other abilities such as adding to the package better than I did.

[Q] Trying to make a filesystem in a file.

Hello,
I've been searching around for awhile now but I can't find anything on this. Simply, I've been trying to create a filesystem (ext2) on a file (created with dd). My goal is to get gentoo running on this device (gentoo actually has been ported to ARM, so I don't see why it wouldn't work). Now here lies the problem, when I try to create the filesystem using mkfs.ext2, I get this odd error:
Code:
# mkfs.ext2 -F root
mntent* getmntent(FILE*)(3) is not implemented on Android
mkfs.ext2: lseek: Value too large for defined data type
I've never had trouble doing this before on a desktop or laptop before, so I'm pretty stumped as to why this is doing this.
Help is greatly appreciated.
EDIT: I really should mention that I am not using the stock ROM. I currently have cyanogenmod installed (10.1) with the 4.2.2 kernel. I also have busybox 1.21.0 installed as well.
Thanks in advance,
Dragos
This problem doesn't exist on my device (stock ROM, busybox installed using app "Busybox" from Google Play). I used the same command as you and it worked. Maybe it is fault of your Busybox version?
I don't know will this workaround satisfy you, but you can simply prepare this file using any Linux desktop and then move it to your device.
przemub said:
This problem doesn't exist on my device (stock ROM, busybox installed using app "Busybox" from Google Play). I used the same command as you and it worked. Maybe it is fault of your Busybox version?
I don't know will this workaround satisfy you, but you can simply prepare this file using any Linux desktop and then move it to your device.
Click to expand...
Click to collapse
Ah right, didn't think of that. I posted that around 3 or 4 in the morning. I will try that out then. Thanks!

Root without PC (boot loader already unlocked)

Hey
So I WAS rooted until KitKat update and now I'm not. Wasn't a problem as I wasn't doing things that needed root access for a while, but I need to now.
Only issue is that I don't have access to any PC/laptop right now.
Is there a way I can root/gain superuser without a PC? I could have sworn I did this once before but it eludes me now.
Bootloader is already unlocked
Sent from my Nexus 7 using xda app-developers app
Xiorell said:
Hey
So I WAS rooted until KitKat update and now I'm not. Wasn't a problem as I wasn't doing things that needed root access for a while, but I need to now.
Only issue is that I don't have access to any PC/laptop right now.
Is there a way I can root/gain superuser without a PC? I could have sworn I did this once before but it eludes me now.
Bootloader is already unlocked
Sent from my Nexus 7 using xda app-developers app
Click to expand...
Click to collapse
Framaroot? Dunno if it works with KitKat but u could try it out.
Merry Christmas!
Smack that thanks button If I helped!
Always make a nandroid backup before trying anything risky.
I do respond to questions (most) via PM.
Sent from my fabulous N7105 powered by Illusion ROM and Plasma Kernel.
Sent from dat small country called Singapore.
P.S. Quote my post for replies ASAP.
If you still have a custom recovery installed, download SuperSU from http://download.chainfire.eu/supersu and flash it in recovery.
farmerbb said:
If you still have a custom recovery installed, download SuperSU from http://download.chainfire.eu/supersu and flash it in recovery.
Click to expand...
Click to collapse
How the heck are u getting custom recovery without root?
Smack that thanks button If I helped!
Always make a nandroid backup before trying anything risky.
I do respond to questions (most) via PM.
Sent from my fabulous N7105 powered by Illusion ROM and Plasma Kernel.
Sent from dat small country called Singapore.
P.S. Quote my post for replies ASAP.
Irwenzhao said:
How the heck are u getting custom recovery without root?
Smack that thanks button If I helped!
Always make a nandroid backup before trying anything risky.
I do respond to questions (most) via PM.
Sent from my fabulous N7105 powered by Illusion ROM and Plasma Kernel.
Sent from dat small country called Singapore.
P.S. Quote my post for replies ASAP.
Click to expand...
Click to collapse
custom recovery can be installed without root too... after going to recovery it gives option to root
IF you do not have a custom recovery installed and you have no access to fastboot then you need to find a root exploit to run under the installed OS which gives you a privilege escalation.
If I was aware of one, I would say so, but I really haven't been looking around. Seems like it might be easier to "borrow" a PC to get the job done.
One of the curiosities of working with devices like the Nexus series is that because they are so easily unlocked & flashed using sanctioned vendor methods, there are few N7 devs/hackers that concern themselves with "rooting" the factory ROM. Why bother, right?
So, when there is a widespread linux kernel exploit or generic Android exploit, the Nexus series owners get the benefit of devs developing working exploits for other devices, but not usually until then.
BTW, if you can "borrow" a friend's machine, you don't need to screw it up installing the SDK and a bunch of drivers - you can simply put the linux version of fastboot (plus your "flashables") onto a thumbdrive, boot that PC into a linux "live CD" distro, and run fastboot from linux. No drivers needed; just run fastboot as the "root" user. Hopefully it's not a UEFI-only BIOS.
That sidesteps having to muck someone else's Win-doze box up. You just borrow their hardware, not their operating system. Just mount the USB key, copy the fastboot executable someplace ( /tmp ?), chmod 755 it) and run it as root.* A lot of those "live" CDs (e.g. Ubuntu) have a file explorer on the desktop that allow you to mount different media devices it detects (including USB sticks, etc), so you don't really need to be much of linux wizard to use this approach.
good luck
* some time ago, it seemed that you may have needed to make sure to also grab supporting link-libraries along with the linux fastboot executable, as it is dynamically linked. I remember doing this in the past, e.g.
assuming you have "fastboot" executable, it's supporting libs and your custom recovery image on the root folder of a USB key:
Code:
$ sudo /bin/bash
# mkdir /tmp/foo
# cp /mnt/usbstorage/* /tmp/foo
# chmod 755 /tmp/foo/fastboot
# export LD_LIBRARY_PATH=/tmp/foo:/lib:/usr/lib:/usr/lib/i386-linux-gnu
# cd /tmp/foo
# ./fastboot devices
# ./fastboot flash recovery ./custom-recovery-image.img
I just checked fastboot on my Ubuntu 12.04 VM, and
Code:
$ objdump -x `which fastboot` | grep NEEDED
NEEDED libstdc++.so.6
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
all of those libs are included in various places in the distro, so even though the fastboot binary is dynamically linked, you don't need to provide the dynamic link libraries (or use LD_LIBRARY_PATH) in that case.

[N5] [FKU and PAM apps] Default kernel and Per App Mode Swaps.

So, In an attempt to get the configuration talk out of @franciscofranco's kernel thread, I decided to open this "swap meet"
As you may know I've wrote a couple scripts to make it easier to pull a backup of the kernel settings available through the franco kernel updater app.
Preparing files for sharing
Kernel Settings
so, if you want to share your kernel settings, grab the backup-script.sh file from here, run it either through a file manager or a terminal emulator, then head over to /sdcard/settings_backup/ and grab the restore-script.sh file, rename it to <your_user_name-defaults.sh> and post a link to it here.
Per App Modes
If you want to share you Per-App Modes settings, you'll need to use either the franco kernel updater or his stand alone Per-App Modes app, either way, the process is the same, just the file paths are a little different.
FKU App
So, if you use the fku app, go into fku -> Per-App Modes -> Manage your modes and click the BACKUP MODES in the top right corner. This creates an xml file of all your per app settings (one file per mode). These files are stored in /sdcard/franco.kernel_updater/saved_per_app_modes
Create a zip file including the modes you want to share and post it here.
Stand Alone Per-App Modes App
The process for using the stand alone app is the same. Per-App Modes -> Manage, and click BACKUP MODES in the top right corner again, this creates another batch of .xml files... Only they're stored in /sdcard/per-app_modes/saved_per_app_modes/
Once again, Create a zip file of the modes you want to share and post here.
Using Shared Settings
Okay, so you've downloaded the scripts and zips that you want to try out... how do you use them..
Kernel Settings
The scripts are easy, just run them (as root) through a file manager or terminal emulator.. then use fku or an init.d system to set the changes on boot if you want.
Per App Modes
The process for using the downloaded zips is just the reverse of sharing them...
Unzip the file and place the .xml files in the appropriate folder (/sdcard/franco.kernel_updater/saved_per_app_modes if you use fku, or /sdcard/per-app_modes/saved_per_app_modes/ for the standalone Per-App Modes app)
Then go into into your app, back to the manage page, where we clicked the BACKUP MODES last visit, only this time, click the LOAD MODES button.
Now, if you had copied the .xml file to the right folders, you should see the new PAM modules loaded into the list.
I will try to keep my signature link up to date with posted settings, and try to keep an eye out for identical or substantially similar settings.
For those using mobile apps and can't see signatures, here is the link to the scripts.
the backup-script.sh file is in the scripts folder, kernel and pam settings are in the settings folder.
Custom Paths for Per-App Modes
One thing that the stand alone app brought that hasn't (officially?) been ported back to the fku app is custom paths...
Giving you the ability to use any tunable setting in your Per-App Modes. --now in fku
While you can add and edit these easily through the stand alone app (and one reason why I think you should get it) once you know how the files work, thy can also be used in the main fku app...
Because of this, I am somewhat hesitant to give out the directions without approval from franciscofranco... Per-App Modes is a paid app of his and I would hate to take revenue out of his pocket.
Okay, since @franciscofranco has given me permission to release this, here we are...
This Zip file contains all the (useful) per app mode custom paths... to use this DO NOT FLASH IT... this is just a simple zip, nothing else... just unzip it in the right location...
If you use the fku app, then you need to unzip it and move/copy the files from the zipped folder to the franco.kernel_updater/per-app_custom_paths folder.
If you use the standalone per app modes then follow the same directions as fku, but put the files in the per-app_modes/per-app_custom_paths folder
Cautions and Warnings
-Any and all zips you find in this thread should NOT be flashed via recovery, don't try, bad things may happen...
-Permission errors may occur when running scripts from this thread as root. I haven't been able to figure out why, but some roms seems to set various file permissions to 444 instead of the 664 that my script expects... if you do encounter this situation, let me know and I'll give you a quick fix for it (requires adding a line to the scripts)
I haven't added the fix to my backup-script yet because I'm curious what files they are.. I've encountered 2 files so far
- Upon further testing, we've learned that root browser (app) might not work to run these scripts... adb shell and terminal emulator are working properly though. (backup script needed a small tweak as well)
Kernel setting scripts
Nexus 5
STOCK Settings
r46
aow1980
April 17, 2014
The Gingerbread Man
April 13, 2014
Tzfardaya
April 13, 2014
Vomer
July 22, 2014
Per-App Modes
The Gingerbread Man
April 13, 2014
Francisco Franco
May 11, 2014 - Low Power
May 12, 2014 - Games, Low Power
Vomer
May 11, 2014 - Low Power
Subscribed
Sent from my Nexus 5 using XDA Premium 4 mobile app
Subscribed! This is gonna be good! I'll upload a few of my setups soon!
Interesting Kernel settings , will give it a try and test your script. Thanks for sharing. Good luck with your thread
Tapatalk Team SlimRoms
This would be the perfect place to share some custom paths too
Subscribed and I'll see about linking to this thread from my learner lounge
Sent from my Nexus 5 using Tapatalk
The Gingerbread Man said:
This would be the perfect place to share some custom paths too
Subscribed and I'll see about linking to this thread from my learner lounge
Sent from my Nexus 5 using Tapatalk
Click to expand...
Click to collapse
Yeah, I've got a zip of ALL the custom paths ready, just working on the write up for them...
and trying to solve a small moral dilemma with them...
This thread could also be used for all the supported fku devices if you were to split up the op into several device specific sections and ask about getting the thread moved to Android General forum. New posts can also be inserted on your behalf but you need to contact a moderator for both of these...
Sent from my Nexus 5 using Tapatalk
The Gingerbread Man said:
This thread could also be used for all the supported fku devices if you were to split up the op into several device specific sections and ask about getting the thread moved to Android General forum. New posts can also be inserted on your behalf but you need to contact a moderator for both of these...
Sent from my Nexus 5 using Tapatalk
Click to expand...
Click to collapse
I know, but I don't have the other devices to get the scripts set up for it.. and I'm more interested in working the nexus 5 right now..
I would have no problem if others wanted to use my scripts as a base for writing their own for swapping
Tzfardaya said:
Per-App Modes
The Gingerbread Man
April 13, 2014
Click to expand...
Click to collapse
FYI, getting a bad zip file here, but the tgbm.zip in your sig works just fine
(damn that was hard to write with auto correct on SwiftKey. Lol.)
Sent from my Nexus 5 using XDA Premium 4 mobile app
WettbackMartyr said:
FYI, getting a bad zip file here, but the tgbm.zip in your sig works just fine
(damn that was hard to write with auto correct on SwiftKey. Lol.)
Sent from my Nexus 5 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
heh, yeah, swiftkey autocorrection is a pain at times..
but I just downloaded through both the pc and nexus 5 and got clean downloads of that zip...
I'm not sure if the two gingerbread zip are different, but he just sent me the current batch today... (hence the date in the name) the others are from when I first worked on the scripts
Tzfardaya said:
heh, yeah, swiftkey autocorrection is a pain at times..
but I just downloaded through both the pc and nexus 5 and got clean downloads of that zip...
I'm not sure if the two gingerbread zip are different, but he just sent me the current batch today... (hence the date in the name) the others are from when I first worked on the scripts
Click to expand...
Click to collapse
Hmmmmmm :-/ I just can't get a good download on my Nexus 5. I'm not complaining tho, just trying to help for other people that may encounter the same. I got the scripts on my end one way or another.
Sent from my Nexus 5 using XDA Premium 4 mobile app
WettbackMartyr said:
Hmmmmmm :-/ I just can't get a good download on my Nexus 5. I'm not complaining tho, just trying to help for other people that may encounter the same. I got the scripts on my end one way or another.
Sent from my Nexus 5 using XDA Premium 4 mobile app
Click to expand...
Click to collapse
Try this one https://docs.google.com/file/d/0B2ar5BB6clkDQ0JfMVQ3NGtucEU/edit?usp=docslist_api I probably won't keep it in my drive long but feel free to get it while its there
Sent from my Nexus 5 using Tapatalk
How do I run (as root) or file manager for script ?where do I put the script file for kernel settings? I open the .sh file and it open and I see just texted files
Sent from my Nexus 5 using xda app-developers app
Just tested The Gingerbreads configuration and I must say I definitely see an improvement from the settings I had previously set. Nice job.
The Nexus 5 advocate (Team Inferno)
Ramone360 said:
How do I run (as root) or file manager for script ?where do I put the script file for kernel settings?
Sent from my Nexus 5 using xda app-developers app
Click to expand...
Click to collapse
It doesn't matter where the scripts are ran from, you run them either by selecting them in the file browser or running the following commands in a terminal emulator.
Code:
su
Then
Code:
sh <script-name>
Just realize that running the script alone will not keep the settings across reboots...
You need some other way to persist the settings... Either using fku or an init.d system.
My recommendation is fku, use these scripts to set the values all at once, then use the fku set on boot toggles.
All a shell script is is a text file with a series of shell commands, it's only purpose is to run a series of commands in a row to prevent forgetting one or making typos... It's like the old dos/Windows batch commands...
Tzfardaya said:
It doesn't matter where the scripts are ran from, you run them either by selecting them in the file browser or running the following commands in a terminal emulator.
Code:
su
Then
Code:
sh
Just realize that running the script alone will not keep the settings across reboots...
You need some other way to persist the settings... Either using fku or an init.d system.
My recommendation is fku, use these scripts to set the values all at once, then use the fku set on boot toggles.
All a shell script is is a text file with a series of shell commands, it's only purpose is to run a series of commands in a row to prevent forgetting one or making typos... It's like the old dos/Windows batch commands...
Click to expand...
Click to collapse
Sorry I still don't get it. I'm too familiar with terminal emulater. l always use root explorer. I downloaded the file but now my question is how do I run as root.
Sent from my Nexus 5 using xda app-developers app
Sent from my Nexus 5 using xda app-developers app
To run the script from terminal emulator you'll need to first locate the file.. But you need to be root to launch an .sh file.
Type "su" without quotes and let SuperSU prompt you, make sure you grant it root access.
Navigate to the file by using the "cd" command without quotes.
If you're like me..and downloaded it from a browser or Tapatalk.. You'd type cd storage/sdcard0/Download
Then run "ls" without quotes to make sure the file is in there. Once it is make a note of the name.
Type su FILENAME.sh (replacing filename with the actual name of the file) and hit enter. Should have worked. It did for me. If done correctly you should see no confirmation or error message. In Linux no messages are a good thing.
PS : don't forget to grant root to terminal emulator if you haven't yet. Remember to use FKU or init.d to make settings stick after reboot.
Edited to include "su" command for those who don't know how to run terminal emulator as root.
The Nexus 5 advocate (Team Inferno)

Categories

Resources