Customing Android: Looking inside the droids belly

Similar documents
Android System Development Training 4-day session

Mobile and Wireless Systems Programming

Galaxy Note Root Guide. by Max Lee

Android In Industrial Applications. A Field Report

Embedded Linux With Raspberry Pi IOT

An Introduction to Android. Jason Chen Developer Advocate Google I/O 2008

Developing on DragonBoard

Flash Player Manually For Android Apk Descargar

An overview of mobile and embedded platforms

Android Gingerbread Manually Update To Jelly Bean

IoE Workshop. Marc Khayat, CCIE #41288, Leonard Janer Technical Managers. June 16

Release Notes Zebra MC33x NN- 00-A Release for Non-GMS

Android Gingerbread Manually Update To Jelly Bean Features

Facing the Reality: Virtualization in a Microkernelbased Operating System. Matthias Lange, MOS, January 26th, 2016

The HiKey AOSP collaborative experience

Android - open source mobile platform

Android Bootloader and Verified Boot

Release Notes Zebra VC80x NN-00-A Release for AOSP. Introduction. Introduction. Description. Zebra Value Adds Feature List

WES 237A Project Part 1 Guide

Embedded Android? Not so fast!

Please Manually Power Up This Phone Droid X

Release Notes Zebra VC80x Android N Update 003 based on NG-00-A (GMS)

Android Jelly Bean Manual Install Application On Sd Card

Instructions Use Kindle Fire Hd 7 Camera Spec

Sprint Samsung Galaxy S2 Manual Update 4.0 4g Touch Jelly Bean

Introduction To Android

SEEDAndroid User Manual

Android Application Development A Beginners Tutorial

HOW TO INTEGRATE NFC FRONTENDS IN LINUX

Matrix. Get Started Guide V2.0

SBC3100 (Cortex-A72) Single Board Computer

Building a ROM for Android on Ubuntu in Virtualbox

OPS235: Week 1. Installing Linux ( Lab1: Investigations 1-4)

Root User Guide Android Jelly Bean Operating System

Android Gingerbread Manually Update To Jelly Bean Features

DEVELOPMENT GUIDE VAB-630. Android BSP v

Manual Android 4.3 Galaxy S3 Verizon Official Rom

JC900 USER MANUAL V1.0

Android Eclipse You May Want To Manually Restart Adb From The Devices View

Rooting Android. Lecture 10. Security of Mobile Devices. SMD Rooting Android, Lecture 10 1/33

Tutorial on Basic Android Setup

Android Overview. Most of the material in this section comes from

ELET4133: Embedded Systems. Topic 3 Eclipse Tour & Building a First App

WELCOME Mobile Applications Testing. Copyright

Improving the bootup speed of AOSP

Design Center Release Notes

Clockworkmod Won't Boot Into Recovery Droid X2

OPS235: Week 1. Installing Linux ( Lab1: Investigations 1-4)

CS 326: Operating Systems. Lecture 1

Manual Android Htc Hd2 2.2 Froyo Roms Builds

User Guide. Android x86 Modified System. Sponsor: Huan Ren. Compiled by: Zachary Bair, Taronish Daruwalla, Joshua Duong, and Anthony Nguyen

How To Install Apps On Nook Color Using Adb

Install ADB on Windows

POWER WOLF SMART GLASSES

Quick Start Guide SBC21/NSD21/EC 21 SBC21 / EC21 / NSD21. Quick Start Guide. Copyright IC Nexus Corporation. All rights reserved

Data Management CS 4720 Mobile Application Development

Release Notes MC40 Android KK BSP v HotFix CFE v Package

Mac Os X Snow Leopard Virtualbox Image And Linux Host

Htc G1 User Guide One Xl 4g

Release Notes Zebra VC80x AndroidN Update005 based on NG-00-A Release for GMS

Copyright 2017 Samsung. All Rights Reserved. O-Hoon Kwon, Ph.D. Samsung Electronics

Matrix. Get Started Guide

Mobile development initiation

Release Notes - MC40 Android KK - BSP v HotFix CFE v00.03 Package

Lecture 3 Android Internals

Barracuda NG Firewall F400 Revision B

Contents 1. Introduction New Features Pre-installed Android Marshmallow Power Supply Monitor USB Keyboard

Mainline on form-factor devices / Improving AOSP

Flash Player Manually For Android Tablet 2.2 Gratis

Manual Android Galaxy S3 4.3 Feature List

Release Notes Zebra TC51, TC51-HC, TC70x, TC56 and TC75x Android N Update003 based on NG-00-A (GMS)

BQ Firmware Flash Tool 3.0. User Manual

Birds of a Feather Session - OSS Vancouver Eystein Stenberg, Mender.io

Embedded Android. Hands-On Exercises for. v

Galaxy S3 Mini Without Root

ZOTAC ZBOX. User s Manual

Android meets Docker. Jing Li

Wind River. All Rights Reserved.

Android App Development

Android Debugging and Performance Analysis

Tizen TCT User Guide

ROM FLASHING INSTRUCTIONS FOR ONEPLUS 3 / 3T

Rephone Core 2G-AtmelSAMD21

HiKey in AOSP - Update. John Stultz

