Android Architecture For Beginners



Similar documents
Android Security (and Not) Internals

Android Operating System

Mobile Devices - An Introduction to the Android Operating Environment. Design, Architecture, and Performance Implications

Mobile Devices - An Introduction to the Android Operating Environment. Design, Architecture, and Performance Implications

ANDROID OPERATING SYSTEM

Android Operating System:

Lecture 17: Mobile Computing Platforms: Android. Mythili Vutukuru CS 653 Spring 2014 March 24, Monday

The Case for SE Android. Stephen Smalley Trust Mechanisms (R2X) National Security Agency

A Look through the Android Stack

Android Architecture. Alexandra Harrison & Jake Saxton

Example of Standard API

Research and Design of Universal and Open Software Development Platform for Digital Home

Programming the Android Platform. Logistics

Overview of CS 282 & Android

Android Fundamentals 1

Android on i.mx Applications Processors

Android 5.0: Lollipop OS

Inside Android's UI Embedded Linux Conference Europe 2012 Karim

UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

Workshop on Android and Applications Development

Mobile Operating Systems. Week I

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

Analysis of advanced issues in mobile security in android operating system

A Survey on Android vs. Linux

Overview. The Android operating system is like a cake consisting of various layers.

Survey of Filesystems for Embedded Linux. Presented by Gene Sally CELF

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development

Creating and Using Databases for Android Applications

Android Sensors This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. CC-BY Google

The Behavioral Analysis of Android Malware

Android Basics. Xin Yang

ELEC 377. Operating Systems. Week 1 Class 3

Security Issues in Android Custom ROMs

ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY

Embedded Linux Platform Developer

Understand and Build Android Programming Environment. Presented by: Che-Wei Chang

An Introduction to Android. Huang Xuguang Database Lab. Inha University

Using Chroot to Bring Linux Applications to Android

The Android Platform

OpenCV on Android Platforms

Introduction to Android

Industry First X86-based Single Board Computer JaguarBoard Released

Android-based Java Programming for Mobile Phone LED Control

An Introduction to Android

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

CSC230 Getting Starting in C. Tyler Bletsch

RoverPal - A Mobile Payment Application

Issues in Android on Mobile Platform and Their Resolution

ITG Software Engineering

Review On Google Android a Mobile Platform

Performance Analysis of Android Platform

Graduate presentation for CSCI By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu )

What else can you do with Android? Inside Android. Chris Simmonds. Embedded Linux Conference Europe Copyright 2010, 2net Limited.

Using Mobile Processors for Cost Effective Live Video Streaming to the Internet

Sierraware Overview. Simply Secure

Smartphone market share

Android Programming and Security

Security Enhanced (SE) Android: Bringing Flexible MAC to Android

AppScope: Application Energy Metering Framework for Android Smartphones using Kernel Activity Monitoring

SNAPPIN.IO. FWR is a Hardware & Software Factory, which designs and develops digital platforms.

CS378 -Mobile Computing. Android Overview and Android Development Environment

Android Development: Part One

Lecture 1 Introduction to Android

The Future of the ARM Processor in Military Operations

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

FAME Operating Systems

EXPLORING LINUX KERNEL: THE EASY WAY!

Operating System Structure

Mobile Platform Security Architectures A perspective on their evolution

Multi-Operating Environment System

Mobile Phones Operating Systems

Update on filesystems for flash storage

Architecture (SOSP 2011) 11/11/2011 Minsung Jang

A Perspective on the Evolution of Mobile Platform Security Architectures

Mobile applications security Android OS (case study) Maciej Olewiński. Cryptographic Seminar r.

Linux Kernel Architecture

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

Introduction to Android

Introduction to Native Android Development with NDK

Mentor Embedded IVI Solutions

Hybrid Platform Application in Software Debug

HTTP-FUSE PS3 Linux: an internet boot framework with kboot

Deep Inside Android. OpenExpo Zurich September 25 th, Gilles Printemps - Senior Architect. Copyright 2007 Esmertec AG.

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Secure Containers. Jan Imagination Technologies HGI Dec, 2014 p1

