My session at DroidCon Tel-Aviv, June 2014
In this tutorial, you will have a hands-on journey of building and customizing Android right off the Android Open Source Project (AOSP). We will begin with introducing the concepts of ROM cooking for any Android compatible device, and we we will then walk-through the build system of the AOSP. You will learn what Android is made of, how to build a bullet speed Android emulator, and how to build a minimal, fully operational Android configuration that will run on the QEMU virtual machine.
For Training/Consulting requests: info@thepscg.com
X86 ROM Cooking 101 (Android Builders Summit 2014)Ron Munitz
My session at the Android Builders Summit, April 2014, San Josa, CA
Video: https://www.youtube.com/watch?v=7iLeBD33Fo0
In this tutorial, you will have a hands-on journey of customizing and building Android right off the Android Open Source Project (AOSP).
We will begin with introducing the concepts of ROM cooking for any Android compatible device, and we we will then walk-through the build system of the AOSP. You will learn what Android is made of, how to build a bullet speed Android emulator, and how to build a minimal, fully operational Android configuration that will run on the QEMU virtual machine using the following components: Vanilla Android KitKat, Vanilla Linux Kernel, and a working QEMU. You will step out of the classroom with the ability to follow the exact steps made in the tutorial to jump-start building your own Android system for any Virtual Machine - and with the tools and knowledge to build it for any custom device!
For Training/Consulting requests: info@thepscg.com
Android ROM cooking: A practical Tutorial (DroidCon Torino 2014)Ron Munitz
My workshop at DroidCon, February 2014, Torino, Italy.
In this tutorial, you will have a hands-on journey of customizing and building Android right off the Android Open Source Project (AOSP). We will begin with introducing the concepts of ROM cooking for any Android compatible device, and we we will then walk-through the build system of the AOSP. You will learn what Android is made of, how to build a bullet speed Android emulator, and how to build a minimal, fully operational Android configuration that will run on the QEMU virtual machine. You will step out of the classroom with the ability to follow the exact steps made in the tutorial to jump-start building your own Android system for any Virtual Machine - and with the tools and knowledge to build it for any custom device! Note: The tutorial is extremely hands on. Although it is not a strict requirement, it is strongly recommended to come prepared with a setup of Linux or OS X with the source code for an Android platform from http://source.android.com
Viva l'Italia!
For Training/Consulting requests: info@thepscg.com
Mob modcon 2015-android rom cooking tutorialRon Munitz
This document provides an overview of Android ROM cooking and embedded build systems. It defines key terms like ROM, cross-compilation, and host/target systems. It discusses Android's partition layout and build system. It also provides a brief history of Android from 2002-2015 and statistics on platform versions and screen sizes/densities from Android developer dashboards.
Is Android the New Embedded Linux? at AnDevCon VOpersys inc.
The document discusses whether Android is becoming the new embedded Linux. It begins by outlining reasons for the question, such as Android being based on Linux, being used in embedded applications, and enjoying strong support from chip manufacturers. It then reviews the history of embedded Linux and the origins and licensing of Android. Key challenges for using Android in embedded applications are identified as documentation, customization limitations, long build times, and dependency on Google. Headless use without a graphical interface is also discussed as an option.
Brillo is Google's platform for IoT devices based on Android. It uses the Android framework and services model but removes components not needed for embedded/IoT devices. The source code is laid out with Brillo-specific directories at the top level and some projects moved from external. Key services include dbus, sensorservice, wpa_supplicant, and the new Weave networking component. Overall Brillo aims to provide a standardized development environment for IoT devices like Android does for smartphones.
Leveraging Android's Linux Heritage at Android Open 2011Opersys inc.
This document discusses leveraging Android's Linux heritage by allowing it to coexist and interact with traditional Linux systems. It outlines the goal of opening possibilities for integration. Key roadblocks like different filesystems, C libraries and IPC methods are described. Approaches proposed include building on top of AOSP, using embedded distros, or building a custom system. Coexistence could use a single filesystem, chroot jails, or virtualization. Unresolved areas include bridging Android and Linux components. A demo shows a client-server app using a glibc client and bionic server.
1. The document discusses tools for Android platform development and proposes a new architecture using Node.js, Express, and JavaScript for building lightweight monitoring tools.
2. It describes initial pain points such as looking up AIDL files and monitoring processes/filesystem, and demonstrates a tool called Raidl that returns AIDL interfaces.
3. The proposed architecture uses a Node.js backend with Express and a Backbone.js frontend, allowing tools to be built for process monitoring, file browsing, and analyzing Binder relationships between services.
The document provides an introduction and overview of Android, including:
- A brief history of Android's development from 2004 to the present.
- An overview of the Android ecosystem, key players, and the Open Handset Alliance.
- A discussion of Android's legal framework regarding code access, licenses, branding, and ongoing lawsuits.
- Requirements for Android platforms and hardware, including the Compliance Definition Document and Compatibility Test Suite.
- An introduction to tools for Android development, including requirements, app development tools, and debugging techniques.
X86 ROM Cooking 101 (Android Builders Summit 2014)Ron Munitz
My session at the Android Builders Summit, April 2014, San Josa, CA
Video: https://www.youtube.com/watch?v=7iLeBD33Fo0
In this tutorial, you will have a hands-on journey of customizing and building Android right off the Android Open Source Project (AOSP).
We will begin with introducing the concepts of ROM cooking for any Android compatible device, and we we will then walk-through the build system of the AOSP. You will learn what Android is made of, how to build a bullet speed Android emulator, and how to build a minimal, fully operational Android configuration that will run on the QEMU virtual machine using the following components: Vanilla Android KitKat, Vanilla Linux Kernel, and a working QEMU. You will step out of the classroom with the ability to follow the exact steps made in the tutorial to jump-start building your own Android system for any Virtual Machine - and with the tools and knowledge to build it for any custom device!
For Training/Consulting requests: info@thepscg.com
Android ROM cooking: A practical Tutorial (DroidCon Torino 2014)Ron Munitz
My workshop at DroidCon, February 2014, Torino, Italy.
In this tutorial, you will have a hands-on journey of customizing and building Android right off the Android Open Source Project (AOSP). We will begin with introducing the concepts of ROM cooking for any Android compatible device, and we we will then walk-through the build system of the AOSP. You will learn what Android is made of, how to build a bullet speed Android emulator, and how to build a minimal, fully operational Android configuration that will run on the QEMU virtual machine. You will step out of the classroom with the ability to follow the exact steps made in the tutorial to jump-start building your own Android system for any Virtual Machine - and with the tools and knowledge to build it for any custom device! Note: The tutorial is extremely hands on. Although it is not a strict requirement, it is strongly recommended to come prepared with a setup of Linux or OS X with the source code for an Android platform from http://source.android.com
Viva l'Italia!
For Training/Consulting requests: info@thepscg.com
Mob modcon 2015-android rom cooking tutorialRon Munitz
This document provides an overview of Android ROM cooking and embedded build systems. It defines key terms like ROM, cross-compilation, and host/target systems. It discusses Android's partition layout and build system. It also provides a brief history of Android from 2002-2015 and statistics on platform versions and screen sizes/densities from Android developer dashboards.
Is Android the New Embedded Linux? at AnDevCon VOpersys inc.
The document discusses whether Android is becoming the new embedded Linux. It begins by outlining reasons for the question, such as Android being based on Linux, being used in embedded applications, and enjoying strong support from chip manufacturers. It then reviews the history of embedded Linux and the origins and licensing of Android. Key challenges for using Android in embedded applications are identified as documentation, customization limitations, long build times, and dependency on Google. Headless use without a graphical interface is also discussed as an option.
Brillo is Google's platform for IoT devices based on Android. It uses the Android framework and services model but removes components not needed for embedded/IoT devices. The source code is laid out with Brillo-specific directories at the top level and some projects moved from external. Key services include dbus, sensorservice, wpa_supplicant, and the new Weave networking component. Overall Brillo aims to provide a standardized development environment for IoT devices like Android does for smartphones.
Leveraging Android's Linux Heritage at Android Open 2011Opersys inc.
This document discusses leveraging Android's Linux heritage by allowing it to coexist and interact with traditional Linux systems. It outlines the goal of opening possibilities for integration. Key roadblocks like different filesystems, C libraries and IPC methods are described. Approaches proposed include building on top of AOSP, using embedded distros, or building a custom system. Coexistence could use a single filesystem, chroot jails, or virtualization. Unresolved areas include bridging Android and Linux components. A demo shows a client-server app using a glibc client and bionic server.
1. The document discusses tools for Android platform development and proposes a new architecture using Node.js, Express, and JavaScript for building lightweight monitoring tools.
2. It describes initial pain points such as looking up AIDL files and monitoring processes/filesystem, and demonstrates a tool called Raidl that returns AIDL interfaces.
3. The proposed architecture uses a Node.js backend with Express and a Backbone.js frontend, allowing tools to be built for process monitoring, file browsing, and analyzing Binder relationships between services.
The document provides an introduction and overview of Android, including:
- A brief history of Android's development from 2004 to the present.
- An overview of the Android ecosystem, key players, and the Open Handset Alliance.
- A discussion of Android's legal framework regarding code access, licenses, branding, and ongoing lawsuits.
- Requirements for Android platforms and hardware, including the Compliance Definition Document and Compatibility Test Suite.
- An introduction to tools for Android development, including requirements, app development tools, and debugging techniques.
Embedded Android workshop covers topics on introducing Android including its basics, history, ecosystem, legal framework, platform requirements, and development tools. The document provides an overview of Android concepts like components, intents, and lifecycles, and discusses the Android framework which includes the UI, data storage, security and permissions. It also introduces native development on Android and key Android internals such as Dalvik, JNI, system services, and the Binder IPC mechanism.
Slides for my presentation on RISC-V and open source chip design at PumpingStation1 hackerspace tonight https://github.com/pdp7/talks/blob/master/nerp-riscv.pdf
This document outlines an embedded Android workshop for the BeagleBoard. It includes an agenda that covers the goals of gaining hands-on experience with an embedded Android device. The bill of materials lists the needed hardware. Modifications made for support are summarized. Issues encountered are also summarized. Exercises are outlined to build the sources, program an SD card, boot the device, connect over serial, and compile code. Potential gotchas and tricks are provided.
Embedded Android Workshop with MarshmallowOpersys inc.
The document provides an overview of embedded Android, including:
- Features of Android such as the application framework, Dalvik VM, browser, graphics library, SQLite, media support, Bluetooth, and hardware dependent components.
- A brief history of Android from its origins at Danger Inc. to being acquired by Google and the various releases from 2008 to the present.
- Details about the Android ecosystem including its large user base, number of apps, and companies involved in its development and on devices.
- The legal framework around Android including code access, licenses, branding, Google's apps, alternative app stores, and the Oracle vs Google lawsuit.
- Platform and hardware requirements for running Android, including the
This document provides an overview of memory management in Android. It discusses the kernel's role in managing physical memory and virtual address spaces. It covers key kernel interfaces like memory-mapped registers and DMA. It also discusses low-memory conditions and tools for analyzing memory usage at the kernel, native, and app levels, including procfs, dumpsys, and DDMS. The document recommends strategies for app developers to measure and reduce memory consumption.
Embedded Android Workshop at Android Open 2011Opersys inc.
This document provides an overview of embedded Android. It discusses the basics of Android including features, user experience concepts, and app concepts. It covers the history and ecosystem of Android. It also describes the legal framework, platform requirements, and development tools for Android. Key topics include components, intents, permissions, and the application framework.
Android Hacks, Variants, Tricks and Resources ESC SV 2012Opersys inc.
The document provides an overview and agenda for a presentation on hacking and customizing Android. It discusses Android's limitations and closed development model. It then covers various ways to tear apart and modify Android, including forks, ports, mods, and melding Android with a classic Linux stack. It addresses challenges with melding Android and Linux and provides examples of work that has already been done in this area.
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)Ron Munitz
My session in AnDevcon, November 2011, Burlingame, CA.
In the cloud era, most software projects have shifted from asking "What hardware architecture should be chosen for my back-end?" to "Which cloud configuration should be used for my back-end?" Bringing up a cloud server has become an obvious choice for any Linux or Windows-based deployment. As Android emerges as the new Embedded Linux for a growing number of industries, it only makes sense to consider its cloud application as a server.
In this class, we will discuss why and how Android can be brought on the cloud system, and on any cloud infrastructure, using AWS (Amazon Web Services) as an example.
LEVEL: Intermediate
AUDIENCE: Developer Essentials
For Training/Consulting requests: info@thepscg.com
This document summarizes the history and evolution of Android for embedded and IoT devices, including:
1) Early embedded Linux systems had no consistent development environment or APIs. Android provided a standardized environment but was initially not designed for embedded.
2) Headless Android and later Brillo were Google's first attempts at an Android variant for IoT. Brillo sources were available but never officially released.
3) Android Things is Google's current strategy, building on the original Android architecture but extending the APIs for IoT and supporting constrained hardware. It allows using existing Android development tools for IoT apps and devices.
Headless Android allows running the full Android system stack without any graphical user interface elements. This is done by disabling SurfaceFlinger, WindowManager and other UI services. The result is a smaller memory footprint but full access to Android services, APIs, and development tools. Key changes include tweaking internal calls to disable expectations of a graphical environment and starting components with 'am' instead of activities. This produces a streamlined Android configuration for embedded and automation use cases.
Embedded Android Workshop part I ESC SV 2012Opersys inc.
This document provides an overview and agenda for an embedded Android workshop. It includes a list of required materials and software that will be used. The workshop will cover setting up an Android development environment on a BeagleBone Black embedded board using software downloaded to a USB drive.
Leveraging Android's Linux Heritage at AnDevCon3Opersys inc.
This document discusses leveraging the Linux heritage in Android. It begins with an overview of Android concepts like components, intents, and manifest files. It then compares the overall architecture of a traditional Linux system to Android. Several roadblocks to integration are identified, such as differences in filesystem structure and IPC mechanisms. Potential approaches for coexistence are outlined, such as using a single filesystem or virtualization. Finally, ongoing work and unresolved challenges are acknowledged, such as implementing intents on Linux or running X applications within Android.
This document provides an overview of Project Ara, which aims to redefine smartphone hardware and Android architecture through modular, customizable devices. It discusses the origins and goals of Project Ara, including influences from DARPA, Phonebloks concept, and other modular devices. The document also outlines the envisioned module ecosystem, key technologies like capacitive connectors and the endoskeleton frame, the planned hardware and software architectures, and remaining challenges for Project Ara.
1) UEFI Secure Boot is a security feature of the UEFI specification that verifies bootloaders and operating systems are signed with approved cryptographic keys to ensure integrity.
2) Linux distributions have several options for working with UEFI Secure Boot, including using a setup mode, replacing the default cryptographic keys, or using a Microsoft-signed bootloader.
3) While UEFI Secure Boot initially posed challenges for Linux, projects are working to sign Linux bootloaders so they are verified by Secure Boot, enabling Linux to be installed on most new computers while maintaining security.
This document discusses leveraging Android's Linux heritage by exploring ways for Linux and Android to coexist and interact. It outlines some of the key differences between the Android and Linux stacks that pose roadblocks, such as the filesystem, C library, IPC mechanisms, and display management. Potential approaches for coexistence discussed include using a single filesystem, chroot jails, virtualization, and bridges between components like intents and DBus. The document concludes with demos of running BusyBox in Android and a client-server app communicating via sockets between the different stacks.
Nim programming language - DevFest Berlin 2019Fred Heath
Fred evaluated several programming languages for a new project based on requirements of safety, portability, performance, expressiveness and elegance. The top candidates were Rust, Go and Nim. Nim is a multi-paradigm language created in 2005 with a focus on portability across operating systems and CPUs. It uses a garbage collector for memory management and supports features like generics, metaprogramming and concurrency.
This document provides an overview and introduction to embedded Android. It discusses the basics of Android including features, UX concepts and app concepts. It then covers the history and evolution of Android from its origins at Danger Inc. to being acquired by Google. The document outlines the Android ecosystem including key players and the Open Handset Alliance. It reviews the legal framework around Android including code access, licenses and branding. Finally, it covers platform and hardware requirements, development tools and provides an introduction to key Android concepts and internals.
Embedded Android Workshop with LollipopOpersys inc.
Embedded Android workshops teach developers about customizing Android for embedded devices. Key topics covered include Android's open source ecosystem, legal framework for commercial use, hardware requirements for compliance, and development tools. The introductory session provides an overview of Android's features and history, as well as the roles of major companies in its development.
Embedded Android Workshop at ELC EuropeOpersys inc.
The document provides an overview of embedded Android for developers. It discusses the basics of Android including features, user experience concepts, and application concepts. It then covers the history and evolution of Android, the Android ecosystem and players involved, and the legal framework for developing Android applications and devices. The document concludes by discussing the tools, platform, and hardware requirements for embedded Android development.
The document describes an advertising opportunity within the Uptown 360 Experience media platform, which includes a magazine, mobile app, and events, to reach affluent African American consumers. The platform targets this influential demographic that spends heavily on technology. Advertisers can sponsor the Uptown iPhone app through banner ads or integrated custom sections to promote their brand.
Skapa eller söka jobb som talare, speaker, föredragshållare genom sociala medierHolger Wastlund
Skapa eller söka jobb som talare, speaker, föredragshållare genom sociala medier Följ de företag som du är intresserad av på LinkedIn och på Facebook Det kan vara det specifika företagets sidor, grupper som företaget driver eller är engagerat i eller aktuella artiklar som du hittar Följ även de branschorganisationer där det intressanta företaget ingår http://tips-om.seHolgerWästlund
Embedded Android workshop covers topics on introducing Android including its basics, history, ecosystem, legal framework, platform requirements, and development tools. The document provides an overview of Android concepts like components, intents, and lifecycles, and discusses the Android framework which includes the UI, data storage, security and permissions. It also introduces native development on Android and key Android internals such as Dalvik, JNI, system services, and the Binder IPC mechanism.
Slides for my presentation on RISC-V and open source chip design at PumpingStation1 hackerspace tonight https://github.com/pdp7/talks/blob/master/nerp-riscv.pdf
This document outlines an embedded Android workshop for the BeagleBoard. It includes an agenda that covers the goals of gaining hands-on experience with an embedded Android device. The bill of materials lists the needed hardware. Modifications made for support are summarized. Issues encountered are also summarized. Exercises are outlined to build the sources, program an SD card, boot the device, connect over serial, and compile code. Potential gotchas and tricks are provided.
Embedded Android Workshop with MarshmallowOpersys inc.
The document provides an overview of embedded Android, including:
- Features of Android such as the application framework, Dalvik VM, browser, graphics library, SQLite, media support, Bluetooth, and hardware dependent components.
- A brief history of Android from its origins at Danger Inc. to being acquired by Google and the various releases from 2008 to the present.
- Details about the Android ecosystem including its large user base, number of apps, and companies involved in its development and on devices.
- The legal framework around Android including code access, licenses, branding, Google's apps, alternative app stores, and the Oracle vs Google lawsuit.
- Platform and hardware requirements for running Android, including the
This document provides an overview of memory management in Android. It discusses the kernel's role in managing physical memory and virtual address spaces. It covers key kernel interfaces like memory-mapped registers and DMA. It also discusses low-memory conditions and tools for analyzing memory usage at the kernel, native, and app levels, including procfs, dumpsys, and DDMS. The document recommends strategies for app developers to measure and reduce memory consumption.
Embedded Android Workshop at Android Open 2011Opersys inc.
This document provides an overview of embedded Android. It discusses the basics of Android including features, user experience concepts, and app concepts. It covers the history and ecosystem of Android. It also describes the legal framework, platform requirements, and development tools for Android. Key topics include components, intents, permissions, and the application framework.
Android Hacks, Variants, Tricks and Resources ESC SV 2012Opersys inc.
The document provides an overview and agenda for a presentation on hacking and customizing Android. It discusses Android's limitations and closed development model. It then covers various ways to tear apart and modify Android, including forks, ports, mods, and melding Android with a classic Linux stack. It addresses challenges with melding Android and Linux and provides examples of work that has already been done in this area.
Android As a Server- Building Android for the Cloud (AnDevCon SF 2013)Ron Munitz
My session in AnDevcon, November 2011, Burlingame, CA.
In the cloud era, most software projects have shifted from asking "What hardware architecture should be chosen for my back-end?" to "Which cloud configuration should be used for my back-end?" Bringing up a cloud server has become an obvious choice for any Linux or Windows-based deployment. As Android emerges as the new Embedded Linux for a growing number of industries, it only makes sense to consider its cloud application as a server.
In this class, we will discuss why and how Android can be brought on the cloud system, and on any cloud infrastructure, using AWS (Amazon Web Services) as an example.
LEVEL: Intermediate
AUDIENCE: Developer Essentials
For Training/Consulting requests: info@thepscg.com
This document summarizes the history and evolution of Android for embedded and IoT devices, including:
1) Early embedded Linux systems had no consistent development environment or APIs. Android provided a standardized environment but was initially not designed for embedded.
2) Headless Android and later Brillo were Google's first attempts at an Android variant for IoT. Brillo sources were available but never officially released.
3) Android Things is Google's current strategy, building on the original Android architecture but extending the APIs for IoT and supporting constrained hardware. It allows using existing Android development tools for IoT apps and devices.
Headless Android allows running the full Android system stack without any graphical user interface elements. This is done by disabling SurfaceFlinger, WindowManager and other UI services. The result is a smaller memory footprint but full access to Android services, APIs, and development tools. Key changes include tweaking internal calls to disable expectations of a graphical environment and starting components with 'am' instead of activities. This produces a streamlined Android configuration for embedded and automation use cases.
Embedded Android Workshop part I ESC SV 2012Opersys inc.
This document provides an overview and agenda for an embedded Android workshop. It includes a list of required materials and software that will be used. The workshop will cover setting up an Android development environment on a BeagleBone Black embedded board using software downloaded to a USB drive.
Leveraging Android's Linux Heritage at AnDevCon3Opersys inc.
This document discusses leveraging the Linux heritage in Android. It begins with an overview of Android concepts like components, intents, and manifest files. It then compares the overall architecture of a traditional Linux system to Android. Several roadblocks to integration are identified, such as differences in filesystem structure and IPC mechanisms. Potential approaches for coexistence are outlined, such as using a single filesystem or virtualization. Finally, ongoing work and unresolved challenges are acknowledged, such as implementing intents on Linux or running X applications within Android.
This document provides an overview of Project Ara, which aims to redefine smartphone hardware and Android architecture through modular, customizable devices. It discusses the origins and goals of Project Ara, including influences from DARPA, Phonebloks concept, and other modular devices. The document also outlines the envisioned module ecosystem, key technologies like capacitive connectors and the endoskeleton frame, the planned hardware and software architectures, and remaining challenges for Project Ara.
1) UEFI Secure Boot is a security feature of the UEFI specification that verifies bootloaders and operating systems are signed with approved cryptographic keys to ensure integrity.
2) Linux distributions have several options for working with UEFI Secure Boot, including using a setup mode, replacing the default cryptographic keys, or using a Microsoft-signed bootloader.
3) While UEFI Secure Boot initially posed challenges for Linux, projects are working to sign Linux bootloaders so they are verified by Secure Boot, enabling Linux to be installed on most new computers while maintaining security.
This document discusses leveraging Android's Linux heritage by exploring ways for Linux and Android to coexist and interact. It outlines some of the key differences between the Android and Linux stacks that pose roadblocks, such as the filesystem, C library, IPC mechanisms, and display management. Potential approaches for coexistence discussed include using a single filesystem, chroot jails, virtualization, and bridges between components like intents and DBus. The document concludes with demos of running BusyBox in Android and a client-server app communicating via sockets between the different stacks.
Nim programming language - DevFest Berlin 2019Fred Heath
Fred evaluated several programming languages for a new project based on requirements of safety, portability, performance, expressiveness and elegance. The top candidates were Rust, Go and Nim. Nim is a multi-paradigm language created in 2005 with a focus on portability across operating systems and CPUs. It uses a garbage collector for memory management and supports features like generics, metaprogramming and concurrency.
This document provides an overview and introduction to embedded Android. It discusses the basics of Android including features, UX concepts and app concepts. It then covers the history and evolution of Android from its origins at Danger Inc. to being acquired by Google. The document outlines the Android ecosystem including key players and the Open Handset Alliance. It reviews the legal framework around Android including code access, licenses and branding. Finally, it covers platform and hardware requirements, development tools and provides an introduction to key Android concepts and internals.
Embedded Android Workshop with LollipopOpersys inc.
Embedded Android workshops teach developers about customizing Android for embedded devices. Key topics covered include Android's open source ecosystem, legal framework for commercial use, hardware requirements for compliance, and development tools. The introductory session provides an overview of Android's features and history, as well as the roles of major companies in its development.
Embedded Android Workshop at ELC EuropeOpersys inc.
The document provides an overview of embedded Android for developers. It discusses the basics of Android including features, user experience concepts, and application concepts. It then covers the history and evolution of Android, the Android ecosystem and players involved, and the legal framework for developing Android applications and devices. The document concludes by discussing the tools, platform, and hardware requirements for embedded Android development.
The document describes an advertising opportunity within the Uptown 360 Experience media platform, which includes a magazine, mobile app, and events, to reach affluent African American consumers. The platform targets this influential demographic that spends heavily on technology. Advertisers can sponsor the Uptown iPhone app through banner ads or integrated custom sections to promote their brand.
Skapa eller söka jobb som talare, speaker, föredragshållare genom sociala medierHolger Wastlund
Skapa eller söka jobb som talare, speaker, föredragshållare genom sociala medier Följ de företag som du är intresserad av på LinkedIn och på Facebook Det kan vara det specifika företagets sidor, grupper som företaget driver eller är engagerat i eller aktuella artiklar som du hittar Följ även de branschorganisationer där det intressanta företaget ingår http://tips-om.seHolgerWästlund
Este documento resume las lecciones aprendidas en una clase de Informática y Convergencia Tecnológica. La clase cubrió temas como la introducción a la informática, el uso de Word y sus herramientas, normas de documentación, presentaciones en PowerPoint y Prezi, comparación de programas de presentación, publicación en línea, navegadores versus buscadores. Los estudiantes realizaron prácticas y exposiciones sobre estos temas.
Konsultan Lingkungan (WTP, WWTP, IPAL , Demin, RO, EDI, Ozone, UV) -- FUJIKAS...ajiangkasa
Perusahaan konsultan lingkungan PT. Fujikasui Engineering Indonesia menawarkan jasa konsultan untuk Instalasi Pengolahan Air Limbah (IPAL) dan Instalasi Pengolahan Air Bersih (WTP) dengan harga terjangkau dan berpengalaman terbukti.
This document provides contact information for obtaining test banks and solution manuals for academic textbooks. It lists over 100 textbook titles and editions along with the materials available, such as test banks, solution manuals, instructor manuals, and case solutions. Potential customers are instructed to email the listed address to inquire about acquiring the materials for various accounting, finance, economics and other business textbooks.
Presentatie van Gerard Abbink (Productmanager Veehouderij) tijdens de Expertdagen 2013 'Omdat de bodem de baas is'.
Bodems met een hoge bodemvruchtbaarheid maken een goede benutting van nutriënten mogelijk. De bodem bepaalt daarom als dé belangrijkste schakel de efficiëntie op een bedrijf. En er zijn belangrijke ontwikkelingen: de overheid en de sector sturen aan op onttrekkingsgerichte bemestingsnormen. Dit betekent dat bodemvruchtbaarheid meer dan ooit het resultaat en de ruimte van de ondernemer gaan beïnvloeden!
ROM Cooking: A Hands-on, "Do it at Home" Approach (Wearable DevCon 2014)Ron Munitz
My ROM cooking session in Wearable DevCon 2014, Burlingame, CA.
[Note: now the conference is called "Wearable Tech Con" ]
This two hour tutorial was mostly aimed towards building Wearable Android devices. The talk was carried out before the announcement of Android wear. I did predict something like this coming up back then... And it was not late to follow
[ See G+ post at https://plus.google.com/100590449141172132889/posts/aruDZADmPCD
*Note: I am not active on that Google+ account. If you want to follow me please use https://google.com/+RonMunitz ]
Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...Ron Munitz
Part of my half day tutorial on AnDevcon, November 2013, Burlingame, CA.
In this tutorial, you will have a hands-on journey of customizing and building Android for any X86-based device. We will first introduce the concepts of Android ROM cooking for any device and architecture. You will learn what Android is made of, and will build a minimal Android configuration that will run on a Virtual Machine, using the AOSP project. We will then survey the build systems of Android-X86 and 01.org's Android-IA projects, and find our ways through customizing those projects for arbitrary needs.
You will step out of the classroom with the ability to follow the exact steps made in the tutorial to jump-start building your own Android system for any Virtual Machine - and with the tools and knowledge to build it for any X86 hardware!
Note: The tutorial is extremely hands on. Although it is not a strict requirement, it is strongly recommended to come prepared with a setup of Linux or OS X with the source code for an Android platform from either source.developer.andorid.com {http://source.developer.andorid.com/}, android-x86.org {http://www.android-x86.org/} or 01.org {https://01.org/}.
LEVEL: Advanced
AUDIENCE: Embedded Android
For Training/Consulting requests: info@thepscg.com
Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)Ron Munitz
My session in the Mobile World Congress WIPJam, Barcelona 2014.
In the cloud era, most software projects have shifted from asking "What hardware architecture should be chosen for my backend?" to "Which cloud configuration should be used for my backend?" Bringing up a cloud server has become an obvious choice for any Linux- or Windows-based deployment. As Android emerges as the new Embedded Linux for a growing number of industries, it only makes sense to consider its cloud application as a server. This session will discuss why and how Android can be brought on the cloud system, and on any cloud infrastructure, using AWS (Amazon Web Services) as an example.
Ron Munitz is an expert in embedded systems and distributed fault tolerant systems. He discusses the history and evolution of embedded systems from mechanical computers in the 1940s to today's "Internet of Things". Embedded operating systems have progressed from dedicated hardware/software to using general purpose operating systems like Android. Headless or display-less devices can customize Android to save resources by removing UI components. The talk will cover embedded software development, Android's initialization process, and configuring Android for headless devices.
Is Android the New Embedded Linux? at AnDevCon VIOpersys inc.
This document discusses whether Android is becoming the new embedded Linux. It begins by outlining the similarities between Android and embedded Linux, as Android is based on Linux and often used in embedded systems. It then reviews the history and rise of embedded Linux. The document examines the origins and development of Android at Google. Key differences between embedded Linux and Android are identified, such as Android having standardized developer tools and APIs. Challenges for using Android in embedded systems are presented, like limited documentation and customization options. The talk concludes by considering future trends, like Google's Nexus Q using Android headlessly.
Is Android the New King of Embedded OSes at Embedded World 2014Opersys inc.
This document discusses whether Android is becoming the new dominant operating system for embedded devices. It begins by outlining the rise of embedded Linux and current consumer trends towards touch-based mobile devices. It then reviews the history and development of Android, including its origins at Android Inc. and acquisition by Google. The document examines the differences between embedded Linux and Android, particularly Android's integrated development environment, standardized APIs and large developer community. It concludes by considering Android's potential challenges for embedded use, such as documentation, stack customization, long boot times and dependency on Google.
Android on Intel Architecture: ROM Cooking TutorialRon Munitz
My half day tutorial on AnDevcon, November 2013, Burlingame, CA.
In this tutorial, you will have a hands-on journey of customizing and building Android for any X86-based device. We will first introduce the concepts of Android ROM cooking for any device and architecture. You will learn what Android is made of, and will build a minimal Android configuration that will run on a Virtual Machine, using the AOSP project. We will then survey the build systems of Android-X86 and 01.org's Android-IA projects, and find our ways through customizing those projects for arbitrary needs.
You will step out of the classroom with the ability to follow the exact steps made in the tutorial to jump-start building your own Android system for any Virtual Machine - and with the tools and knowledge to build it for any X86 hardware!
Note: The tutorial is extremely hands on. Although it is not a strict requirement, it is strongly recommended to come prepared with a setup of Linux or OS X with the source code for an Android platform from either source.developer.andorid.com {http://source.developer.andorid.com/}, android-x86.org {http://www.android-x86.org/} or 01.org {https://01.org/}.
LEVEL: Advanced
AUDIENCE: Embedded Android
For Training/Consulting requests: info@thepscg.com
Embedded Android Workshop with Nougat
The document provides an overview of an embedded Android workshop on Nougat. It discusses key Android concepts like components, intents and manifest files. It also covers Android's history and ecosystem, the open source code and licenses, hardware requirements for running Android, and development tools. The workshop aims to help attendees learn about features, internals, and development for embedded Android systems.
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)Ron Munitz
My session at AnDevCon, May 2014, Boston, MA
In the cloud era, most software projects have shifted from asking "What hardware architecture should be chosen for my back-end?" to "Which cloud configuration should be used for my back-end?" Bringing up a cloud server has become an obvious choice for any Linux or Windows-based deployment. As Android emerges as the new Embedded Linux for a growing number of industries, it only makes sense to consider its cloud application as a server.
In this class, we will discuss why and how Android can be brought on the cloud system, and on any cloud infrastructure, using AWS (Amazon Web Services) as an example.
LEVEL: Intermediate
AUDIENCE: Developer Essentials
For Training/Consulting requests: info@thepscg.com
Le développement des solutions embarquées et IoT grand public met en évidence un choix de systèmes d’exploitation dérivés de GNU/Linux (utilisant Yocto, Buildroot ou plus rarement des distributions classiques type Debian en utilisant des outils comme ELBE). Le système d’exploitation Android de Google (également basé sur un noyau Linux) est très présent sur ces domaines (décodeurs TV, multimédia, bornes interactives, applications d’infotainment dans l’automobile - Android Auto et Android Automotive OS). Durant cette conférence nous décrirons les avantages et les inconvénients de chaque solution (GNU/Linux ou Android) en fonction du projet envisagé et ce sur plusieurs critères :
- domaines d’application
- architecture et difficultés techniques
- outils de développement disponibles
- prise en compte de la sécurité
- gestion des licences
- contraintes commerciales (coût, certification/compatibilité)
- écosystème
- pérennité et tendances
A l'issue de la conférence nous tenterons de fournir un comparatif synthétique afin d'aider l'auditeur dans son choix.
Embedded Android provides concise summaries of key concepts in 3 sentences or less:
1. Android is an open source operating system used widely in mobile devices. It is based on the Linux kernel and features an application framework for reuse and replacement of components.
2. The Android ecosystem involves many players including Google, hardware manufacturers, mobile operators, and app developers. Over 850,000 apps are available in the Android Market and Google Play store.
3. Android device requirements include compliance with the Compatibility Definition Document for software and hardware compatibility, as well as passing the Compatibility Test Suite for certification. Development tools include the Android SDK, emulator, and debugging tools.
Embedded Android Workshop with MarshmallowOpersys inc.
The document provides an overview of embedded Android, including its features, history, ecosystem, legal framework, platform requirements, and development tools. It discusses Android's application framework, virtual machine, integrated browser, graphics library, SQLite database, media support, telephony, Bluetooth, WiFi, camera, GPS, and development environment. It also covers Android's history and releases from 2008 to 2016, the Open Handset Alliance members, code access policies, licenses, branding rules, Google's apps, alternative app stores, and the Oracle v. Google lawsuit.
Is Android the New Embedded Linux? at AnDevCon IVOpersys inc.
The document discusses the rise of Android and how it relates to embedded Linux. It notes that Android was started by Andy Rubin after leaving Danger Inc. and was later acquired by Google. Android uses the Linux kernel but has a different set of licenses for its userspace components compared to embedded Linux. The document outlines key differences between traditional embedded Linux systems and Android, such as standardized development environments and published APIs in Android. It also discusses current trends in embedded systems and consumer electronics that have driven adoption of Android in these areas.
Embedded Android Workshop with MarshmallowKarim Yaghmour
Embedded Android workshops provide concise summaries of technical documents in 3 sentences or less. The summarized document discusses the history and evolution of Android, the key features of embedded Android platforms, and an overview of the Android architecture and development process. It covers topics such as the Android ecosystem, legal framework, hardware requirements, and concepts including components, intents, and the component lifecycle.
Embedded Android Workshop with MarshmallowOpersys inc.
Embedded Android provides concise information about Android for embedded systems:
It discusses key Android features, a brief history of Android's development, and the ecosystem of companies involved. It also covers the legal framework for using Android, including code access, licenses, branding, and Google's apps. Platform and hardware requirements are outlined, including the Compatibility Definition Document and Test Suite. An overview of core Android concepts such as components, intents, and the manifest is also provided.
Embedded Android Workshop at Embedded World 2014Opersys inc.
The document provides an overview of embedded Android, including its basics, history, ecosystem, legal framework, platform requirements, and development tools. It discusses Android concepts like components, intents, and component lifecycles. It also summarizes the overall architecture, system startup process, and key development tools.
The document provides an overview of embedded Android, including its basics, history, ecosystem, legal framework, development tools, and system architecture. It summarizes key concepts such as components, intents, lifecycles and processes. It also outlines the main stages of the Android system startup process.
This document summarizes a presentation about hacking Linux on Android devices. It discusses installing Linux distributions on Android using chroot applications, rooting Android devices, and running x86 emulators on Android. Some key points:
1) Linux distributions like Debian, Ubuntu, and Fedora can be installed in a chroot environment on Android using applications like Debian Noroot, Debian Kit, and Complete Linux. This allows running desktop applications but has storage limitations.
2) Rooting Android devices unlocks more capabilities but voids warranties. Tools like Nexus Root Toolkit make rooting Nexus devices easy.
3) Emulators like Qemu, DOSBox, and Exagear allow running x86 operating systems
Android is beginning to take off as an embedded operating system alongside Windows Embedded and traditional embedded Linux. What are the motivations for using Android? What are the potential problems? This presentation addresses these points, with use-cases based on real-world applications of Embedded Android
Embedded Android Workshop slides were presented under a Creative Commons license. The slides introduced Android basics like features, user experience concepts, and app concepts. It provided a history of Android's development from 2002-2014. It described the Android ecosystem including major players and the Open Handset Alliance. It covered the legal framework around code access, licenses, branding, and the Oracle v. Google lawsuit. It discussed platform and hardware requirements including the Compatibility Definition Document and Test Suite. It concluded with an overview of development tools for app development and debugging.
Similar to Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014) (20)
Building a Raspberry Pi Robot with Dot NET 8, Blazor and SignalR - Slides Onl...Peter Gallagher
In this session delivered at Leeds IoT, I talk about how you can control a 3D printed Robot Arm with a Raspberry Pi, .NET 8, Blazor and SignalR.
I also show how you can use a Unity app on an Meta Quest 3 to control the arm VR too.
You can find the GitHub repo and workshop instructions here;
https://bit.ly/dotnetrobotgithub
Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)
1. Android ROM cooking 101:
A practical tutorial
Ron Munitz
Founder & CEO @thePSCG
ron@thePSCG.com
ron@android-x86.org
https://github.com/ronubo/
DroidCon TLV
June 2014
@ronubo
PSCG
3. Agenda
● Introduction
○ You, Me, Android
● Introduction to Embedded Systems
○ Embedded Systems
○ Android Partition Layout
● Android X86 projects
○ Virtual Machine discussion
○ The Init sequence
○ Multi Booting
● The Android Build System
○ Building an AOSP ROM from scratch
PSCG
5. about://Ron Munitz
● Founder and CEO of the PSCG
○ The Premium Embedded/Android consulting and Training firm
● Founder and CTO of Nubo
○ The first Remote Android Workspace
● Lecturer at Afeka College of Engineering
● Lecturer at New Circle
● Always up for something new
● Building up on diverse engineering experience:
○ Distributed Fault Tolerant Avionic Systems
○ Highly distributed video routers
○ Real Time, Embedded, Server bringups
○ Operating Systems, very esoteric libraries, 0’s, 1’s and lots of them.
■ Linux, Android ,VxWorks, Windows, iOS, devices, BSPs, DSPs,...
● Always willing to learn. Always willing to Teach
PSCG
6. ● 2002 - SideKick by Danger Inc. - The first “Internet Phone”.
○ Technical session at Stanford by Andy Rubin, CEO of Danger Inc.
○ Google’s Brin & Page attend, and soon become Sidekick users.
○ Sidekick fails to achieve commercial success
● 2003 - Andy Rubin forms “Android”, targeted at operating mobile phones
and cameras
● 2005 - Google Acquires “Android”.
● 2007 - The Open Handset Alliance is formed
○ November 5th - The OHA Announces Android, an open source
mobile phone platform based on the linux kernel
○ November 12th - Google Announces the Android SDK, along with a
$10 million Android developer challenge
Android History (2002-2007)
PSCG
7. ● 2008 - T-mobile and Google announce the first Android phone - the G1
○ AKA. The HTC “Dream”
○ Approved by the FCC on August 18th 2008
○ First available - October 22nd
● 2009 - Motorola Droid is announced, running Android 2.0
○ Considered by many as the opening note for the smartphone wars.
○ Added at least two exclusive features:
■ Hardware keyboard
■ Replaceable battery
Android History (2008-2009)
PSCG
8. ● 2010 was an exciting year for Android:
○ Google Announces its first flagship device - the Nexus One
■ Which is one of the best phones I have ever had.
○ Samsung sets a giant’s foot on the battlefield
■ Galaxy S and its variants hit the market
○ HTC’s EVO4G hits the market
■ Was widely considered as the best iPhone alternative at that time
○ Android’s market share first passes the iPhone’s market share
○ Google announces the Gingerbread (2.3) Android version, debuting
on the Nexus S.
■ Introducing the most popular Android version until the end of 2013
■ Introducing NFC and SIP
Android History (2010)
PSCG
9. ● 2011 - Honeycomb (3.0), google’s first aim at the tablet market is out
○ Android’s market share first passes the Blackberry’s market share
○ November 2011 - Ice Scream Sandwich is out, debutting on the
Galaxy Nexus
● 2012 - JellyBean is released
○ Introducing significant enhancement in user experience (Project
butter)
○ Introducing multi user for tablets
○ Samsung confidently ranks as the top Android phone maker on earth
● 2013 - More devices, more market share,
○ Android 4.3 is out: Enhanced WiFi-Display, Open GL ES 3.0,...
○ Android 4.4 (KitKat) is out: First time a commercial brand hits Android,
better memory utilization, enhanced security, in-platform PDF
rendering, enhanced printer support and more...
Android History (2011 - 2013)
PSCG
10. ● Foreseeable future:
○ More devices
○ More power
○ More features
○ More apps
○ More developers
○ More competition
○ More embedded Android engineers needed.
● Will Android be crowned as the new Embedded Linux?
Android History (2014 - The Future)
PSCG
14. Agenda
● What is a "ROM"?
● Embedded Systems Primer
● Examples of Android ROMs
● ROMs in the Android developer world
● Building your first ROM out of the AOSP
● Android and X86
PSCG
15. From Wiktionary, the free Dictionary:
“ROM”:
● (electronics, computing) read-only memory
● (video games) A software image of read-only memory (as of a game
cartridge) used in emulation
● (medicine) Range of Motion
● (finance) Return on Margin
● (estimating and purchasing) Rough order of magnitude. An informal cost
or price estimate provided for planning and budgeting purposes only,
typically expected to be only 75% accurate
"ROM" - Definition
PSCG
16. From Wikipedia, the free Encyclopedia:
ROM, Rom, or rom is an abbreviation and name that may refer to:
In computers and mathematics (that's us!):
● Read-only memory, a type of storage media that is used in computers
and other electronic devices
● ROM image, a computer file which contains a copy of the data from a
read-only memory chip
● ROM (MUD), a popular MUD codebase
● Random oracle model, a mathematical abstraction used in cryptographic
proofs
● ROM cartridge, a portable form of read-only memory
● RoM, Request of Maintainer (see Software maintainer)
● Rough order of magnitude estimate
"ROM" - Definition (cont)
PSCG
17. As CyanogenMod educates us in their overview of Modding:
“You can flash a ROM onto the ROM,
which isn't really ROM”
http://wiki.cyanogenmod.com/wiki/Overview_of_Modding
Terminology check
PSCG
18. Embedded Build Systems Primer -
A quick detour for the novice
DroidCon Tel-Aviv
June 2014
PSCG
19. Embedded Build Systems
● Embedded Software development usually incorporates
the use of a Build System, to create the software (or
firmware) for some hardware.
● This use is commonly known as a build procedure
● The build procedure is done on a designated machine,
which has all the required tools to turn source code into
binaries suitable for a variety of hardware components
○ That machine is referred as The Host
● The host is used to build the system for a designated
device, may it be a handset, an emulator, a streamer
etc.
○ That device is referred to as The Target
PSCG
20. ● In Embedded Software Development, the common
case is that host != target
● They may have the same attributes:
○ architecture (i.e x86, arm, mips…),
○ library versions (libc, libstdc++, …)
○ toolchains (gcc, ar, …)
● But they do not have to, and will usually have little to
nothing in common.
● Hence, the build system uses a cross Toolchain, to
cross compile build artifacts for the target on the
host.
Embedded Build Systems
PSCG
22. Canadian Cross
This simplified (and very inaccurate) image depicts a technique for building
Cross Compilers, known as the Canadian Cross
*source: http://en.wikipedia.org/wiki/Cross_compiler_
Host
Target Target
Host
PSCG
23. HOST
Embedded Development Overview
TARGETLinux kernel (3.10.7.3)
GNU toolchain
GNU make (3.81)
Python (2.7.3)-
Shell (bash 4.2.25)
Oracle JDK (1.6.0.34)
Git (1.7.9.5)
repo (1.12.2)
Cross toolchains
Android
Emulator
(X86)
Android
Emulator
(ARM)
Windows
over
VirtualBox
Linux over
VmWare
Android-
X86 over
QEMU
LFS over
UML
BSP
Kernel
Drivers (?)
Userspace (?)
Shell (?)
Graphics (?)
...
?
PSCG
24. HOST
Connecting the host with the target -
The Android way
TARGETLinux kernel (3.10.7.3)
GNU toolchain
GNU make (3.81)
Python (2.7.3)-
Shell (bash 4.2.25)
Oracle JDK (1.6.0.34)
Git (1.7.9.5)
repo (1.12.2)
Cross toolchains
Android
Emulator
(X86)
Android
Emulator
(ARM)
Windows
over
VirtualBox
Linux over
VmWare
Android-
X86 over
QEMU
LFS over
UML
BSP
Kernel
Drivers (?)
Userspace (?)
Shell (?)
Graphics (?)
...
fastboot
adb
25. HOST
Embedded Build System - Overview
Operating system
Host toolchains
Cross toolchains
Source control
Android
Emulator
(X86)
Android
Emulator
(ARM)
Windows
over
VirtualBox
Linux over
VmWare
Android-
X86 over
QEMU
LFS over
UML
Build (I)
Images (Build Artifacts)
for target (I)
Build (II) Images (Build Artifacts)
for target (II)
PSCG
26. HOST
Embedded Build System - The
Android way
Linux kernel (3.10.7.3)
GNU toolchain
GNU make (3.81)
Python (2.7.3)-
Shell (bash 4.2.25)
Oracle JDK (1.6.0.34)
Git (1.7.9.5)
repo (1.12.2)
Cross toolchains
Android
Emulator
(X86)
Android
Emulator
(ARM)
Windows
over
VirtualBox
Linux over
VmWare
Android-
X86 over
QEMU
LFS over
UML
lunch (I)
make
out/target/product/(I)/*.img
(system.img, boot.img …)
lunch (II)
make
out/target/product/(II)/*.img
(system.img, boot.img …)
27. HOST
Flashing build artifacts -
The Android way
TARGET
Android
build
System
Android
Emulator
(X86)
Android
Emulator
(ARM)
Windows
over
VirtualBox
Linux over
VmWare
Android-
X86 over
QEMU
LFS over
UML
BSP
Kernel
Drivers (?)
Userspace (?)
Shell (?)
Graphics (?)
...
*.img:
system,
data,
recovery,
boot
(kernel,
ramdisk)
Build fastboot
flash
PSCG
28. ROM flashing
● ROM Flashing (simplified) - is the action of transferring
the build system output (a.k.a “Build Artifacts”) onto the
target memory (i.e. flash, EEPROM, Hard drive, RAM,
etc).
● Once the ROM is flashed, and assuming it is functional,
it will be loaded and run when your target is power
cycled / reset.
● It is the responsibility of the Bootloader to have the
target’s CPU fetch, load and execute the ROM contents.
PSCG
29. Embedded Development Example -
The Android way - Flashing Maguro
● Assuming I would like to build the AOSP for my maguro
device.
○ The Host is My laptop, running Ubuntu 12.04 as its
Operating System.
○ The Target is an Samsung Galaxy Nexus GSM.
■ Before flashing - it is running a stock ROM
■ After flashing - it will be running what I built using the AOSP!
○ The “Flashing” occurs when we:
■ Reboot to fastboot mode
■ Flash the boot.img, system.img etc.
of the build output directory (out/target/product/maguro)
30. Embedded Development Example -
The Android way - Android Emulator
● In the previous module we built an aosp_x86-eng build
variant of the AOSP.
○ The Host is My laptop, running Ubuntu 12.04 as its
Operating System.
○ The Target is an Android Emulator - running what I
built using the AOSP!
○ The “Flashing” pseudo-occurs when we run the
emulator, and it loads the system.img, userdata-
qemu.img, kernel and cache.img of the build output
directory (out/target/product/generic-x86)
31. And Back to the Android World!
DroidCon Tel-Aviv
February 2014
PSCG
32. Traditional terminology – whatever lies on the read-only partitions of the
device's internal flash memory:
● Recovery Mode:
○ Recovery Image (kernel + initrd)
● Operational Mode:
○ Boot Image (kernel + initrd)
○ System Image
● The magical link between the two:
○ Misc
What is not a part of the ROM?
● User data: /data, /cache, /mnt/sdcard/...
Android ROM components
PSCG
33. Since Android is Linux at its core, we can examine its
storage layout via common Linux tools:
shell@android:/ $ df
Filesystem Size Used Free Blksize
/dev 487M 32K 487M 4096
/mnt/secure 487M 0K 487M 4096
/mnt/asec 487M 0K 487M 4096
/mnt/obb 487M 0K 487M 4096
/system 639M 464M 174M 4096
/cache 436M 7M 428M 4096
/data 5G 2G 3G 4096
/mnt/shell/emulated 5G 2G 3G 4096
Android ROM Storage Layout
PSCG
34. shell@android:/ $ mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
### Output of mount continues in next slide
Android ROM Storage layout: "Standard Linux"
PSCG
37. shell@android:/ $ ls -l /dev/block/platform/sdhci-tegra.3/by-name/
lrwxrwxrwx root root 2013-02-06 03:54 APP -> /dev/block/mmcblk0p3
lrwxrwxrwx root root 2013-02-06 03:54 CAC -> /dev/block/mmcblk0p4
lrwxrwxrwx root root 2013-02-06 03:54 LNX -> /dev/block/mmcblk0p2
lrwxrwxrwx root root 2013-02-06 03:54 MDA -> /dev/block/mmcblk0p8
lrwxrwxrwx root root 2013-02-06 03:54 MSC -> /dev/block/mmcblk0p5
lrwxrwxrwx root root 2013-02-06 03:54 PER -> /dev/block/mmcblk0p7
lrwxrwxrwx root root 2013-02-06 03:54 SOS -> /dev/block/mmcblk0p1
lrwxrwxrwx root root 2013-02-06 03:54 UDA -> /dev/block/mmcblk0p9
lrwxrwxrwx root root 2013-02-06 03:54 USP -> /dev/block/mmcblk0p6
Legend: APP is system, SOS is recovery, UDA is for data...
So, where is my stuff?!
PSCG
38. For a couple of reasons:
● Backup
● Recovery
● Software updates
● Error checking
● Board design
● Curiosity
● ...
Why should we care about it?
PSCG
39. ● “Semi-Open source”
● Maintained by Google
● Contributions accepted using “gerrit”
● Mostly Apache licensed
● Provides templates for building an Android system, including
bootloaders etc.
● Vendors derive their products for their hardware layout (BSP,
binaries, etc.)
● Provides the complete source code (but usually missing proprietary
binaries) for a bunch of supported devices (e.g. Galaxy Nexus,
Nexus 4/5/7/10, Android Emulator)
Android Open Source Project
PSCG
40. ● In a single line:
○ just do whatever they say in http://source.android.com
● In a bit more:
○ Set up a 64bit Linux development machine. Officially Supported:
■ Ubuntu 10.04 LTS (Lucid) for versions < JB 4.2.1
■ Ubuntu 12.04 LTS (Precise Pangolin) for versions >= JB 4.2.1
○ mkdir / cd / repo init / repo sync
○ .build/envsetup.sh
○ lunch <Your Config>
○ make # This will take a while... Make some coffee || Get` a good nap.
○ flash/boot/run/pray/debug/show off at xda-developers et al.
AOSP ROM building
PSCG
41. ● When flashing to devices – make sure the bootloader is unlocked. For
“Google phones”:
○ adb reboot-bootloader
○ fastboot oem unlock
○ Confirm on device
Then you can flash all images using “fastboot -w flashall”,
or particular images using “fastboot flash -w <partition> <image>”
● Some tips on flashing custom builds:
○ Having trouble using “fastboot flash” due to mismatched broadband versions?
○ Try modifying device/<vendor>/<product>/board-info.txt
○ Before building, make sure you have the “binary-blobs”, under the vendor/
subtree (note the difference from device/)
■ Hint: proprietary-blobs.txt
A bit more about flashing
PSCG
42. ● Get a kernel to start from – or make one
○ 3.4+ kernel are pretty much “Android-Ready”
● Checkout/config/make
○ Don't get too freaky – avoid breaking “Userspace” (a.k.a
“Android”)
● Replace prebuilt kernel with your generated bzImage
● Rebuild Android
● Pray/play/laugh/cry/show off on XDA-dev/Q&A on
android-kernel / android-porting / android-*
Building kernels
PSCG
43. $ git clone https://android.googlesource.com/kernel/<target>.git
Some kernel targets hosted by the AOSP:
● Common - common kernel tree. Based on Linux 3.4+
● msm – Qualcomm msm (HTC Nexus One, LG Nexus 4)
● Omap – TI's OMAP (Samsung Galaxy Nexus)
● Tegra – Nvidia's Tegra (Motorola Xoom, Asus Nexus 7)
● Exynos - Samsung Exynos (Samsung Nexus 10)
● Goldfish - Android emulator
Getting Kernel Sources
PSCG
44. ● Before we get our hands “dirty”, there is something
I want you to know.
● That something is how things were done for most of the
Android project lifetime.
● More precisely up until Android 4.2.
● Feel free to stick to your chairs and “enjoy” some historic
moments in the Museo di Android Internals
A blast from the (not so far) past
PSCG
45. ● The Goldfish Kernel Version has traditionally been
2.6.29.
○ Even 4 years after the kernel.org release.
○ Until Android 4.2, where it was upgraded by default to 3.4
● A nice thing about Android – system and kernel are
reasonably decoupled
● “It's just an emulator” - and most of its consumers are
only interested in testing applications, so “don't fix it if it
ain't broken”
● And trying to fix something that is not broken in the
Goldfish case is extremely time consuming.
○ Ask the kernel maintainers who added extremely broken code to the
staging area at late 2013 (too bad I stopped following LKML…)
Goldfish Kernels
PSCG
46. ● This is a serious topic.
○ So serious I won’t get into it. Seriously.
● So to make a (very) long story short:
○ It can be argued that Android kernels were not well accepted. To say
the least.
○ This caused an unpleasant fragmentation.
○ Yet Android prevailed ⇒ Staging Area.
● You can basically build Android from the vanilla kernel.
org. You can do it without a single patch actually for a
virtual machine!
● Goldfish is a different (harder) topic.
○ Talk to me if you need a .../3.13+/3.14+/3.15+ goldfish porting.
TIP: ${ANDROID_BUILD_TOP}/external/qemu/distrib/build-kernel.sh
Vanilla (kernel.org) kernels
PSCG
47. ● This is a serious topic.
○ So serious I won’t get into it. Seriously.
● Fortunately, I don’t have to
○ In order to get you running on your favorite VESA
configuration
○ *Graphic Acceleration is not only serious, but also a
painful point, which we will not discuss
● Grasping the concept is a bit easier on Virtual Machines
for a starter, so let’s have a look on such.
* Graphic Acceleration is always a mess with virtual machines,
so no surprise in here
Vanilla (kernel.org) kernels
PSCG
48. Guidelines to follow
● Select your architecture (32/64bits, X86/arm,..., etc.)
● Enable staging area (CONFIG_STAGING=y)
● Search for ANDROID - and enable all configs
○ Some are unnecessary, but it’s a good start
● Enable VIRTIO drivers
○ CONFIG VIRTIO, CONFIG_VIRTIO_BLK, CONFIG_VIRTIO_PCI,
CONFIG_VIRTIO_NET
● Enable FB configurations
○ CONFIG_FB, CONFIG_FB_VESA
● Use the right command line when running qemu
● And don’t forget qemu=1 on the cmdline!
make ARCH=x86 qemu_vanilla_config
PSCG
51. We’ll get back to it if time allows (short session.)
@see:
https://www.youtube.com/watch?v=7iLeBD33Fo0
https://thenewcircle.
com/s/post/1609/tutorial_x86_rom_cooking_101_ron_munitz_
video
Android emulator storage (Custom vanilla kernel)
PSCG
52. AOSP case study: Building a Jelly Bean emulator
PSCG
This is an image based on one of the earliest
JB versions. Not much, if any has changed
since the very early days of “Cupcake” and
“Donut”.
53. ● First and foremost: Build for X86 and use KVM!
○ Check capability with “kvm-ok”
○ Feature must be enabled in your computer's bios
○ cat /proc/cpuinfo and search for vmx/avm(intel VT/AMD-V)
● Use hardware keyboard
● Much more comfortable then “touching” the soft keyboard
● Although there are uses for that
● Enable keyboard in external/qemu/android/avd/hardware-
properties.ini – and rebuild external/qemu
● Windows users: Use HAXM (Intel's HW Acceleration Manager)
Using the Android Emulator
PSCG
54. ● There are more emulation configurations which are supposed to be
supported by AOSP, but tend to be broken
○ Building for non Linux devices from Linux
■ lunch sdk-eng && make win_sdk
○ Building for VirtualBox and other virtual machines:
■ lunch vbox_x86-eng
■ make android_disk_vdi
■ Translate VDI image to your VM hard-drive format (e.g. qcow...)
● Motivation for using such configurations:
Development teams working with different Operating Systems,
but willing to use the same emulated platform
Additional X86 AOSP configurations
PSCG
55. ● Motivation - fast linux bringup procedure
○ First, bring-up the target OS on a virtual machine
○ Verify basic functionality
○ Then adjust for a designated hardware
● How to do it?
○ Short answer - use emulator images with some adjustments, mount
ext4, set sdcard etc...
○ Pragmatic answer: In the next session
Adjusting AOSP build for KVM / QEMU (a teaser)
PSCG
56. The short answer would be – whenever you can.
○ Great for application development
■ when used with KVM/HAXM
○ Has no dependency on a particular hardware
○ Very easy to build
○ Integrates well with the AOSP tools
○ Relatively well documented
Overall – it is a good ROM.
Most used ROM for a reason.
When to use the emulator
PSCG
58. Various forks to the Android Open Source Project:
● AOSP - (4.4.3+ OPENMASTER/KTU84M upstream)
○ The root of all (good?)
● Android-X86 (KVT49H upstream, JLS36I last stable release)
● Android-IA (KOT49H upstream )
● Many other forks
○ CyanogenMod
○ Buildroid/AndroVM
○ And many others... Not all are known or Open-Sourced
Android Projects (As per June 2014)
PSCG
59. A custom, open source distribution spawned off
the AOSP
● Provides optimizations and support for over 40
different devices, along with binaries
● Builds routine similar to AOSP (note: “brunch”)
● http://wiki.cyanogenmod.com/wiki/Main_Page
CyanogenMod (special guest star)
PSCG
62. The common reference, having the most recent version of the Android platform
(Userspace) versions.
Provides the QEMU based Android Emulator:
+ Works on any hosted OS
+ Supports multiple architectures
- But slow on non X86 ones
- Performs terribly if virtualized
- Has no installer for X86 devices
- Very old kernel
+/- An emulator. For better and for worse.
AOSP
PSCG
63. + Developed by the open source community
+ Developer/Linux user friendly
+ Multi-Boot friendly
+ Generally supports many Intel and AMD devices
+/- But of course requires specific work on specific HW
+ VM friendly
+ Mature, Recognized and stable
- Delays in new releases (You can help!)
- Latest version (4.4.2) is a bit buggy
+/- Latest stable version (4.3) still needs some work for some devices
+ The ICS 4.0.4 release is amazing - including running ARM apps
Android-X86
PSCG
64. + Installer to device
+ Relatively new versions of android and kernel
+ Works great on ivy-bridge devices
+ Integrated Ethernet Configuration Management
- Development for devices based on intel solutions only
- Very unfriendly to other OS's
- Not developer friendly – unless they make it such
- Community work can be better. But it is seems to be getting better
- Intel phones are not based on it (at the moment)
+ Made impressive progress in early 2013
- But suspended development at Android 4.2.2
+But resumed a couple of months ago
Android-IA
PSCG
65. ● Android is Linux
○ Therefore the required minimum to run it would be:
■ A Kernel
■ A filesystem
■ A ramdisk/initrd... Whatever makes you happy with your kernel's
init/main.c's run_init_process() calls.
See http://lxr.linux.no/linux+v3.6.9/init/main.c
○ This means that we can achieve full functionality with
■ A kernel (+ramdisk)
■ A rootfs where Android system/ will be mounted (ROM)
■ Some place to read/write data
Android is Linux
PSCG
66. Android-IA is Android
Android-IA is, of course, Linux as well.
However, it was designed to conform to Android OEM's partition layout, and
has no less than 9 partitions:
○ boot - flashed boot.img (kernel+ramdisk.img)
○ recovery - Recovery image
○ misc - shared storage between boot and recovery
○ system - flashed system.img - contents of the System partition
○ cache - cache partition
○ data - data partition
○ install - Installation definition
○ bootloader - A vfat partition containing android syslinux bootloader (<4.2.2)
- A GPT partition containing gummiboot (Only option in 4.2.2)
○ fastboot - fastboot protocol (flashed droidboot.img)
Note: On android-ia-4.2.2-r1, the bootable live.img works with a single partition,
enforcing EFI. It still has its issues - but it is getting there.
PSCG
67. ● One partition with two directories
○ First directory – grub (bootloader)
○ Second directory – files of android (SRC)
■ kernel
■ initrd.img
■ ramdisk.img
○ system
○ data
● This simple structure makes it very easy to work and debug
Note: Also comes with a live CD/installer. Very convenient.
Android-X86 is Linux
PSCG
68. ● Start bootloader
● The bootloader starts the combined kernel + ramdisk
image (boot.img flashed to /boot)
● At the end of kernel initialization Android's
● /init runs from ramdisk
● File systems are mounted the Android way – using
fstab.common that is processed (mount_all command)
from in init.<target>.rc
Android-IA boot process
PSCG
69. ● Start bootloader (GRUB)
● bootloader starts kernel + initrd (minimal linux) + kernel
command line
● At the end of kernel initialization
○ run the /init script from initrd.img
○ load some modules, etc.
○ At the end change root to the Android file system
● Run the /init binary from ramdisk.img
○ Which parses init.rc, and starts talking “Android-ish”
Android-X86 boot process
PSCG
70. It depends what you need:
○ Developer options?
○ Debugging the init process?
○ Support for Hardware?
○ Support for OTA?
○ Licensing?
○ Participating in project direction?
○ Upstream features?
○ ...
There is no Black and White.
Which one is better?
PSCG
71. ● Use Android-X86 installer system
● And put your desired android files (matching
kernel/ramdisk/system) in the same partition.
● Use the Android-X86 chroot mechanism
○ Critics: Does redundant stuff
○ But that's just a hack anyway – devise specific solutions for
specific problems
● This way, we can multiple boot various projects:
○ Android-IA
○ AOSP
○ Any other OS...
Note: You can also use chroot mechanism on any Linux Distribution,
from userspace! But this is significantly harder...
An hybrid approach
PSCG
72. Repartition existing Linux partition (Don't do that...)
Install Android-X86
Add entries to GRUB
Reboot to Android-X86 debug mode
Copy Android-IA files from a pendrive or over SCP
For the former: cp /mnt/USB/A-IA/ /mnt && sync
/mnt is the root of Android-X86 installed partition
(e.g. (hd0,1)/...
Update GRUB entries and update GRUB
Voila :-)
Less simplified procedure: Debug GRUB... :-(
** Note: Replace Android-IA with AOSP to boot AOSP built files (system.img /
kernel / ramdisk.img) on your target device.
Multi-boot recipe with legacy GRUB (simplified)
PSCG
73. ● Repartition existing Linux partition (Don't do that...)
● Create a mount point for your multi-booting android
○ Can make a partition per distribution, it doesn't really matter.
○ For this example let's assume all Android distributions will co exist on the same
partition, and that it is mounted to /media/Android-x86
● Build your images
○ AOSP: Discussed before
○ Android-x86:
■ . build/envsetup.sh && lunch android_x86-<variant>
&& make iso_img
○ Android-IA:
■ . build/envsetup.sh && lunch core_mesa-<variant>
&& make allimages
■ . build/envsetup.sh && lunch bigcore-<variant> && make allimages
** <variant> is either one of the following: user, userdebug, eng
Multi-boot recipe using GRUB2
PSCG
74. ● Create directories for your projects (e.g. jb-x86, A-IA, AOSP) under your
mount point (e.g. /media/Android-x86)
● From Android-X86's out/product/target: Copy initrd.img to all projects.
○ Can of course only copy ramdisk to one location.
● From all projects – copy kernel, ramdisk.img, system/ and data/ to to
the corresponding directory under your mount point.
● Add entries to GRUB and update grub.
● # e.g. sudo vi /etc/grub.d/40_custom && update-grub
Multi-boot recipe using GRUB2 (cont.)
PSCG
75. $ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda5 451656948 394848292 34199920 93% /
udev 1954628 4 1954624 1% /dev
tmpfs 785388 1072 784316 1% /run
none 5120 0 5120 0% /run/lock
none 1963460 2628 1960832 1% /run/shm
/dev/sda1 15481360 5165416 9529464 36% /media/Android-
x86
Multi-boot recipe with GRUB2 - A numerical example
PSCG
76. #### JB-X86
menuentry 'jb-x86' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
echo 'Loading Android-X86'
linux /jb-x86/kernel quiet androidboot.hardware=android_x86 video=-16 SRC=/jb-x86
initrd /jb-x86/initrd.img
}
A numerical example (cont.)- /etc/grub.d/40_custom
PSCG
77. ### android-IA
menuentry 'Android-IA' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
echo 'Loading Android-IA'
linux /A-IA/kernel console=ttyS0 pci=noearly console=tty0 loglevel=8 androidboot.hardware=ivb
SRC=/A-IA
initrd /A-IA/initrd.img
}
A numerical example (cont.) - /etc/grub.d/40_custom
PSCG
78. ● In this session:
○ We have listed various ways to build ROMs for
■ AOSP devices
■ AOSP emulator(-X86)
■ Android-X86
■ Android-IA
○ We have also discussed multi booting several configurations using the
Android-X86 build system
● In the next module, we will:
○ Explore the Android build system
○ See how to create and modify those projects for easy customizable
X86 developer friendly targets!
Coming up next...
PSCG
80. ● The build/ folder
● The device/ folder
● Adding a new device
● QEMU challenges
○ kernel
○ network
○ graphics
○ sdcard
● No slides! (pay attention!)
Outline
PSCG
81. ● Android build system sometimes varies between
versions
● Different Android build systems may have their nuances
● Android runtime varies between versions
● Binary blobs may, or may not be available
● Building takes time. Being “smart” may take more time
due to Dexopt.
● OS/QEMU optimal combination varies.
● Initial bringup may be challenging
Challenges
PSCG
82. ● The AOSP is hosted at http://source.android.com
● The Android-x86.org project is hosted at http://Android-X86.org
● The Android-IA project is hosted at https://01.org/android-ia
● Device trees shown in the next session are available at
https://github.com/ronubo/AnDevCon
● Introduction to Embedded Android course - Ron Munitz.
Taught at Afeka College of Engineering, Tel-Aviv, Israel
● My talk from the latest Embedded Linux Conference: https:
//thenewcircle.
com/s/post/1609/tutorial_x86_rom_cooking_101_ron_munitz_video
● You are welcome to contact me in the social networks (@ronubo)
References
PSCG
83. ● 5 day ROM cooking + internals: June 29, July 20
● 2 day ROM cooking and customization: June 22nd
● 3 day Android Internals: June 24th
● Discount code: DroidConTLV → ron@thepscg.com
● On site/company specific training → info@thepscg.com
Further Training in Israel
PSCG