Android Things is the latest attempt from Google to connect the dots between the cloud and devices by introducing an OS that is exclusively built for IoT devices. Initially announced as project Brillo, Android Things helps developers to build devices faster and enable them integrate with cloud services. This presentation traces the architectural aspects of Android Things by connecting it back with Embedded Linux, Embedded Android and Brillo.
The document discusses the Android booting process. It begins with the boot ROM and boot loader which initialize hardware and load the kernel image. The kernel then initializes drivers and loads init, which sets up the environment and mounts partitions. Init starts the zygote process, which preloads classes. System servers like the activity manager and power manager are then started via zygote. Once all servers are running, Android broadcasts an intent to indicate the boot process is complete. The boot sequence involves the bootloader, kernel, init, zygote and system servers working together to start the Android system.
This document provides an overview of the steps to build and install the Android Open Source Project (AOSP) from source. It discusses initializing a build environment, downloading the AOSP source tree and device drivers, building and installing the AOSP build on a Nexus 5 device. The build process involves initializing a repo client, syncing the source code, choosing a target, and running make. The installed AOSP build can then be used to power an unlocked Nexus 5 device.
For new age touch-based embedded devices, Android is becoming a popular OS going beyond mobile phones. With its roots from Embedded Linux, Android framework offers benefits in terms of rich libraries, open-source and multi-device support. Emertxe’s hands-on Embedded Android Training Course is designed to customize, build and deploy custom Embedded OS on ARM target. Rich set of projects will make your learning complete.
The document discusses building Android Open Source Project (AOSP) software. It describes fetching source code using repo, configuring the build, and building and flashing images to an Android device. Key steps include initializing repo, syncing sources, setting environment variables, choosing a target from the lunch menu, and using make to build binaries, images and flash the device.
This document provides an overview of Android internals through a series of topics:
1. It describes key Android concepts like components, intents, and the manifest file.
2. It outlines the overall Android architecture including system startup processes like the bootloader, kernel, init, zygote and system server.
3. It covers various aspects of the Android system like the Linux kernel customizations, native user-space environment, Dalvik VM, and Java Native Interface.
4. It also profiles important system-level components like the system server, activity manager, and Binder IPC mechanism.
Understanding the Android System ServerOpersys inc.
This document discusses the Android system server. It provides an overview of the bootup sequence where the system server is started. It then describes some of the key services run by the system server, such as the activity manager, package manager, window manager, and others. It also discusses how to observe the system server in action using logcat and how applications interface with system services via Binder.
The Android booting process involves 5 stages:
1. The bootloader loads the kernel from flash memory into RAM.
2. The kernel initializes the system and loads drivers. It then launches the init process.
3. Init mounts filesystems and runs scripts to set up services. It also loads properties and launches the Zygote process.
4. Zygote preloads classes and resources. It forks to create new processes like the System Server using copy-on-write.
5. The System Server starts core system services. When complete, Android has finished booting and is ready for use.
Vold is the volume daemon in Android that manages storage volumes like external SD cards. It communicates with the Linux kernel via Netlink sockets to receive storage events and with the MountService via a local socket. When a new storage device is inserted, Vold receives the kernel event, mounts the volume if FAT format according to its configuration file, and notifies MountService to make the volume available to the user.
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Opersys inc.
This document provides an overview of the native Android user-space environment, including:
1) The filesystem layout and key directories like /system, /data, and /vendor.
2) How the build system determines where files are placed.
3) The adb debugging tool and its capabilities.
4) Common command line tools and properties.
5) The init process and ueventd daemon.
6) Libraries like Bionic and integration options for legacy systems.
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Opersys inc.
1) The document provides an overview of using and customizing the Android framework, covering topics like kickstarting the framework, utilities and commands, system services internals, and creating custom services.
2) It describes the core building blocks of the framework, like services, Dalvik, and the boot process. It also covers utilities like am, pm, and dumpsys.
3) The document discusses native daemons like servicemanager and installd. It explains how to observe the system server and interact with services programmatically.
Treble introduces several changes to standardize and streamline the Android upgrade process for OEMs and carriers. These include defining hardware interfaces with HIDL, restricting vendor customization with VNDK, and adding a vendor interface and test suite (VINTF and VTS) to validate compatibility. The goal is to make upgrades easier, faster and less costly for manufacturers by decoupling the Android framework from vendor implementation details.
This document provides an overview of Android's HIDL (Hardware Interface Definition Language). It begins with introductions to HIDL's goals of providing versioned hardware interface definitions and how it fits into Android's architecture. It then covers basics like HAL's traditional C-based implementation, HIDL's similarities to AIDL, and links to documentation. The document dives deeper into HIDL's architecture including the JNI, HIDL, and HIDL glue layers. It walks through an example of lights HAL implementation. Finally, it discusses adding a new HIDL interface, the supporting infrastructure, and acknowledges diagram sources.
This document provides an overview of embedded Android. It discusses Android's features, history, ecosystem, legal framework, hardware requirements, and development tools. The document summarizes Android's evolution over time, different Android "flavors" for different device types, the open source nature and licenses of Android code, compatibility testing requirements, and Google's Project Treble which aims to make Android updates easier.
These slides give an introduction to the device driver structure of the Android/Linux operating system. They are based on a talk that was given in a seminar for National Taiwan University of Science and Technology on Dec. 2011. It can be useful for people who are not familiar with the Android software architecture but want to get an initial understanding about it.
In order to understand HAL layers of Android Framework, having Linux device driver knowledge is important. Hence Day-2 of the workshop focuses on the same.
Init of Android
The /init process in Android is different than a typical Linux system. It has two main parts - a boot part and a daemon part. The boot part sets up directories and parses the /init.rc file. The daemon part runs in a forever loop handling events from four file descriptors for devices, properties, signals, and keychords. It is responsible for device management, property updates, restarting services, and special key combinations. The /init process is statically linked so it can run independently of the system.
Embedded Systems are basically Single Board Computers (SBCs) with limited and specific functional capabilities. All the components that make up a computer like the Microprocessor, Memory Unit, I/O Unit etc. are hosted on a single board. Their functionality is subject to constraints, and is embedded as a part of the complete device including the hardware, in contrast to the Desktop and Laptop computers which are essentially general purpose (Read more about what is embedded system). The software part of embedded systems used to be vendor specific instruction sets built in as firmware. However, drastic changes have been brought about in the last decade driven by the spurt in technology, and thankfully, the Moore’s Law. New, smaller, smarter, elegant but more powerful and resource hungry devices like Smart-phones, PDAs and cell-phones have forced the vendors to make a decision between hosting System Firmware or full-featured Operating Systems embedded with devices. The choice is often crucial and is decided by parameters like scope, future expansion plans, molecularity, scalability, cost etc. Most of these features being inbuilt into Operating Systems, hosting operating systems more than compensates the slightly higher cost overhead associated with them. Among various Embedded System Operating Systems like VxWorks, pSOS, QNX, Integrity, VRTX, Symbian OS, Windows CE and many other commercial and open-source varieties, Linux has exploded into the computing scene. Owing to its popularity and open source nature, Linux is evolving as an architecturally neutral OS, with reliable support for popular standards and features
Learning AOSP - Android Linux Device DriverNanik Tolaram
This document discusses Android and Linux device drivers. It provides an overview of Android's core low-level software and hardware drivers, which perform minimum tasks and access the framework layer or libraries. It also describes the interaction between the kernel, framework, and virtual filesystem for key drivers like binder, logger, and USB. Configuration options for Android in the Linux kernel are listed, and resources for learning more about Android open source are provided.
Android is NOT just 'Java on Linux'.
Android uses Linux kernel. But only kernel. I show you how different Android is from normal Linux systems.
Visit this page.
http://kobablog.wordpress.com/2011/05/22/android-is-not-just-java-on-linux/
A deep dive into Android OpenSource Project(AOSP)Siji Sunny
A deep dive into Android openSource project presented at
International Centre for Free and Open Source Software (ICFOSS), Kerala's OpenSource Mobile Computing Conference
Android booting sequece and setup and debuggingUtkarsh Mankad
The document summarizes key Android SDK components and concepts in 3 sentences or less:
Android SDK components are organized by functionality and include Activities, Services, BroadcastReceivers, Views, Intents, Adapters, AlertDialogs, Notifications, ContentProviders, and data storage methods. Common data storage options include SharedPreferences, internal storage, external storage, and SQLite databases. The Android booting process involves 6 stages: power on and ROM code execution, boot loader loading, starting the Linux kernel, initiating the init process, launching the Zygote and Dalvik virtual machine, and system server initiation.
This document provides an overview of porting Android to new platforms. It discusses the Android software stack, the Android Open Source Project structure, the AOSP code structure, common Android hardware abstraction layers, device configuration files, the AOSP build process, the Android boot process, and Android debugging tools.
The document provides information on how to build Android for various ARM chip boards including Allwinner A31, Rockchip RK3188, MediaTek MT6589, Freescale i.MX6Q, and TI OMAP5432. It lists the chips, development boards, and Android support for each. It then provides detailed setup instructions for building Android on the Rockchip RK3188 and MediaTek MT6589 boards, including getting the kernel source, building images, and writing to the devices. Setup for the Freescale board involves downloading official source and patching to the Android code.
Customizing AOSP For Different Embedded Devices And Integration at Applicatio...ijafrc
The document discusses customizing and porting the Android Open Source Project (AOSP) to different embedded devices. It describes the challenges in porting AOSP to new hardware, including ensuring kernel compatibility and hardware support. It also outlines the process for building and installing AOSP on ARM-based and non-ARM boards, including compiling the source code locally and downloading images to the target device. The goal is to allow Android applications to integrate with new device functionality.
This document describes how to modify the Android Open Source Project (AOSP) to include components from a factory system image in order to enable features like the Google Play Store. It involves extracting the system image, comparing it to the AOSP system directory, deodexing optimized files, and tailoring Makefiles to declare which apps, files and system properties to include from the factory build. This process allows one to build a customized version of AOSP that more closely resembles the commercial device.
The Android booting process involves 5 stages:
1. The bootloader loads the kernel from flash memory into RAM.
2. The kernel initializes the system and loads drivers. It then launches the init process.
3. Init mounts filesystems and runs scripts to set up services. It also loads properties and launches the Zygote process.
4. Zygote preloads classes and resources. It forks to create new processes like the System Server using copy-on-write.
5. The System Server starts core system services. When complete, Android has finished booting and is ready for use.
Vold is the volume daemon in Android that manages storage volumes like external SD cards. It communicates with the Linux kernel via Netlink sockets to receive storage events and with the MountService via a local socket. When a new storage device is inserted, Vold receives the kernel event, mounts the volume if FAT format according to its configuration file, and notifies MountService to make the volume available to the user.
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Opersys inc.
This document provides an overview of the native Android user-space environment, including:
1) The filesystem layout and key directories like /system, /data, and /vendor.
2) How the build system determines where files are placed.
3) The adb debugging tool and its capabilities.
4) Common command line tools and properties.
5) The init process and ueventd daemon.
6) Libraries like Bionic and integration options for legacy systems.
Using and Customizing the Android Framework / part 4 of Embedded Android Work...Opersys inc.
1) The document provides an overview of using and customizing the Android framework, covering topics like kickstarting the framework, utilities and commands, system services internals, and creating custom services.
2) It describes the core building blocks of the framework, like services, Dalvik, and the boot process. It also covers utilities like am, pm, and dumpsys.
3) The document discusses native daemons like servicemanager and installd. It explains how to observe the system server and interact with services programmatically.
Treble introduces several changes to standardize and streamline the Android upgrade process for OEMs and carriers. These include defining hardware interfaces with HIDL, restricting vendor customization with VNDK, and adding a vendor interface and test suite (VINTF and VTS) to validate compatibility. The goal is to make upgrades easier, faster and less costly for manufacturers by decoupling the Android framework from vendor implementation details.
This document provides an overview of Android's HIDL (Hardware Interface Definition Language). It begins with introductions to HIDL's goals of providing versioned hardware interface definitions and how it fits into Android's architecture. It then covers basics like HAL's traditional C-based implementation, HIDL's similarities to AIDL, and links to documentation. The document dives deeper into HIDL's architecture including the JNI, HIDL, and HIDL glue layers. It walks through an example of lights HAL implementation. Finally, it discusses adding a new HIDL interface, the supporting infrastructure, and acknowledges diagram sources.
This document provides an overview of embedded Android. It discusses Android's features, history, ecosystem, legal framework, hardware requirements, and development tools. The document summarizes Android's evolution over time, different Android "flavors" for different device types, the open source nature and licenses of Android code, compatibility testing requirements, and Google's Project Treble which aims to make Android updates easier.
These slides give an introduction to the device driver structure of the Android/Linux operating system. They are based on a talk that was given in a seminar for National Taiwan University of Science and Technology on Dec. 2011. It can be useful for people who are not familiar with the Android software architecture but want to get an initial understanding about it.
In order to understand HAL layers of Android Framework, having Linux device driver knowledge is important. Hence Day-2 of the workshop focuses on the same.
Init of Android
The /init process in Android is different than a typical Linux system. It has two main parts - a boot part and a daemon part. The boot part sets up directories and parses the /init.rc file. The daemon part runs in a forever loop handling events from four file descriptors for devices, properties, signals, and keychords. It is responsible for device management, property updates, restarting services, and special key combinations. The /init process is statically linked so it can run independently of the system.
Embedded Systems are basically Single Board Computers (SBCs) with limited and specific functional capabilities. All the components that make up a computer like the Microprocessor, Memory Unit, I/O Unit etc. are hosted on a single board. Their functionality is subject to constraints, and is embedded as a part of the complete device including the hardware, in contrast to the Desktop and Laptop computers which are essentially general purpose (Read more about what is embedded system). The software part of embedded systems used to be vendor specific instruction sets built in as firmware. However, drastic changes have been brought about in the last decade driven by the spurt in technology, and thankfully, the Moore’s Law. New, smaller, smarter, elegant but more powerful and resource hungry devices like Smart-phones, PDAs and cell-phones have forced the vendors to make a decision between hosting System Firmware or full-featured Operating Systems embedded with devices. The choice is often crucial and is decided by parameters like scope, future expansion plans, molecularity, scalability, cost etc. Most of these features being inbuilt into Operating Systems, hosting operating systems more than compensates the slightly higher cost overhead associated with them. Among various Embedded System Operating Systems like VxWorks, pSOS, QNX, Integrity, VRTX, Symbian OS, Windows CE and many other commercial and open-source varieties, Linux has exploded into the computing scene. Owing to its popularity and open source nature, Linux is evolving as an architecturally neutral OS, with reliable support for popular standards and features
Learning AOSP - Android Linux Device DriverNanik Tolaram
This document discusses Android and Linux device drivers. It provides an overview of Android's core low-level software and hardware drivers, which perform minimum tasks and access the framework layer or libraries. It also describes the interaction between the kernel, framework, and virtual filesystem for key drivers like binder, logger, and USB. Configuration options for Android in the Linux kernel are listed, and resources for learning more about Android open source are provided.
Android is NOT just 'Java on Linux'.
Android uses Linux kernel. But only kernel. I show you how different Android is from normal Linux systems.
Visit this page.
http://kobablog.wordpress.com/2011/05/22/android-is-not-just-java-on-linux/
A deep dive into Android OpenSource Project(AOSP)Siji Sunny
A deep dive into Android openSource project presented at
International Centre for Free and Open Source Software (ICFOSS), Kerala's OpenSource Mobile Computing Conference
Android booting sequece and setup and debuggingUtkarsh Mankad
The document summarizes key Android SDK components and concepts in 3 sentences or less:
Android SDK components are organized by functionality and include Activities, Services, BroadcastReceivers, Views, Intents, Adapters, AlertDialogs, Notifications, ContentProviders, and data storage methods. Common data storage options include SharedPreferences, internal storage, external storage, and SQLite databases. The Android booting process involves 6 stages: power on and ROM code execution, boot loader loading, starting the Linux kernel, initiating the init process, launching the Zygote and Dalvik virtual machine, and system server initiation.
This document provides an overview of porting Android to new platforms. It discusses the Android software stack, the Android Open Source Project structure, the AOSP code structure, common Android hardware abstraction layers, device configuration files, the AOSP build process, the Android boot process, and Android debugging tools.
The document provides information on how to build Android for various ARM chip boards including Allwinner A31, Rockchip RK3188, MediaTek MT6589, Freescale i.MX6Q, and TI OMAP5432. It lists the chips, development boards, and Android support for each. It then provides detailed setup instructions for building Android on the Rockchip RK3188 and MediaTek MT6589 boards, including getting the kernel source, building images, and writing to the devices. Setup for the Freescale board involves downloading official source and patching to the Android code.
Customizing AOSP For Different Embedded Devices And Integration at Applicatio...ijafrc
The document discusses customizing and porting the Android Open Source Project (AOSP) to different embedded devices. It describes the challenges in porting AOSP to new hardware, including ensuring kernel compatibility and hardware support. It also outlines the process for building and installing AOSP on ARM-based and non-ARM boards, including compiling the source code locally and downloading images to the target device. The goal is to allow Android applications to integrate with new device functionality.
This document describes how to modify the Android Open Source Project (AOSP) to include components from a factory system image in order to enable features like the Google Play Store. It involves extracting the system image, comparing it to the AOSP system directory, deodexing optimized files, and tailoring Makefiles to declare which apps, files and system properties to include from the factory build. This process allows one to build a customized version of AOSP that more closely resembles the commercial device.
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.
The document discusses Android over-the-air (OTA) updates, including the update mechanism, update packages, and the recovery console. It describes how OTA updates work in Android, from downloading an update package to verifying and applying the updates. It also discusses the AOSP components involved like the updater binary, edify scripting language, and recovery console. Finally, it covers creating an OTA application to check and download updates and rebooting into recovery to apply them.
Android porting for dummies @droidconin 2011pundiramit
This document provides an overview of porting Android to new hardware:
1. It describes the Android software stack and the structure of the Android Open Source Project code.
2. It discusses requirements for building and accessing the AOSP code, including using the 'repo' tool to download the source.
3. It summarizes the AOSP code structure and highlights key components like the Linux kernel, HAL, and build system.
4. It provides an overview of the Android boot process and offers tips for debugging, including increasing log levels and using tools like logcat, adb, and dumpsys.
Red Bend Software: Optimizing the User Experience with Over-the-Air UpdatesRed Bend Software
This document discusses best practices for optimizing the user experience with over-the-air (OTA) updates. It outlines Red Bend's OTA updating service, including planning an OTA system, testing updates, operating update campaigns, and measuring the impact of OTA updates. Red Bend has delivered over 1.75 billion OTA updates across many brands and can help OEMs provide reliable, easy-to-use OTA updating as a cloud-based software as a service.
The document proposes a project on the Android operating system. It discusses that Android is an open-source software stack that includes an operating system, middleware, and applications built around Linux and Java. The goal of the project is to produce a research paper providing a brief description of Android, including its features like applications framework, Dalvik virtual machine, integrated browser, and support for media, Bluetooth, GPS and other hardware. The paper will cover topics like Android architecture, applications, application framework, libraries, runtime, Linux kernel, secure data storage, execution environment, Dalvik VM, task management, memory management, application lifecycle, security, and development tools.
Booting Android: bootloaders, fastboot and boot imagesChris Simmonds
This document discusses booting Android devices. It covers Android boot images, bootloaders, fastboot protocol, and file systems used for different types of flash memory in Android devices. The key topics covered include bootloaders loading the boot and recovery images, the fastboot protocol for flashing and debugging, and file systems like ext4, f2fs, yaffs2 used on different flash chips like eMMC, SD cards, and raw NAND flash.
Working with the AOSP - Linaro Connect Asia 2013Opersys inc.
This document provides instructions for customizing and building the Android Open Source Project (AOSP). It discusses tools for working with AOSP, building AOSP, output images, compatibility testing, and basic customizations like adding a new device. The document is intended to guide developers through setting up their environment, building AOSP, and making simple changes to AOSP components and devices.
GNU autotools are tools used to automate the configuration and building of software projects across different platforms. The key tools are Autogen.sh, Aclocal, Autoconf, Automake and Libtool. Autogen.sh prepares the build system by verifying versions and ensuring necessary functionality. Aclocal combines macros into a single file. Autoconf generates a configure script. Automake generates Makefiles compliant with GNU standards. Libtool simplifies creating portable compiled libraries. Together these tools automate configuring, compiling and installing software in a standardized way across Unix-like systems.
The Android Build System - Android MarshmallowRon Munitz
Part of my workshop in MobModCon 2015, where I explained how to approach the Android Build System, prior to customizing or building a custom ROM. Within the presentation there are updates which are not yet a part of Marshmallow, but are already in the master branch, and I gave them special attention (mostly painted them in Red). Such items include the Ninja build system and some of its derivatives.
The document provides an introduction to the Autotools build system used for cross-platform compilation of software. It discusses the main Autotools tools - Autoconf, Automake and Libtool, and how they help make software portable across operating systems by addressing differences in platforms. The document gives an overview of how Autotools works from both a user and developer perspective, and provides resources for learning more about Autotools and related standards like the GNU Coding Standards.
Leveraging Android's Linux Heritage at AnDevCon VIOpersys inc.
BusyBox is a package that provides many common UNIX commands as a single executable. It is commonly used in embedded Linux systems to reduce the overall size of the system by replacing multiple individual binaries with a single executable containing multiple apps. Some of the commands included in BusyBox include common utilities like cat, cp, grep, ls, mkdir, more, mv, rm, top and others. BusyBox aims to provide a common set of basic UNIX tools often required on embedded systems.
Crafting GNU/ linux distributions for embedded target using BuilrootSourabh Singh Tomar
Following content is quick start guide for, Someone looking for understanding working of Embedded Linux at the same time practical consideration involved for getting the system online.
Leveraging Android's Linux Heritage at AnDevCon VOpersys inc.
This document discusses leveraging Android's Linux heritage by enabling Android and traditional Linux distributions to coexist and interact. It outlines some of the key roadblocks like differences in filesystem structure and IPC mechanisms. Approaches for coexistence discussed include building a single filesystem, chroot jails, and virtualization. Demos proposed include running BusyBox commands on Android, building a client-server app that communicates between glibc and bionic libraries, and adding LTTng tracing support to the Android kernel. The goal is to open possibilities for reusing mature Linux userspace software on Android.
Leveraging Android's Linux Heritage at AnDevCon IVOpersys inc.
BusyBox is a package that provides many common UNIX commands as a single executable. It contains implementations of utilities like cat, cp, grep, ls, mkdir, rm, and others. Using BusyBox allows embedded Linux systems to have full functionality while minimizing disk space usage since it packages multiple utilities into a single binary.
While Android’s use in mobile and embedded systems is now common, details about how to debug and develop in its internals are still hard to come by. This session will cover the tools, techniques and hacks that developers can use to debug difficult problems within the Android stack.
View this presentation on YouTube:
https://www.youtube.com/watch?v=vnoY9WwEwIc
Kernel developers may have experience in writing makefiles for the linux kernel. In many cases, maybe just adding lines like
"obj-$(CONFIG_FOO) += foo.o" to a makefile. But, probably there
is not many people really know what's going on behind this cool
build system.
In this talk, Cao jin will dive into the Kbuild internals. Starting from
the basics of GNU Make, he will explain how Kbuild works, and in the end, produces vmlinux, bzImage, modules. The talk will also focus on some smart tricks used in Kbuild. At last, he will give a introduction about how Xen project is related with this config/build system.
The default applications on an embedded Linux system include many common command line utilities from BusyBox, such as cat, cp, grep, ls, mkdir, more, mv, ping, ps, rm, top, and vi. BusyBox provides minimal versions of many common UNIX commands in a single executable to reduce the size of the system. Other default applications may include services like bootchartd, crond, and syslogd.
The document discusses Yocto, an open source embedded Linux development framework. It provides an overview of Yocto's components and build process, including BitBake, metadata, tasks, layers, and generating images. It also describes exploring and customizing a Yocto build system, such as adding layers and configuring the build.
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...Erich Beyrent
Drupal 8 provides a robust configuration management system which represents a paradigm shift from previous versions of Drupal. It's now easier than ever to represent your configuration in code and manage it with source control. However, that may not be enough.
This session will propose a new strategy for thinking about Drupal 8 configuration, treating it as just another dependency, managed the same way code dependencies are managed with Composer.
We'll cover:
Drupal 8 configuration management overview
New ways of managing your git repository
Composer and Drupal Console
Drupal 8 multisite considerations
Android Platform Debugging and DevelopmentOpersys inc.
This document provides an overview and agenda for a presentation on Android platform debugging and development. It covers:
1. An introduction to Android architecture basics like hardware, AOSP, Binder and system services.
2. Setting up the development environment, including host/target systems, IDEs like Android Studio, and exploring the AOSP sources.
3. Tools for observing and monitoring at the native, framework and overall system level, including logcat, dumpsys, and third party apps.
4. Interfacing with the framework using commands like am, pm and wm, and service calls.
5. Tips for working with the AOSP source code using make targets and other build tools.
EclipseCon Eu 2012 - Buildroot Eclipse Bundle : A powerful IDE for Embedded L...melbats
Buildroot is a tool designed by embedded Linux developers to build embedded Linux systems using cross-compilation. It allows to build a cross-compilation toolchain (or re-use an existing one), a root filesystem image with applications and libraries, a kernel image and a bootloader image or any combination of these. Buildroot is typically used to create the embedded Linux systems of industrial systems based on the ARM, PowerPC or x86 architectures, by integrating multiple existing open-source components (kernel, base components, graphical libraries, networking applications, etc.) and in-house components specific to the embedded system.
Many of the early embedded Linux developers are used to work with text editors such as Emacs or Vi. However, in the recent years, the major expansion of the embedded Linux platform has attracted many more developers that are more familiar with feature-full, integrated, and user-friendly development environments. To fulfill this need, Eclipse provides an excellent platform, especially with extensions such as CDT, the Autotools plugin, the multiple plugins from the Linux tools project, the Target Communication Framework, and more.
As many embedded Linux developers use Buildroot to build their system, it sounded natural to provide an easy-to-use integration with Eclipse. To achieve that, we:
Developed an Eclipse plugin that automatically registers the available Buildroot toolchains into Eclipse CDT. This allows application developers to transparently build their application, and then execute it and debug it on the embedded target platform directly within Eclipse.
Created a specialized Eclipse version bundling all the useful existing plug-ins for embedded Linux developers: Eclipse CDT, our specialized Buildroot plugin, the Autotools plugin, Linux Tools plugins, etc.
Through this talk, we would like to demonstrate how Eclipse has been extended to match the needs of embedded Linux developers, and we will perform a live demonstration of these capabilities using an ARM development platform for which Eclipse will help build, execute and debug applications.
At the event was discussed what the developer can use to repair an application or a game if it has graphic display problems. Also, speakers gave an overview of the Mesa library and its development process.
This presentation by Vadym Shovkoplias and Andrew Khulap (Senior Software Engineers, Consultants, GlobalLogic), was delivered at GlobalLogic Kharkiv Embedded TechTalk #2 on June 4, 2018.
Video: https://youtu.be/pT1Y81KGHkM
The document provides an overview of various development tools, including Maven, Spring MVC Test, Docker, and GitHub Actions. It discusses project management and builds with Maven, in-container testing with Spring MVC Test, and continuous integration and delivery with Docker and GitHub Actions. Maven is presented as a build tool that defines a project's structure and dependencies. Spring MVC Test allows testing web applications within a Spring container. Docker and GitHub Actions enable continuous integration, with Docker providing containerization and GitHub Actions automating the build process.
This document discusses tools for Magento programmers, including text editors, IDEs, and other development tools. It recommends Visual Studio Code as a free and feature-rich IDE, noting important extensions like PHP Intelephense, PHP Debug, and Code Sniffer. PHPStorm is also mentioned as a popular commercial IDE for Magento. The document provides information on database tools like DBeaver and MySQL Workbench and emphasizes the importance of tools for writing optimized, standard, and secure code.
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul
Artificial intelligence is changing how businesses operate. Companies are using AI agents to automate tasks, reduce time spent on repetitive work, and focus more on high-value activities. Noah Loul, an AI strategist and entrepreneur, has helped dozens of companies streamline their operations using smart automation. He believes AI agents aren't just tools—they're workers that take on repeatable tasks so your human team can focus on what matters. If you want to reduce time waste and increase output, AI agents are the next move.
Procurement Insights Cost To Value Guide.pptxJon Hansen
Procurement Insights integrated Historic Procurement Industry Archives, serves as a powerful complement — not a competitor — to other procurement industry firms. It fills critical gaps in depth, agility, and contextual insight that most traditional analyst and association models overlook.
Learn more about this value- driven proprietary service offering here.
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, presentation slides, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Aqusag Technologies
In late April 2025, a significant portion of Europe, particularly Spain, Portugal, and parts of southern France, experienced widespread, rolling power outages that continue to affect millions of residents, businesses, and infrastructure systems.
Mobile App Development Company in Saudi ArabiaSteve Jonas
EmizenTech is a globally recognized software development company, proudly serving businesses since 2013. With over 11+ years of industry experience and a team of 200+ skilled professionals, we have successfully delivered 1200+ projects across various sectors. As a leading Mobile App Development Company In Saudi Arabia we offer end-to-end solutions for iOS, Android, and cross-platform applications. Our apps are known for their user-friendly interfaces, scalability, high performance, and strong security features. We tailor each mobile application to meet the unique needs of different industries, ensuring a seamless user experience. EmizenTech is committed to turning your vision into a powerful digital product that drives growth, innovation, and long-term success in the competitive mobile landscape of Saudi Arabia.
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfAbi john
Analyze the growth of meme coins from mere online jokes to potential assets in the digital economy. Explore the community, culture, and utility as they elevate themselves to a new era in cryptocurrency.
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxshyamraj55
We’re bringing the TDX energy to our community with 2 power-packed sessions:
🛠️ Workshop: MuleSoft for Agentforce
Explore the new version of our hands-on workshop featuring the latest Topic Center and API Catalog updates.
📄 Talk: Power Up Document Processing
Dive into smart automation with MuleSoft IDP, NLP, and Einstein AI for intelligent document workflows.
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...SOFTTECHHUB
I started my online journey with several hosting services before stumbling upon Ai EngineHost. At first, the idea of paying one fee and getting lifetime access seemed too good to pass up. The platform is built on reliable US-based servers, ensuring your projects run at high speeds and remain safe. Let me take you step by step through its benefits and features as I explain why this hosting solution is a perfect fit for digital entrepreneurs.
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
What is Model Context Protocol(MCP) - The new technology for communication bw...Vishnu Singh Chundawat
The MCP (Model Context Protocol) is a framework designed to manage context and interaction within complex systems. This SlideShare presentation will provide a detailed overview of the MCP Model, its applications, and how it plays a crucial role in improving communication and decision-making in distributed systems. We will explore the key concepts behind the protocol, including the importance of context, data management, and how this model enhances system adaptability and responsiveness. Ideal for software developers, system architects, and IT professionals, this presentation will offer valuable insights into how the MCP Model can streamline workflows, improve efficiency, and create more intuitive systems for a wide range of use cases.
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxJustin Reock
Building 10x Organizations with Modern Productivity Metrics
10x developers may be a myth, but 10x organizations are very real, as proven by the influential study performed in the 1980s, ‘The Coding War Games.’
Right now, here in early 2025, we seem to be experiencing YAPP (Yet Another Productivity Philosophy), and that philosophy is converging on developer experience. It seems that with every new method we invent for the delivery of products, whether physical or virtual, we reinvent productivity philosophies to go alongside them.
But which of these approaches actually work? DORA? SPACE? DevEx? What should we invest in and create urgency behind today, so that we don’t find ourselves having the same discussion again in a decade?
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc
Most consumers believe they’re making informed decisions about their personal data—adjusting privacy settings, blocking trackers, and opting out where they can. However, our new research reveals that while awareness is high, taking meaningful action is still lacking. On the corporate side, many organizations report strong policies for managing third-party data and consumer consent yet fall short when it comes to consistency, accountability and transparency.
This session will explore the research findings from TrustArc’s Privacy Pulse Survey, examining consumer attitudes toward personal data collection and practical suggestions for corporate practices around purchasing third-party data.
Attendees will learn:
- Consumer awareness around data brokers and what consumers are doing to limit data collection
- How businesses assess third-party vendors and their consent management operations
- Where business preparedness needs improvement
- What these trends mean for the future of privacy governance and public trust
This discussion is essential for privacy, risk, and compliance professionals who want to ground their strategies in current data and prepare for what’s next in the privacy landscape.
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc
Android open source project build system phi innovations - android summit 2015
1. Building
My Product on
Android Open Source Project
Android Builders Summit 2015
Rafael Coutinho - Software Engineer
Phi Innovations
1
2. Agenda
● Motivation
● Build System Overview
● Simple Build
● Product Customization Structure
● Create My Own Products
● Summary
● Q&A
2
3. Motivation
● At work we design hardware, customize the operating
system, develop high level applications
● SoCs based on
● Freescale (iMX53, iMX6)
● Texas Instruments (Beaglebones)
● AllWinner (A20)
● FriendlyARM (Tiny210)
● Android basic porting are provided by these vendors
● However usually not in a standard way
3
4. Motivation
● Not in a standard way tricks we have found
● Shell scripts to define the Android variables during build.
● Shell scripts copied to the build that are executed on the init.rc and
then set the actual Android environment variables/configurations.
● Manually executed commands during build (like for compiling HALs)
● Provide a pre built tar file with the root file system to be copied over
the final build
● Hard time figuring out why our customizations do not go
thru the build in each provided AOSP porting
4
5. Motivation
● Looking for AOSP build process documentation we
have found it is scarce and what is available is old or
cached versions
● build/core/build-system.html - Starts with “Status: Draft (as of May 18, 2006)”
● KAndroid website with cached old version of the Android build
● Embedded Android book from Karim Yaghmour
● Free electrons training
● Some ABS previous presentations
● Usually deep and complete but also complex
5
6. Motivation
● Describe how to customize an AOSP for a target
product using the standard AOSP build mechanisms
● Making easier to extend/develop ported AOSPs on
customized boards
6
7. Android Build System
Build systems are software tools designed to automate the
process of program compilation.
Google defined a GNU/Make based build system for
Android
● Replacing Makefile files with Android.mk
● New imported modules must have it’s Makefiles “translated”
● No tool like menuconfig available by default
7
8. Android Build System Architecture
Originals at: www.opersys.com/training/embedded-android
8
9. Simple build
Execute the build once (to be fearless)
Build combo aosp_arm-eng
Simple build for development targeting emulator
9
10. Simple build
$ source build/envsetup.sh
$ lunch
You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_mips-eng
Which would you like? [aosp_arm-eng]
$ make -j16
Wait…
10
11. Simple build… envsetup
envsetup.sh
This script is for setting up the build environment on the
current shell
● adding macros
● type hmm to list all macros created
● godir - move to the directory containing a file
● m, mm, mmm - macros to start a build with different args
● cgrep - alias to execute grep on c/c++ files
● jgrep - alias to execute grep on java files
11
12. Simple build… lunch
lunch
● It lists all the combos available in the current
environment to be built
● By following all vendor/* and device/* folders looking for the
vendorsetup.sh files.
● vendorsetup.sh files actually executes the add_lunch_combo with
parameters
12
13. Simple build… combos
● A build combo are combination of a product to build and
the variant to use.
● product (TARGET_PRODUCT)
● A product defines how the final Android image is, selecting it’s services, initialization,
applications to install etc. For example aosp - for emulators.
● build variant (TARGET_BUILD_VARIANT) select the purpose of this
build. The options are:
● user: Includes modules tagged user, usually used for final release.
● userdebug: Includes modules tagged user or debug. Usually for platform testing.
● eng: Includes modules tagged user, debug or eng. Usually for development phase.
13
14. Simple build… env variables
lunch sets env variables used by the build.
PATH $ANDROID_JAVA_TOOLCHAIN:$PATH:$ANDROID_BUILD_PATHS
ANDROID_EABI_TOOLCHAIN aosp-root/prebuilt/linux-x86/toolchain/arm-
eabi-4.4.3/bin
ANDROID_TOOLCHAIN $ANDROID_EABI_TOOLCHAIN
ANDROID_BUILD_TOP aosp-root
ANDROID_PRODUCT_OUT aosp-root/out/target/product/generic (has an alias OUT)
TARGET_BUILD_VARIANT eng,user,userdebug
TARGET_BUILD_TYPE debug or release
14
15. Simple build… output
The build output is generated in the folder defined by
● ANDROID_PRODUCT_OUT usually aosp/out
The output is composed by modules built for the host
system and target ones
● The system image is created in target folder under a
directory named with the target product name
● aosp/out/target/product/aosp/
15
16. Simple build… images
The following files (among others) are created:
● ramdisk.img
● Contains the root file system of Android, including
● init.* configuration files
● default.prop containing the read only properties of this AOSP build
● /system mounting point
● system.img
● Contains the components generated by the AOSP build, including
● framework, applications, daemons
16
17. Simple build… images
● userdata.img
● Partition to hold the user data. Usually empty after the build
● recovery.img, ramdisk-recovery.img
● basic image partition used to recover user data or even the actual
system if anything goes wrong.
17
18. Simple build… emulator
● Open emulator for testing
● Build has set up PATH var to point to an
emulator executable.
emulator -show-kernel -shell
● Model number
● Build number
18
19. Product customization structure
● The aosp-root/device folder
contains the customizations
● Building procedures and extensions for the
targeted “Android based product” of this
build.
● Devices are grouped by vendor
● Each device have one or more
products and boards.
19
21. Android product makefile
● AndroidProducts.mk list the products of this vendor
setting the PRODUCT_MAKEFILES build variable
● For instance the device/generic/qemu/AndroidProducts.mk
As reference check build/target/product/AndroidProducts.mk
21
22. Android product makefile
● A product makefile (full_<product_name>.mk) contains
the product properties (name, version etc) and extras like
modules/programs or prebuilt files to be included in the
build.
● It could include/inherit from other predefined mk files
from build/target/product/
● It must define its boards makefile
● device_<board_name>.mk
As reference check build/target/product/
22
23. Android product makefile
● Product properties
● PRODUCT_NAME := aosp_arm
● This is the name that will appear in the lunch combo option. This must match this
product folder under devices folder.
● PRODUCT_DEVICE := generic
● This must match the device’s sub directory. TARGET_DEVICE derives from this
variable.
● PRODUCT_MODEL := AOSP on ARM Emulator
● The end-user-visible name for the end product.
23
24. Android product makefile
● Product files to copy
PRODUCT_COPY_FILES := device/sample/etc/apns-conf_br.xml:
system/etc/apns-conf.xml device/ti/panda/media_codecs.xml:
system/etc/media_codecs.xml device/ti/panda/init.rc:root/init.rc
● Forces the copy of those files on the final build
24
25. Android product makefile
● Modules to be included
PRODUCT_PACKAGES +=
my_own_service_module
CustomGallery
lib4mywifi
● Defines which modules, besides any inherited (due to the ‘+’ before
the equals), we want to include on the build.
● It could include libs/apps that are only defined under
device/<my_company>/<my_product>.
25
26. Android product makefile
● Overriding frameworks/packages config/layout files
PRODUCT_PACKAGE_OVERLAYS :=
device/<my_company>/<my_product>/overlay
● Defines a directory that will override the AOSP sources.
● Avoid changing the frameworks folder directly
● The sub folders must have the same AOSP root structure.
device/<my_company>/<my_product>/overlay/frameworks/base/c
ore/res/res/values/config.xml
26
27. Android product makefile
● Common overlayed files
frameworks/base/core/res/res/values/config.xml
● config_supportAutoRotation
● Enables auto rotation support
● config_longPressOnPowerBehavior
● defines if pressing power button show a global actions menu, only power off or do
nothing.
● config_shortPressOnPowerBehavior
● Similar to above but with other options
● “Documented” here: https://github.
com/android/platform_frameworks_base/blob/master/core/res/res/values/config.xml
27
28. Android product makefile
● Common overlayed files
frameworks/base/core/res/res/drawable-
nodpi/default_wallpaper.jpg
● Replaces the default wallpaper with no Wallpaper service
customization
28
29. Android product inheritance
● Inherit to reuse
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk)
● Inheriting from full_base.mk would define most of the needed base
configurations.
● full_base inherits from
● AllAudio.mk
● Importing some audios for the system
● locales_full.mk
● Get lists of supported languages
● generic_no_telephony.mk
● Includes apps like Calendar, Music, Settings
● Besides includes wpa_supplicant
29
30. Android product inheritance
● Makefile inheritance
● In order to have the minimal configuration you need
embedded.mk
base.mk
core_minimal.mk
core.mk
generic_no_telephony.mk
full_base.mk
telephony.mk & aosp_base.mk
full_base_telephony.mk
30
31. Android product inheritance
● Other important make files
● emulator.mk
● Creates the emulator tools for this build.
● Must be included in the MKs in order to get it created.
● telephony.mk
● Includes Dialer and MMS apps
● Include the rild (radio interface layer daemon)
31
32. Android.mk
If there is any module is defined under
devices/<my_company>/<my_product>
folder to be built, an Android.mk file is needed to call
recursively the build on the sub folders.
32
34. BoardConfig.mk
Configures the board (hardware) related parameters
Usually in the same product folder, but could be separated:
device/<my_company>/<my_board>/
Defined by the PRODUCT_DEVICE
● Boot args for loading kernel
● Target CPU, CPU variant
● Partitions sizes
● Build compilation flags
34
36. device.mk
● A device makefile (device_<board_name>.mk) contains
the board properties
● Same variables used by the product makefile but now
more attached to the board
● May define this boards overlays
● DEVICE_PACKAGE_OVERLAYS
● It may include any board specific makefiles
As reference check build/target/board/
36
38. Creating my own product
● Organization “BossaNova” wants to create an Android
product called “Girl Of Ipanema” that runs on the “Tom
Jobim” board.
● This product basically allows a customer to have a customized
Android that has info about Girl Of Ipanema song.
● Create the organization folder under device folder
● Create the device folder where the product and board
files are located
● Customize it
38
39. Creating my own product
Folders/files structure
● Create bossanova organization folder
● Under bossanova
● Create board mk files
● device_tomjobim.mk (build/target/board/generic/device.mk)
● BoardConfig.mk (build/target/board/generic/BoardConfig.mk)
● AndroidProducts.mk
● full_girlofipanema.mk
● Create script to include this product combo into the lunch menu
● vendorsetup.sh
39
40. Creating my own product
Folders/files content
● AndroidProducts.mk
PRODUCT_MAKEFILES := $(LOCAL_DIR)/full_girlofipanema.mk
● device_tomjobim.mk
Includes Emulator’s make file
include $(SRC_TARGET_DIR)/product/emulator.mk
Define this devices overlay directory (Just wallpaper replacement)
DEVICE_PACKAGE_OVERLAYS := device/bossanova/tomjobim/boardoverlays
frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.jpg
40
41. Creating my own product
Folders/files content
● BoardConfig.mk
● Pretty much the emulator’s one
● Reducing the size of userdata partition to 256M
BOARD_USERDATAIMAGE_PARTITION_SIZE := 268435456
● vendorsetup.sh
● Added our combos
41
42. Creating my own product
Folders/files content
● full_girlofipanema.mk
Define products info (model, name, device…)
Setting this product overlay defining the launchers wallpaper
PRODUCT_PACKAGE_OVERLAYS := device/bossanova/tomjobim/goi_overlays
Customized config.xml overlay
config_toastDefaultGravity=top|center_horizontal
Set the languages to be included in the build
PRODUCT_LOCALES := en_US pt_BR
42
43. Creating my own product build
Build Girl of Ipanema’s Android for Tom Jobim board
$ source build/envsetup.sh
$ lunch
You're building on Linux
Lunch menu... pick a combo:
[..]
22. full_girlofipanema-userdebug
23. full_girlofipanema-user
24. full_girlofipanema-eng
Which would you like? [aosp_arm-eng] 22
make -j16
43
45. Create a second product
● Organization “BossaNova” wants to create another
Android product called “One Note Samba” that runs on
the “Tom Jobim” board.
● This product comes with a default prebuilt app to play
One Note Samba song repeatedly
● This is not a phone but a tablet
● Target market will be Brazil (so default language is
portuguese)
● Change the custom boot animation
45
46. Creating my own product
Folders/files structure
● Under bossanova
● Create product mk files
● full_onenotesamba.mk
● Update the following files
● AndroidProducts.mk
● vendorsetup.sh
● Create the custom app folder
46
48. Creating my own product
Folders/files content
● full_onenotesamba.mk
Add a new package to be included into the build, set the overlay folder and
the tablet characteristic
PRODUCT_PACKAGES += OneNoteSambaPlayer
PRODUCT_PACKAGE_OVERLAYS := device/bossanova/tomjobim/ons_overlays
PRODUCT_CHARACTERISTICS := tablet
PRODUCT_COPY_FILES += device/bossanova/tomjobim/bootanimation.zip:
system/media/bootanimation.zip
48
49. Creating my own product
Folders/files content
● full_onenotesamba.mk
Customized config.xml overlay (setting toast to be in the center)
config_toastDefaultGravity=center_vertical|center_horizontal
Set portuguese to be the default language
PRODUCT_LOCALES := pt_BR en_US
49
50. Adding a prebuilt app
Create a directory under tomjobim directory
devices/bossanova/tomjobim/OneNoteSambaApp
Copy the pre built apk file into it
Create the Android.mk for describing how to build it
50
51. Adding a prebuilt app
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Module name should match apk name to be installed.
LOCAL_MODULE := OneNoteSambaPlayer
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
include $(BUILD_PREBUILT)
51
52. Summary
● AOSP build system has standards mechanisms to allow
customizations
● Following them is important to allow others to expand
and customize your device
● However its documentation is mostly by reading the
code
52
53. References
Embedded Android, Karim J. Yaghmour - www.opersys.
com/training/embedded-android
Free electrons training - free-electrons.com/training/android
Jelly Bean Device Porting Walk through, Benjamin Zores, ABS 2013 -
speakerdeck.com/gxben/jelly-bean-device-porting-walkthrough
Zip File with Device Folder - phiinnovations.com/files/bossanova.zip
Phi Innovations - www.phiinnovations.com
53