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.
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
Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)Ron Munitz
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
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
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.
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
Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)Ron Munitz
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
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
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.
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
Presented by JP Dunning “.ronin” BlackHat Asia 2014; Demonstration of how to build a hardware based trojan at home. Create your own hardware of Trojan Virus. http://www.ehacking.net/2014/09/building-trojan-hardware-at-home.html
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
Presented by JP Dunning “.ronin” BlackHat Asia 2014; Demonstration of how to build a hardware based trojan at home. Create your own hardware of Trojan Virus. http://www.ehacking.net/2014/09/building-trojan-hardware-at-home.html
This presentation was given during the stakeholders meeting in New Delhi, September 2013. The NGO Gramalaya presented the organisation's work on expanding water and sanitation access to more than 100,000 households.
Power Point presentation for the November SLOAN C conference on Servant Leadership for Innovation and Collaboration for a Nationally Ranked Online Program
Power of the Platform: Andy Walker, BMC SoftwareBMC Software
The service management industry has a challenge in deploying, maintaining and extending workflow based environments that consolidate information across all user types, departments and lines of business areas. All too frequently we see an environment today that consists of too many systems, dis-jointed processes and poor collaboration.
View this presentaition to learn how BMC ITSM solutions build concepts, such as, extensibility, automation, and collaboration directly into the technology platform to help companies overcome challenges faced by many service management organisations.
THE VALUE OF AN ORGANISATION IS MORE THAN JUST THE FINANCIALS ALONE.
THE TRUE PICTURE IS REVEALED BY THE SUM TOTAL OF OUR ACTIONS.
WHEN SOCIAL AND ENVIRONMENTAL RESULTS ARE ADDED TO THE EQUATION,
WE GET THE TRUE VALUE.
AT AMBUJA WE ARE COMMITTED TO BETTERING OURSELVES IN EVERY SPHERE.
IT IS A PERSONAL MISSION TO INCREASE OUR TRUE VALUE
WITH EVERY YEAR THROUGH EVERY TASK WE UNDERTAKE DAILY
The PSCG's Ron Munitz's talk on MobSecCon, September 3rd, 2015.
A PDF is available in: http://thepscg.com/events/MobSecCon
Israel's first Android (and mobile) Internals conference coming up this November!
http://www.thepscg.com/events/MobModCon
Voxxed Days Villnius 2015 - Burning MarshmallowsRon Munitz
My talk from Voxxed Days Vilnius. In this talk we talked about the Android security model, how it has been affected by some publicly disclosed weaknesses in 2015, and what the Android Marshmallow future holds
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
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
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
BYOD Revisited: Build Your Own Device (Embedded Linux Conference 2014)Ron Munitz
My session at the Embedded Linux Conference, April 2014, San Jose, CA
Think about the software development routines in the last couple of years. Now think of how they used to be before the "explosion" of cloud services provided by Amazon, Google, Rackspace, Microsoft and the likes.
Even when putting aside distinguished niches such as Safety Critical platforms, and ignoring for the moment the buzz for project management "Agile" methodologies, you will probably notice that the Software Building Practices have completely changed.
You will notice That developing a Software product has become more of an integration effort due to the "explosion" of open source repositories for "high level" components, and that the proficient software developer has become a master of Lego craft.
Now take a look at what Embedded Systems were back at the time, and what it is becoming these days. Not only can one choose their set of components, in ever decreasing prices, sell hardware on kickstarter before even starting a prototype, but one can also replace old times designated HW/SW assembly and libraries, and choose from a variety of Powerful General Purpose Operating Systems that can run servers, desktops, phones, tablets, fitness bracelets, and their next product.
Development has definitely evolved. From mainframes to AWS.
From the V2 analog controller to processing monsters running Linux, Android, Tizen, Windows, FireFoxOS, or your next hand made operating system.
In this session, I am going to present key milestones in the evolution of the Internet of Things, focusing on the present and immediate future techniques for rapidly prototyping and building product stacks, and discuss the many similarities of building a modern Software stack, and a modern Hardware stack.
For Training/Consulting requests: info@thepscg.com
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Launch Your Streaming Platforms in MinutesRoshan Dwivedi
The claim of launching a streaming platform in minutes might be a bit of an exaggeration, but there are services that can significantly streamline the process. Here's a breakdown:
Pros of Speedy Streaming Platform Launch Services:
No coding required: These services often use drag-and-drop interfaces or pre-built templates, eliminating the need for programming knowledge.
Faster setup: Compared to building from scratch, these platforms can get you up and running much quicker.
All-in-one solutions: Many services offer features like content management systems (CMS), video players, and monetization tools, reducing the need for multiple integrations.
Things to Consider:
Limited customization: These platforms may offer less flexibility in design and functionality compared to custom-built solutions.
Scalability: As your audience grows, you might need to upgrade to a more robust platform or encounter limitations with the "quick launch" option.
Features: Carefully evaluate which features are included and if they meet your specific needs (e.g., live streaming, subscription options).
Examples of Services for Launching Streaming Platforms:
Muvi [muvi com]
Uscreen [usencreen tv]
Alternatives to Consider:
Existing Streaming platforms: Platforms like YouTube or Twitch might be suitable for basic streaming needs, though monetization options might be limited.
Custom Development: While more time-consuming, custom development offers the most control and flexibility for your platform.
Overall, launching a streaming platform in minutes might not be entirely realistic, but these services can significantly speed up the process compared to building from scratch. Carefully consider your needs and budget when choosing the best option for you.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Globus Connect Server Deep Dive - GlobusWorld 2024
Mob modcon 2015-android rom cooking tutorial
1. PSCG
Ron Munitz
Founder & CEO - The PSCG
ron@thepscg.com
http://thepscg.com/talks/2015
MobModCon Tel-
Aviv
November 2015
@ronubo
Android
ROM Cooking Tutorial
3. about://Ron Munitz
● Founder and CEO of the PSCG
○ The Premium Embedded/Android consulting and Training firm
● Instructor at The Linux Foundation
● Instructor at NewCircle
● Working on an awesome stealth startup
○ And looking for a tech wiz co-founder!!!
● Founder and (former) CTO of Nubo Software
○ The first Remote Android Workspace
● 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,...
PSCG
4. Agenda
● Introduction
○ You, Me, Android
● Introduction to Embedded Systems
○ Embedded Systems
○ Android Partition Layout
○ Lightning talk - Building the Android Emulator
● The Android Build System
○ Building an AOSP ROM from scratch
● Q&A
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 acheive 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)
7. Android History (2008-2009)
● 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
8. Android History (2010)
● 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
9. Android History (2011-2013)
● 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
○ And more...
10. Android History (2013-2014)
● 2013 - 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...
● 2014 - More platforms and form factors, Lollipop announced
○ Introducing: Android Wear
○ (Re) Introducing Android TV
○ Introducing: Android Lollipop
■ Material Design
■ 64 bit Android
■ Android for Work
11. Android History (2015)
● 2015
○ Introducing: Android Auto
○ Lollipop updates
■ Multiple SIM card support
■ Fixes of a disastrous memory leak bugs introduced in V. 5.0.1
■ Some more fixes
○ Android 6.0 (Marshmallow) is out:
■ Dynamic permission model, Fingerprint authentication API’s
(catching app with Apple and Samsung…), Google Now on TAP,
Doze battery saver mode, Android for Work updates, ...
■ Enforced verified boot, new security HALs and services
(gatekeeper, keymaster, keystore), Security Patch Level
■ New command line toy - toybox
■ and more...
○ Coming up in master: New build system. (No, it’s not gradle)
■ Anyone remembers Shinobi?
12. Android History (Future)
● Foreseeable future:
○ More devices
○ More power
○ More features
○ More apps
○ More developers
○ More competition
○ More embedded Android engineers required.
● Will Android be crowned as the new Embedded Linux?
● Android Internals EMEA - More Collaboration!
○ Join us - https://www.linkedin.com/groups/8413186
16. Platform version distribution (8/2013)
● Data collected during a 14-day period ending on August 1, 2013.
● Any versions with less than 0.1% distribution are not shown
20. OpenGL version distribution (4/2015)
All the distribution information is taken as is from http://developer.android.
com/about/dashboards/index.html
22. Agenda
● What is a "ROM"?
● Cross development
● Embedded Build Systems
● The Embedded Android ecosystem
● Android ROM structure
● Android Build Systems
23. 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
24. 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)
25. 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
26. 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
27. A quick detour for the novice
Embedded Build Systems
Primer
28. ● 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
30. 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
31. 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 (?)
...
?
32. 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
33. 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)
34. 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 …)
35. 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
36. 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.
37. Embedded Development Example -
The Android way - Flashing Nexus 5
● Assuming I would like to build the AOSP for my
hammerhead device.
○ The Host is My laptop, running Ubuntu 14.04 as its
Operating System.
○ The Target is an LG Nexus 5.
■ 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/hammerhead)
38. Embedded Development Example -
The Android way - Android Emulator
● Let’s build a aosp_x86-eng build variant of the AOSP.
○ The Host is My laptop, running Ubuntu 14.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)
● For the 64-bit Android Emulator use aosp_x86_64-eng
● Don’t be afraid to use production build variants (user,
userdebug)
○ Or make one of your own
40. 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
41. 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
42. 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”
45. 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?!
46. For a couple of reasons:
● Backup
● Recovery
● Software updates
● Error checking
● Board design
● Curiosity
● ...
Why should we care about it?
47. ● “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. Nexus 4/5/6/7/9/10,
Android Emulator, ...)
Android Open Source Project
48. ● 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 or Ubuntu 14.04 LTS for versions >= JB 4.2.1
○ mkdir / cd / repo init / repo sync
○ .build/envsetup.sh
○ lunch <Your Config>
○ make # This will take a while
○ Flash
○ Boot
○ Run/debug
AOSP ROM building
49. ● 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
50. Building Kernels
● 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-*
51. Getting the kernel sources
$ 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+/3.10+
● 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)
● x86_64 - Intel’s device tree
● Goldfish - Android emulator
52. A blast from the (not so far) past
● 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
53. Goldfish kernels
● 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…)
54. Vanilla (kernel.org) kernels
● 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 ⇒ Gradually getting in!
● 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.X/4.X goldfish porting.
TIP: ${ANDROID_BUILD_TOP}/external/qemu/distrib/build-kernel.sh
This is an invaluable tip for build systems prior to Lollipop.
The script was taken out in Lollipop - to make building kernels harder
55. Vanilla (kernel.org) kernels
● 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
56. make ARCH=x86 qemu_vanilla_config
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!
59. Using the Android Emulator
● 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
○ Note google changes of project QEMU :-(
● Windows users: Use HAXM (Intel's HW Acceleration
Manager)
60. Android Projects (Build Systems)
Various forks to the Android Open Source
Project:
● AOSP
○ The root of all (good?)
● Android-X86
● Android-IA
● CyanogenMod
○ Need to raise funds? Ask them how…
● And many others. Not all are known or open
sourced.
61. From 0 to 100 in:
Building: 1 hour.
Running: 1 second
Building a new Device
62. Agenda
● The build/ folder
● The device/ folder
● Adding a new device
● QEMU challenges
● No slides! (pay attention!)
○ See device tree at https://github.com/ronubo/
■ There are trees for several build systems
■ The AOSP trees work for all JB/Kitkat and Lollipop variants
○ A good visual reference of the Android build system
can be found in http://thepscg.com/talks/2015
■ An embedded Google Doc. Just for you to play along while I
present.
■ Builds on Marshmallow- but aas relevant as always
63. QEMU Challenges
● 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
● Advances in Nested Virtualization
○ Very hot and actual topic!
65. Since our time was very limited...
● You must have some more questions
● And I would be more than happy to answer
all of them!
● And after it (twitter, G+, email)
○ https://google.com/+RonMunitz
○ https://twitter.com/ronubo
● If you (your company) are serious about
what you do - talk to me about training
66. Further Training in Israel
Planned training in your area on 2015:
● Public courses
○ None :-)
○ Can be arranged upon request.
■ 5 day ROM cooking + Android Internals
■ 2 day ROM cooking and customization
● Using CyanoGenMod/AOSP/Android-IA
■ 3 day Android Internals
■ Other courses (see list and links to outlines on the next slide)
○ For more info: training@thepscg.com
■ Discount code: MobModCon2015
● On site/company specific training:
○ info@thepscg.com
67. Related Training
Instructor led training by Ron Munitz (See http://www.thepscg.com/home/fullcourseoutlinesaddedtothewebsite )
Android related
1. 5-Day Advanced Android Native Programming - System programming, for high performance native (NDK) application builders, and platform builders
2. 5-Day Android Bootcamp - Android Application Development bootcamp. From zero to hero in 5 days.
3. 5-Day Android Internals - Android Internals for Android platform builders. Embedded Android, device building, Android OS work and customization
Android Security
1. 5-Day Advanced Android Security - The most extensive Android security course in the market. It is a combination of the two (2 and 3 day
respectively) courses below.
2. 2-Day Advanced Android Secure Application Development - Android security for Application developers
3. 3-Day Enterprise Grade Android Security for Cyber Operations - Android security for security researchers, application developers, IT managers and
more
Linux Related
1. 5-Day Linux Application Development - Linux application development bootcamp
2. 5-Day Linux Kernel Bootcamp - Linux Kernel development bootcamp
3. 3-Day introduction to Linux for Developers - Effective Linux usage, for developers migrating to a Linux environment
Linux Security (There are also other courses which are not Linux specific)
1. 5-Day* Applied Cyber Security Training - Extensive course about applied Cyber Security, covering a wide range of areas on operations, application
security, incident response and more.
2. 5 Day Linux Security For IT Managers and System Administrators - In depth course about Linux security, attacks, defenses and hardening
Open Source (general)
1. 1-Day Open Source Development Model For Executives and Developers - Migrating to open source development model
2. 2-Day Git Essentials - Git training. Basics, day to day use, team work strategies, advanced plumbing (git internals)