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



Similar documents
Overview of CS 282 & Android

ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY

An Introduction to Android

Android Fundamentals 1

Android Operating System

Analysis of advanced issues in mobile security in android operating system

Understanding Android s Security Framework

Android Programming and Security

Android Security. Giovanni Russello

Android Architecture. Alexandra Harrison & Jake Saxton

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

ANDROID OPERATING SYSTEM

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

The Android Platform

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

Smartphone market share

ITG Software Engineering

Adobe Flash Player and Adobe AIR security

Beginner s Android Development Tutorial!

Synthesis for Developing Apps on Mobile Platforms

Creating and Using Databases for Android Applications

Android Architecture For Beginners

Workshop on Android and Applications Development

Review On Google Android a Mobile Platform

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

Introduction to Android

Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps. Hyeokgon Ryu, Infraware Technology, Ltd.

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

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

Lecture 1 Introduction to Android

Bringing Android Apps to Tizen. Kevin Menice, OpenMobile World Wide, Inc. SVP & GM, Embedded and Core Technologies November 11, 2013

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

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Example of Standard API

A qbit on Android Security

A Look through the Android Stack

Mobile Application Hacking for Android and iphone. 4-Day Hands-On Course. Syllabus

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Programming the Android Platform. Logistics

A Perspective on the Evolution of Mobile Platform Security Architectures

An Introduction to Android Application Development. Serdar Akın, Haluk Tüfekçi

HybriDroid: Analysis Framework for Android Hybrid Applications

Remote Desktop on Mobile

UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

Android Application Development. Daniel Switkin Senior Software Engineer, Google Inc.

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

Data Centers and Cloud Computing

Issues in Android on Mobile Platform and Their Resolution

Android Basics. Xin Yang

Android Operating System:

Android Developer Fundamental 1

Mobile Operating Systems. Week I

Hacking your Droid ADITYA GUPTA

Introduction to Android

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

Технологии Java. Android: Введение. Кузнецов Андрей Николаевич. Санкт-Петербургский Государственный Политехнический Университет

ECE 455/555 Embedded System Design. Android Programming. Wei Gao. Fall

Android Security Joshua Hodosh and Tim Leek

An Android-based Instant Message Application

Berlin Institute of Technology FG Security in Telecommunications

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

Mobile Application Development Android

A Short Introduction to Android

Operating System Components and Services

Android Mobile App Building Tutorial

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

Android Security. Device Management and Security. by Stephan Linzner & Benjamin Reimold

Android Application Analyzer

Security challenges for internet technologies on mobile devices

Exokernel : An Operating System Architecture for Application-Level Resource Management. Joong Won Roh

QUIRE: : Lightweight Provenance for Smart Phone Operating Systems

ELEC 377. Operating Systems. Week 1 Class 3

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

BYOD: End-to-End Security

TUTORIALS AND QUIZ ANDROID APPLICATION SANDEEP REDDY PAKKER. B. Tech in Aurora's Engineering College, 2013 A REPORT

Presenting Android Development in the CS Curriculum

INTERMEDIATE ANDROID DEVELOPMENT Course Syllabus

Mobile Platform Architecture Review: Android, iphone, Qt

Cloud Computing for Education Workshop

Android. Mobile Computing Design and Implementation. Application Components, Sensors. Peter Börjesson

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna

A proposal to realize the provision of secure Android applications - ADMS: an application development and management system -

RoverPal - A Mobile Payment Application

Mobile Platform Security Architectures A perspective on their evolution

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

Introduction to Android

ni.com Remote Connectivity with LabVIEW

International Engineering Journal For Research & Development

Developing Applications for ios

Android Development. Marc Mc Loughlin

Homeland Security Red Teaming

Introduction to Android Development. Jeff Avery CS349, Mar 2013

Transcription:

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

Mobile applications vs. traditional applications Traditional model of computing: an OS (Linux / Windows), libraries, user-space applications. Then came the move to web-based or cloud-based applications. Application hosted remotely, accessed by your desktop via browser / some other client. Initially, mobile applications followed the same principles as traditional desktop principles, except that the OS and applications were customized to run on different (resource-challenged) platforms. E.g., embedded linux. Now, with the advent of the smartphone, the model of mobile applications is changing.

Mobile applications today Mobile operating system: Android and ios are the main players. We will focus on Android in this lecture. Android ecosystem is basically Linux + some extra libraries + Android runtime virtual machine (Dalvik VM) + application development framework + applications. Anyone can develop an app using the framework and any of the Linux libraries. Applications are written in Java and run on a Dalvik Virtual Machine (think of it as an optimized java virtual machine)

Android design principles (1) Traditional environment: users are the main entities by which permissions are assigned. Each user has a unique UID. In Android, each app has a unique UID, and runs in its own separate VM. This enforces isolation, and allows us to run untrusted third party applications.

Android design principles (2) Android enforces a fixed structure on applications. An application is composed of one of the following components: Activity (user interface) Service (background processing) Content provider (data store) Broadcast receiver (mailbox to receive notifications) The fixed structure results is easy development of apps, and helps monitor the apps for security.

Android design principles (3) Traditionally, many mechanisms for IPC (inter-process communication), like shared memory, pipes, sockets etc. Android restricts IPC to passing intents between components of applications. An intent is a message that specifies a target component and some arguments (action etc.). A component that receives an intent does a specific action in response to it. Start activity or service Bind to a service Query content provider Intends can be explicit (identify target) or implicit (Android identifies suitable target) All intents pass through Android reference monitor that can monitor them for security. External communication via network sockets or Java libraries, much like in Linux.

Android design principles (4) Access control in Linux is by setting permissions based on users and groups. In Android, every component is protected by a permission label. Labels can be defined by system or app developers. Another component that wants to access it must have the required permissions. Permission may be needed to send intent and start activity Permission may be needed to receive intents from certain components. All these checks enforced by reference monitor. In addition to checking intents, permissions enforced by special Linux groups for access to network, camera etc.

Android design principles (5) Permissions are of many types: Normal: harmless, given to any app that requests. Dangerous: user must approve System: only for system apps A manifest file declares all components, permissions etc. Permissions can be granted only at install time. User is required to grant permissions judiciously.

Android Security Security is a first principle in Android design, so fairly secure system. Some malicious activity still happens due to: Linux bugs User carelessness in granting permissions Applications misuse permissions Tools to catch malicious activity Static analysis of code Dynamic analysis of application behavior

For more information.. Please see the references on the class website for more details on Android architecture and security.