I have a computer that runs a 64bit linux, as can be seen by uname -a:
Linux meitarb-IdeaPad-U430p 3.13.0-43-generic #72-Ubuntu SMP Mon Dec 8 19:35:06 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
And a rooted android device that runs a 32bit linux, as can be seen by uname -a:
Linux localhost 3.4.34-850131 #1 SMP PREEMPT Tue Nov 26 14:21:45 KST 2013 i686 unknown
I've used adb push command in order to copy the dd binary from the 64bit linux to the android device:
$ adb push `which dd` /data/my_bin/
The dd binary is compiled for 64bit as can be see with the file command:
$ file `which dd`
/bin/dd: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=bd9a50b8e781047585f94fde7eb1f9703dfbde28, stripped
I've used the dd binary on my android and it works just fine.. Its all nice and all... But why does it work?! As far as i know 64bit compiled binary isn't supposed to work on 32bit kernel, but it does.
#EDIT
Unfortunately in the end it seems like it was just a stupid action of me.. On the device, I added the folder i've copied the dd binary to to the PATH enviroment variable. But the catch was that there was another dd binary compiled correct for 32-bit in the PATH directories.. Then when i ran it, i actually ran the correct dd binary.
Related
Is it possible? I can ran 64-bit ELF file (pandoc) on 32-bit OS (Android 13) and 64-bit processor Samsung Exynos 850. What is happaning?
~ $ uname -m
armv8l
Screenshot
Just want to ran pandoc on my mobile phone. I know that i have 32 bit os, so i want to install 32 bit version of pandoc. There is no 32 bit pandoc in termux repositories. So i just add aarch64 repository and install it. I think that pandoc can ran because it staticly builded, and there is no library dependencies. Am i right?
I'm just starting to use Android Studio on Linux, spent almost a year getting it working, yesterday I did some tutorials then did some downloads with sdk manager. Now my ADB doesn't work anymore. Big surprise, my ADB executable is now dated today, and fastboot, etc. So I checked with the "file" utility and:
file adb
adb: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically
linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24,
BuildID[sha1]=90addc5e3980f6efab749c9032cc8d7ad60dfb94, not stripped
file fastboot
fastboot: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux
2.6.24, BuildID[sha1]=f0fd57bfe0c22d4ba1e0b3e211441162066433b4, not stripped
file dmtracedump
dmtracedump: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux
2.6.24, BuildID[sha1]=86871b6d114d9f8f9f0263d061cd9db8eb8886b7, not stripped
file sqlite3
sqlite3: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically
linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24,
BuildID[sha1]=68c2ef312f09631815b20ecbc5dce2669e350807, not stripped
You mean to tell me Google can't afford to keep a 32-bit build machine? I can't run 64 bit on my computers. Maybe it was an accident. This was apparently Platform-tools 23.1. I had it working for 1 day, grrr.
Copied in a tarball of platform_tools 22.x from another machine, seems to be working so far. I couldn't even bring up the emulator, that also uses ADB to communicate with it.
Under System Requirements (http://developer.android.com/sdk/index.html#Requirements) you can find:
Tested on UbuntuĀ® 14.04, Trusty Tahr (64-bit distribution capable of
running 32-bit applications).
If you want to keep compatibility to whatever your architecture and platform is perhaps you should use https://packages.debian.org/sid/android-tools-adb which may have older versions but perhaps enough to what you are trying to acieve.
I want to build android project source, and when I using below commands, it says the binary can't executed. I found the gcc binary is x86_64 platform, my laptop is i686 platform
adan#adan-Latitude-D630:~/androidsource$ source build/envsetup.sh
adan#adan-Latitude-D630:~/androidsource$ lunch full_eng
/bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc: cannot execute binary file
/bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc: cannot execute binary file
Enter a password: ^C
adan#adan-Latitude-D630:~/androidsource$ file prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=0xf8e11f40cf6b10fa26e6fea774d9d94058c53595, stripped
I found my platform is:
adan#adan-Latitude-D630:~$ uname -a
Linux adan-Latitude-D630 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:25:33 UTC 2013 i686 i686 i686 GNU/Linux
I want to replace the build binary with i686 platform, how to do this?
any infomation and link is welcome
thanks
Per the slightly outdated documentation: http://source.android.com/source/building.html
and this thread: https://groups.google.com/forum/#!topic/android-building/gMW0TLIyr3o
you will need a 64 bit OS and as much RAM as you can get in order to build Android from source on the master branch, i.e. the latest and greatest code. i686 means 32-bit so if you are running 10.04 of Ubuntu, you could try to build Froyo (Android 2.2), but I would recommend more powerful hardware than a Dell Latitude as the building the Android source code could take a long time.
I am working on a 64-bit linux system(it's ubuntu), and downloaded a ADT Bundle for 64bit linux, but when I use some tools under the sdk folder, the bash report some error like
bash: ./emulator: No such file or directory
What can cause error like this, I am aware the file is just there.some infomation I can get are showed below:
$ uname -a
Linux zhch-DX4840 3.8.0-34-generic #49-Ubuntu SMP Tue Nov 12 18:00:10 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
$ pwd
/home/zhch/software/adt-bundle-linux-x86_64-20131030/sdk/tools
# the path indicates that I downloaded a 64bit version, I downloaded it from http://developer.android.com/sdk/index.html
$ ls ./emulator
./emulator
$ ./emulator
bash: ./emulator: No such file or directory
$ file emulator
emulator: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, not stripped
Or there is something wrong about the ADT Bundle?
PS: I downloaded the 64bit version, so I think there tools should can be used without configure, isn't it?
You'll have to install some 32 bit libraries as well. Try ldd emulator, this should tell you which libraries can be resolved and which can't. The 'no such file or directory' when executing a file that's obviously there results from a library that can't be resolved.
I have installed eclipse and android SDK on Fedora 17. In eclipse I got this error
/home/jakub/Android/android-sdk-linux/platform-tools/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
I tried install this packages: ncurses-libs.i686 libstdc++.i686 libgcc.i686, but always got that error
i got it working on 64bit CentOS using a stackexchange answer i cannot find at the moment. It basically involved appending .i686 to several package names, ie:
yum install libstdc++.i686
ia32-libs does not formally exist as an rpm. However, on my Ubuntu 10.04 box
dpkg --listfiles ia32-libs | wc
indicates there are 1456 files in ia32-libs to make 32bit stuff work on 64bit Debian based platforms. i certainly did not install 1456 .i686 packages. So just now, i entered
$ rpm -qa | grep i686
libX11-1.3-2.el6.i686
libstdc++-4.4.6-4.el6.i686
openssl-1.0.0-25.el6_3.1.i686
libXau-1.0.5-1.el6.i686
SDL-1.2.14-3.el6.i686
glibc-2.12-1.80.el6_3.7.i686
libgcc-4.4.6-4.el6.i686
libxcb-1.5-1.el6.i686
libXrandr-1.3.0-4.el6.i686
zlib-1.2.3-27.el6.i686
libselinux-2.0.94-5.3.el6.i686
openssl-devel-1.0.0-25.el6_3.1.i686
nss-softokn-freebl-3.12.9-11.el6.i686
ncurses-libs-5.7-3.20090208.el6.i686
krb5-libs-1.9-33.el6_3.3.i686
libXext-1.1-3.el6.i686
libcom_err-1.41.12-12.el6.i686
libXrender-0.9.5-1.el6.i686
keyutils-libs-1.4-4.el6.i686
When i find the original answer i used, i will post it back here.
did you used android in fedora before.?
System requirements
Operating Systems
Windows XP (32-bit), Vista (32- or 64-bit), or Windows 7 (32- or 64-bit)
Mac OS X 10.5.8 or later (x86 only)
Linux (tested on Ubuntu Linux, Lucid Lynx)
GNU C Library (glibc) 2.7 or later is required.
On Ubuntu Linux, version 8.04 or later is required.
64-bit distributions must be capable of running 32-bit applications.
link:
because SDK is 32bit
try to use: yum install ia32-libs