DefDroid: Towards a More Defensive Mobile OS Against Disruptive App Behavior

Invest in the future, build for the web!

Cooking with Team 279

By: Robert E. Sult. For the best results consult SULT. 6/29/2016 KODI for Fire Stick

Creator Ci20 quick start guide

Spectralink PIVOT & Versity USB Driver V2.0.0

ZOTAC ZBOX. User s Manual

Usb Port On Manually Install Drivers Windows Xp Mode

Xperia User Manual X10 Mini Sony Ericsson Update Android 4.0.4

Eclipse Tutorial How To Write Java Program In Eclipse Step By Step Eclipse Tutorial For Beginners Java

IoT Project Proposals

HiSilicon STB Push-to-Talk Development Kit for Amazon AVS

Atlas iot. Installation guide V 1.0

IT-G400 Series. Android 6.0 Quick Start Guide. This document is a Development Guide Book for IT-G400 application developers. Ver 1.

Android for IVI Android for IVI: overcoming enormous boot time

SD Module- Android Programming

Transcription:

Customing Android: Looking inside the droids belly

Embedded Android Appliances

What do I mean by Appliances?

ap pli ance /əˈplīəns/ Noun A device designed to perform a specific task, typically a domestic one.

Digital Signage Appliances

Why Embedded Android?

Because... Open Source! Very rich platform & APIs Huge industry & community support Wide variety of devices...

Customisation

3 Levels

Levels 1. User 2. Root 3. Platform

1. User Level Customisation Things you can do Use the Home Intent

Home sweet home

<activity android:name=".myhomeactivity"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> <category android:name="android.intent.category.home"/> <category android:name="android.intent.category.default" /> </intent-filter> </activity>

mi casa es su casa

1. User Level Customisation Things you can do Use the Home Intent Use "public API" Intents (eg. Wifi config)

Intent intent = new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK); startactivityforresult(intent, 1);

Oops...

Hang on a sec...

What would Kirk do?

More Clichés...

packages/apps/settings/src/com/and roid/settings/wifi/wifisettings.java

Intent intent = new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK); intent.putextra("only_access_points", true); intent.putextra("extra_prefs_show_button_bar", true); intent.putextra("wifi_enable_next_on_connect", true); intent.putextra("extra_prefs_set_next_text", "Finish"); startactivityforresult(intent, 1);

Ta-Da!

2. Root Level Customisation No soup root for you!

2. Root Level Customisation Things you can do Call Privileged API s (eg. Reboot Device) Silent OTA app install/updates

Silent?

Xposed! Framework for writing modules to... Monkey-patch anything in the Android Java Framework code Modified /system/bin/app_process http://repo.xposed.info

3 OS-Level Customisation

A Trilogy in 4 parts 1. User 2. Root 3. OS -> Android Framework 4. OS -> Kernel

3. OS - Android Customisation Build Android OS yourself

AOSP and Building Android hundreds of git repos (>400) huge amounts of disk space req'd Ubuntu 12.04 + Oracle JDK >15min on a very fast machine (i7 Quad-core, 8GB, SSDs, hot ccache) and then you need to flash img & test on emu/device :-(

3. OS - Android Customisation Things you can do choose which apps to build/ship customise UI (eg. rm Systembar, Battery/Audio-Vol warnings) choose CPU platform (eg. x86 or MIPS instead of ARM) but wait theres more

3. OS - Android Customisation MORE Things you can do workaround bugs in hardware (eg. bad LCD EDID) control the platform - use your own signing certs

A tale of 2 bars (ICS) packages/systemui/src/com/android/systemui/statusbar/statu sbar.java public void start() { sb = makestatusbarview(); AND tablet/tabletstatusbar.java public void start() {... sb.setvisibility(view.gone);

JB & KK? Exercise for the reader Tip: GREP is your Friend

4. OS - Kernel device drivers, eg. custom touchscreens, wifi cards, etc specific hardware / optimisation, eg. run on RPi's!

X. Boss Level - Recovery/Bootloaders! CWM - Popular community recovery img Fastboot - open protocol for talking to bootloaders over usb (think adb for bootloaders )

Lights, Camera, Action!

Sensors Camera, Gyro, Accel, Compass Sonar, IR, Lidar, Temp

Outputs Lights Environment control (temperature)

Comms USB ADK Bluetooth (LE) Audio jack

USB You might want to get rid of this...

ADK "I put my thing down, flip it, and reverse it" - "Work It" (Missy Elliot)

Bluetooth LE Fix it! (lots of bugs in 4.3 and early 4.4 s) Advertise it! (API is coming in L release) Tone it down! (several lines on logcat output per LE event)

Audio Jack?!?!

Bonus UART!

But... Also don t want this...

References THE book! Also..

Image Credits digital signage examples-brightsideonews read the src luke" - Coding Horror Blog, Jeff Atwood "android welcome wizard" - geeksquad.co.uk audio jack dev board" - NXP "build lights - wikipedia" "audio volume warning" - android bug tracker "usb permissions dialog - phidgets" missy elliost cover - wikipedia nexus4-uart - hackaday

Thank You!

Questions? http://manichord.com github.com/maks @mklin https://plus.google.com/+maksimlin