Here to take you beyond Mobile Application development using Android Course details

Virtualization in the ARMv7 Architecture Lecture for the Embedded Systems Course CSD, University of Crete (May 20, 2014)

Hacking your Droid ADITYA GUPTA

Operating Systems. Design and Implementation. Andrew S. Tanenbaum Melanie Rieback Arno Bakker. Vrije Universiteit Amsterdam

Outline. Operating Systems Design and Implementation. Chap 1 - Overview. What is an OS? 28/10/2014. Introduction

GENIVI Lifecycle Webcast 30 th January 2014

Transcription:

Leon Romanovsky leon@leon.nu www.leon.nu April 22, 2013

Introduction Linux-based operating system with market share - 69.70% in smartphones, 42% in tablets, available on smart TVs and mini PC.

History October 2003 - Android Inc. founded by Andy Rubin, Rich Miner, Nick Sears and Chris White August 2005 - Google acquired Android Inc. November 2007 - Open Handset Alliance (OHA) formed September 2008 - Android 1.0 released

Android Stack Linux Kernel Layer HAL, memory management, security, power management, drivers and network Native Libraries core libraries to support different types of data (audio and video formats, e.t.c.), Java libraries (Dalvik VM) Application Framework basic functions of device (in use by developers) Application system installed (/system/app) and user installed (/data/app)

Layers Diagram

Linux Kernel vs. Android Kernel core code binder - interprocess communication mechanism ashmem - shared memory mechanism logger timestamps performance/power wakelock low-memory killer CPU frequency governor and much more... 361 Android patches for the kernel

Security Architecture Based on Linux kernel A user-based permissions model (user/group ID) Process isolation (sandboxing) Extensible mechanism for secure IPC Mandatory application sandbox for all applications Secure interprocess communication ContentProviders, Intents, Binder/IPC, local sockets, or the file system Application signing Based on Java s JAR specification Application-defined and user-granted permissions Apps statically declare permissions they need (use) No support for dynamic (run-time) granting of permissions

Special Permissions frameworks/base/data/etc/platform.xml <permissions> <permission name= android.permission.camera > <group gid= camera /> </permission> <permission name= android.permission.bluetooth > <group gid= net bt /> </permission>... </permissions>

Android Directory Structure Based on Linux /dev, /proc, /sys, /mnt, /etc Android specific /system - read-only main Android directory /data - read-write local storage (/data/app, /data/data) /cache - temporary storage

Boot Process

SoC Boot For Pedants Raspberry Pi A small RISC core on the GPU (VideoCore IV c Multimedia Co-Processor) is responsible for booting the SoC. Qualcomm There are two processors in the MSM 7x30, an ARM9 for the radio and an ARM11 auxiliary applications processor. The ARM9 running REX loads the emmc hboot partition into memory at 0x8D00000 (virtual) and starts the ARM11 auxiliary applications processor executing at this location. Nvidia Tegra A co-processor known as the AVP (Audio-Video Processor). This processor implements the initial boot process, it is an ARM7TDMI. When Tegra is powered on, the AVP executes code from the boot ROM.

init system/core/init/init.c int main(int argc, char **argv) {... /* clear the umask */ umask(0); /* Get the basic filesystem setup we need put * together in the initramdisk on / and then we will * let the rc file figure out the rest. */ mkdir( /dev, 0755); mkdir( /proc, 0755); mkdir( /sys, 0755); mount( tmpfs, /dev, tmpfs, MS NOSUID, mode=0755 );... init parse config file( /init.rc );... }

init.rc action - trigger system/core/rootdir/init.rc import /init.usb.rc import /init.${ro.hardware}.rc import /init.trace.rc... on fs # mount mtd partitions # Mount /system rw first to give the filesystem a... chance to save a checkpoint mount yaffs2 mtdsystem /system mount yaffs2 mtd@system /system ro remount...

Further Reading Embedded Android by Karim Yaghmour Android Security Underpinnings by Marko Gargenta Working with MTD Devices Understanding Android Security by William Enck et al. Android Security Overview