[ale] OT: Android native code

David Tomaschik david at systemoverlord.com
Sun Mar 24 15:02:52 EDT 2013


On Sun, Mar 24, 2013 at 9:18 AM, Boris Borisov <bugyatl at gmail.com> wrote:

> My latest device that I bought from BigLots is cheap tablet 4" with
> moderate specification written on the box but in reality the situation
> is different. As I mentioned in previous post some of the RAM is
> locked so there is only 340 MB available. CPU claims 1 Ghz but
> actually Android uses between 500 and 800 Mhz. Third thing is the SoC
> itself. Is not one of the ARM cores it is MIPS 74Kc something with no
> FPU so there is software FPU running by Linux kernel. I don't mind all
> issues but the latest is little frustrating. I have tried to download
> pocket version of Minecraft game ( Yes I have two kids ) and Android
> warned me " Portion of the game contain native code so it may not run
> at all on this system" . So it does not run :)
>
> This is not really a question but just thought. Isn't that some kind
> of security issue for Android, running native code, isn't that code
> running outside Dalvik VM. And using native code rejects all other
> platforms but ARM ...
>

The Android NDK (https://developer.android.com/tools/sdk/ndk/index.html)
exposes selected Android APIs to run in native code which offers the
ability to reuse existing C code for CPU-intensive operations on Android.
 NDK itself supports ARM, x86, and MIPS instruction sets, but each NDK
library obviously only works with one platform (and sometimes only specific
versions of that platform).  If the MIPS CPUs had the capabilities
Minecraft needed and the developers were interested in targeting MIPS, they
could build MIPS NDK libraries and ship them in the app as well.  According
to the Android security documentation (
http://source.android.com/tech/security/): "*Android Application Runtime*:
Android applications are most often written in the Java programming
language and run in the Dalvik virtual machine. However, many applications,
including core Android services and applications are native applications or
include native libraries. Both Dalvik and native applications run within
the same security environment, contained within the Application Sandbox."
 In other words, the Android kernel enforces the sandbox on applications,
rather than depending on the Dalvik VM.

[Obligatory disclaimer since we're discussing Android: I work for Google
and the views represented here are my own and do not represent Google.
 Also, for what it's worth, I don't work on Android and this is all just
from my understanding from playing around with the Android SDK.]


-- 
David Tomaschik
OpenPGP: 0x5DEA789B
http://systemoverlord.com
david at systemoverlord.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ale.org/pipermail/ale/attachments/20130324/5c203130/attachment.html>


More information about the Ale mailing list