Is it possible (it's possible, just how) to get bash shell running on Hero? I kinda like it because i use it on my desktop Linux and I would like to run it on my hero also (better options/features than sh).
Regards
found a possible solution:
http://www.kbrandt.com/2009/06/how-to-cross-compile-the-bash-shell-for-android-15.html
I'll try it tomorrow and (or if anyone else does) upload the binaries if I succeed.
LP
B
oblika said:
Is it possible (it's possible, just how) to get bash shell running on Hero? I kinda like it because i use it on my desktop Linux and I would like to run it on my hero also (better options/features than sh).
Regards
Click to expand...
Click to collapse
http://forum.xda-developers.com/showthread.php?t=537827&highlight=bash
thank you
LP
B
Related
Hi, I would put some linux binaries (arm architecture ?) on my phone to support the ADB SHELL activity, to enlarge the busybox capabilities.
For instance, I mean stuff like a bash shell, a complete gtar for backups (the busybox one isn't adeguate), md5deep, and so on.
Could you please give any hint to do that ?
Thanks
Val3r10 said:
Hi, I would put some linux binaries (arm architecture ?) on my phone to support the ADB SHELL activity, to enlarge the busybox capabilities.
For instance, I mean stuff like a bash shell, a complete gtar for backups (the busybox one isn't adeguate), md5deep, and so on.
Could you please give any hint to do that ?
Thanks
Click to expand...
Click to collapse
The first post here: http://forum.xda-developers.com/showthread.php?t=777380 contains a link that actually contains a complete binary arm cross compiler. If you use linux (works with most 32 bit distros, needs multilib on 64 bit distros) you can use that to cross compile your code to arm.
Many thanks for your answer.
I'd static link libraries, I guess...
Btw could I also use normal binaries for 32bit arm architecture ? (i.e. debian distro...)
You can also use some of the binaries of the CyanogenMod for Desire (or any other phone) and use these (bash, nano) http://androidforums.com/evo-4g-all...shell-nano-tab-completion-color-over-ssh.html
Bash 4.1 : http://android.modaco.com/content/software/301932/bash-4-1-native-app-for-android/ (not sure its the one i got but you can give it a try)
Jb boin said:
Bash 4.1 : http://android.modaco.com/content/software/301932/bash-4-1-native-app-for-android/ (not sure its the one i got but you can give it a try)
Click to expand...
Click to collapse
Many thanks.
The bash 4.1 binary could also be found in the Better Terminal Emulator package from market...
Actually I'm looking for a way to get other working stuff for low level backups, as said gtar, zip, ...
I added some convenience scripts to the config. Read the new tutorial here
The old one still works:
I put together a small virtualbox vm with a very minimal debian config with which I was able to compile a working kernel. This is for all the people who are running Windows, and want to try modifying kernels/initramfs's. As this is a minimal config there are some drawbacks (like it doesn't have a graphical interface), but you can always install additional packages, if you want to.
The VM includes: debian, build essentials, git, vb guest additions, mc, vim and codesourcery 2010q1 gnu-eabi. (it's larger than the simple eabi version, but can be used to compile non-kernel applications too)
First of all I hate both SunOracle VirtualBox and debian, but VB is free, and debian is lean, so they'll do the job.
To get the image running do the following:
First download and install VirtualBox
Next download the VM image: http://android.sztupy.hu/dl/KernelCompilerVM-1.1.7z and extract it. (it's a large download. If you can please put it up a mirror)
Mirrors: (thanks to the people mirroring it)
- http://www.multiupload.com/THJV19BJ9X
- http://bote.ro/sztupy/KernelCompilerVM-1.1.7z
After this run virtualbox, and import this VM.
Run the VM. The username/passwords are: root/root and kernel/kernel. Login with kernel. (you can always switch to root using sudo)
Next choose what kernel/initramfs you want to compile.
Here are some links to kernels:
The original sources can be found at supercurio's git:
Code:
git://github.com/project-voodoo/linux_gt-i9000.git
froyo-samsung branch
The kernel of the voodoo project can be found at the same place:
Code:
git://github.com/project-voodoo/linux_gt-i9000.git
froyo-voodoo branch
The ULTK kernel can be found at my account:
Code:
git://github.com/sztupy/universal_lagfix_kernel.git
Here are some links to initramfs files:
The original froyo initramfs can be found at supercurio's git page:
Code:
http://github.com/project-voodoo/samsung_ramdisks.git
afaik the voodoo initramfs is build using scripts from these images, so you have to apply them.
The ULTK initramfs can be found here:
Code:
git://github.com/sztupy/universal_lagfix_kernel_initramfs.git
For the rest of the tutorial I'll be showing how to compile ULTK:
First get the kernel sources using git:
Code:
git clone git://github.com/sztupy/universal_lagfix_kernel.git kernel
Unfortunately no copy-paste function is available, so you have to write this manually...
Next get the initramfs using git:
Code:
git clone git://github.com/sztupy/universal_lagfix_kernel_initramfs.git initramfs
If everything goes well you'll have two directoryes, called kernel and initramfs. Next we have to modify some values in the kernel configs.
Nano, mcedit and vim are installed, use the one that suits you best. (mcedit is the most user friendly)
Switch to the kernel directory and edit the Makefile there:
Code:
cd kernel
nano Makefile
Find the row that says
Code:
CROSS_COMPILE ?= some value
Replace it to
Code:
CROSS_COMPILE ?= /home/kernel/arm-2010q1/bin/arm-none-linux-gnueabi-
(if using nano make sure it won't add a line break into the row)
Next load the default config:
Code:
make aries_eur_defconfig
And edit it:
Code:
nano .config
We have to supply the directory of the initramfs. Search for the line:
Code:
CONFIG_INITRAMFS_SOURCE=some value
and replace it to
Code:
CONFIG_INITRAMFS_SOURCE=/home/kernel/initramfs/out
(this is for the ULTK. For voodoo the initramfs locations are "froyo-xxjp6" and "froyo-xxjpm" instead of "out")
if you've managed to do that too, let's compile the kernel:
Code:
make
If everything goes fine after a while you will have your shiny new kernel. Now let's get it to your computer, so it can be flashed:
First, you have to create a shared folder in VirtualBox. Simply create a directory somewhere on your computer, and add it as a shared folder in virtualbox. The name of the shared folder should be simple, for example "shr".
Next, you have to mount that directory inside the VM. To do this enter:
Code:
sudo mount -t vboxsf shr ~/share
After it has been mounted you can copy the fresh kernel to your host OS:
Code:
cp arch/arm/boot/zImage ~/share
If everything goes well you have a zImage ready at the folder you've just shared. TAR it, fire up odin, and flash.
---------------------------------
Now that you've succesfully compiled a working kernel try to modify it. You can use "make menuconfig" in the kernel directory to switch some kernel functions (like filesystem supports) on and off. You can edit .config by hand to add or remove some configuration values. And you can edit the files in the initramfs directory. After modifications you only have to enter "make" in the kernel directory to get your kernel inside the "arch/arm/boot/zImage" dir ready.
You can also copy files from your host OS, to the guest OS, by putting the file inside the shared folder and copying it:
Code:
cp ~/share/thefile ~/initramfs/copyithere
Hope this guide was useful.
Impressive, thanks. Even a noob like me can try this.
Oh god, not only a talented developer, but a community helper!
STICKY!!
Gonna try it laters <3
oh yea, nice!
DocRambone said:
Impressive, thanks. Even a noob like me can try this.
Click to expand...
Click to collapse
If you're a noob, then I'm a baby
Darkyy said:
If you're a noob, then I'm a baby
Click to expand...
Click to collapse
high time you start compiling kernels
tnx
its very usefull
Magnificent!
I just came to take a quick look, but the thread deserves a closer one.
Thank you for sharing knowledge.
Worthy of a sticky.
Hopefully this will solve all those "I want this in a kernel but not that" scenarios.
This is VERY nice for the devs.. but.. i think this will make this forum spammed with 69 diff kernels with just minor changes.. as with the roms
Its better to let other people brick their phone than you brick your own
Just kidding! I for one will try and compile different versions with different lag-schemes to find the fastest combination. Including /system with fastest reading. I think I will add a benchmark to the recovery menu directly. Benchmarking each mount for read and for write speeds. Maybe I can use backup/restore code and just time it without writing (cp to null). Lets get to work
Thanks sztupy!
Sent from my GT-I9000 using XDA App
_JKay_ said:
Its better to let other people brick their phone than you brick your own
Just kidding! I for one will try and compile different versions with different lag-schemes to find the fastest combination. Including /system with fastest reading. I think I will add a benchmark to the recovery menu directly. Benchmarking each mount for read and for write speeds. Maybe I can use backup/restore code and just time it without writing (cp to null). Lets get to work
Thanks sztupy!
Sent from my GT-I9000 using XDA App
Click to expand...
Click to collapse
You cannot brick your phone with a bad kernel
@sztupy
I am impressed how productive master mind and kind person you are sharing all your knowledge and developments with us.
Congratulation, with you contributions you push Android Development forward.
Thank you
this is really cool, if i need minimal GUI, what would you suggest? xfce ? or there is something smaller and lighter? thx again.
avary said:
this is really cool, if i need minimal GUI, what would you suggest? xfce ? or there is something smaller and lighter? thx again.
Click to expand...
Click to collapse
Fluxbox/Openbox. However I don't see the need for one, if you're running the machine just for compiling.
Also, shouldn't gpm+guest additions solve the copy-paste problem?
E: Apparently not. Meh, stupid virtualbox.. sshd+putty then!
Awesome! Thanks for this sztupy! The more people we can get involved in this stuff, the better the end result will be. Always!
aziztcf said:
Fluxbox/Openbox. However I don't see the need for one, if you're running the machine just for compiling.
Also, shouldn't gpm+guest additions solve the copy-paste problem?
E: Apparently not. Meh, stupid virtualbox.. sshd+putty then!
Click to expand...
Click to collapse
actullay i was looking for something light and minimal (with GUI, or at least something like PCman FM and gedit or kedit, im not good with emac, vi ) to play and compile AOSP, for now i do this with Kubuntu dual boot on my laptop. if i put a litghweight desktop on top of szytup's image and use it with VB, that would be great.
thank you !
avary said:
actullay i was looking for something light and minimal (with GUI, or at least something like PCman FM and gedit or kedit, im not good with emac, vi ) to play and compile AOSP, for now i do this with Kubuntu dual boot on my laptop. if i put a litghweight desktop on top of szytup's image and use it with VB, that would be great.
thank you !
Click to expand...
Click to collapse
I'd use a shared folder+IDE/editor/whatever on windows. But that's just because I have so awful experiences about X in VMs, things might be better nowadays
Thanks a lot sztupy, will try it now. Sunday is enough time for testing
Each morning i have a look at XDA and you have brought out a new very helpfully posting, kernel, rom or else!
So let me ask you one question: when do YOU sleep?
avary said:
actullay i was looking for something light and minimal (with GUI, or at least something like PCman FM and gedit or kedit, im not good with emac, vi ) to play and compile AOSP, for now i do this with Kubuntu dual boot on my laptop. if i put a litghweight desktop on top of szytup's image and use it with VB, that would be great.
thank you !
Click to expand...
Click to collapse
The advantage of using X is that afaik guest additions has copy-paste support, that would make modifying easier.
I also plan on making some simple scripts inside the default home directory one can run to communicate with the shared folder. After that we could provide simple scripts that you only have to put inside the shared folder, which will download, modify and run the compilation.
How does I set up teh linux?
1- you dont know anything about linux. go ubuntu. we will tweak it after that. version 10.xxx (cant remember exactly).
2- you've used linux before and feel comfortable when thinking about it. go ubuntu/fedora.
3- no worries. you can troubleshoot alone when leenucks acts funny, you su everyday. go arch linux.
bottom line, it all comes to a few package versions.
make, python2, git, jdk, maybe a few others, need old versions. even in ubuntu, if you would like to start from a more updated base image, you'll need to downgrade. arch linux allows this with more freedom, since its more modular.
i havent used fedora for a few years now. used it back when red hat quit doing desktop images, didnt stay long and switched to slack.
i prefer archlinux because it's 300mb'ish iso, allows lvm, luks from live cd, doesnt have a text-based installer but install scripts, rolling release system (prebuilt packages/packages built from src using abs/aur, testing repo), customizable/modular, cli package manager (pacman ), systemd, grub2..
basically, if you like bleeding edge and power to yourself, try archlinux. read the wiki, begginer guide, install guide. first time i did it, i used another pc to help me go through all the steps.
sent from my i9250
When you're interested in Linux you can take a easy to use Distro like Ubuntu.
Packetmanagement resolves dependencies autocratically and nearly each software is available as a precompiled Packet
Also such Distros are running 32 and 64bit Programms out of the box.
If you want to learn linux in deep (and have enough time to solve issues) i recommend a Distro like Arch or Slackware.
I use Slackware64 and learned a lot about Linux and the packet and library dependencies.
Because the Packetmanagement does not resolve dependencies.
Even GUI Tools are rare on this Distro, you have to struggle with config files.
Slackware is a pure 32 or 64bit Linux (can be build to a Multilib Linux).
For Example the Android SDK mainly uses 32bit.
Maybe you should try some Distros and use that one you feel familiar with.
Also there are good Resources out in the net which you should read (Filesystem Hierarchy Standard, File Permissions, Basic Shell Tools)
Google and en.wikibooks.org/wiki/LPI_Linux_Certification would be a good starting point.
You could also try some Live-CDs, mess with it and when all went wrong only reboot.
Good Luck
Indeed, start Ubuntu, you can even stay with it if you like. But Arch and the install guide give you a good grasp on how Linux works.
Of course, you can develop apps in Windows or OSX, and OSX and Linux are the only two that allow you to build Android from source (basically ROM development). You also need to know Java to develop Android apps, less fun than screwing around with Ubuntu lol.
Good luck!
Sent from my Galaxy Nexus using xda app-developers app
Thanks for all the replies guys! Wish me luck lol.
RoyJ said:
Thanks for all the replies guys! Wish me luck lol.
Click to expand...
Click to collapse
Just to give one final thought, I think Slack would be a better learning experiencing, since it's even more close to Unix than Arch. With Arch you learn a lot, that's a fact, but with Slack you understand even how libraries and dependencies work, kinda the hard way, since you don't have a package manager to take care of it for you.
I think both might be a steep (maybe too steep) learning curve, and Ubuntu will be easier but, Ubuntu does things more their way. It's Linux, but things are different. Eventually, you'll know what i mean.
sent from my i9250
Thanks for the input. That's something to look into for sure. I am in no rush to just jump in and try it. I'd really like to learn everything on a basic level like that first.
I'm trying to get the research down before I start messing with the development.
Hi,
I have uploaded to Github a simple script to clean of chinese apps and customize an official ROM. I have used the apns-conf.xml from Cyanogenmod (just I have added one APN for me) and a list of MIUI apps from htcmania forum. The idea original comes from elperroderoke but I want to extend with more functionality.
I have tested with the latest official build: bz_v4.3_armani_JHCMIBH45.0.zip and Linux but it should work fine on Mac. For Windows, you will need a python shell.
releasetools with an 'extras.txt'; pretty much the same concept (we devs use it).
good job :good:, though I am not sure how many people with a python shell we have
thewisenerd said:
releasetools with an 'extras.txt'; pretty much the same concept (we devs use it).
good job :good:, though I am not sure how many people with a python shell we have
Click to expand...
Click to collapse
i do.
Not sure if this question really fits in here but here it goes.
As Linux kernel is running under Android, how would one write applications that would run native (without Java overhead)? Additionally to the first question, I would like to access camera in that arrangement, like one would for example use v4l2 on PC or similarly?
Thanks,
Damjan
damjandakic said:
Not sure if this question really fits in here but here it goes.
As Linux kernel is running under Android, how would one write applications that would run native (without Java overhead)? Additionally to the first question, I would like to access camera in that arrangement, like one would for example use v4l2 on PC or similarly?
Click to expand...
Click to collapse
It really depends on the camera and the kernel the device is running.
If kernel > 2.6.26 (which it should be, as Android 1.5 was using 2.6.27 already) and your camera is supported by UVC, then it's easy (V4L being the best choice). Otherwise, you will need the source and/or binary SDK, which is usually quite difficult to get ahold of.