SlideShare une entreprise Scribd logo
1  sur  42
 
Peter McDermott 马 岩
The NthCode Team
Porting Google Android to a Nokia N810 也可以在 NthCode.com 看看
Hear-Say 150 Google Engineers 2 years US$100 Million 687,860,000 人民 币
HTC G1
 
Android Is Java applications Dalvik VM ‘ C’ libraries Linux kernel
Dalvik? Java-like virtual machine But not a Java Why? Google says performance But probably because of $$ Dalvik? Java-like virtual machine But not a Java Why? Google says performance But probably because of $$
Dalvik Write Java foo.java Compile to foo.class apkbuilder foo.class... -> foo.apk foo.apk has foo.dex + metadata Transfer to device Run Dalvik foo.apk
 
Why Did Google Create Android? An open platform Where Google can ... ... make money from advertising?
Google released all the code Open source Royalty free / 免 费 看看 source.android.com 21 October 2008
How Hard Could It Be? We Thought ...
 
Nokia N810 Hardware 400 MHz OMAP 2420 ARM9 800x480 4.1” touch screen 128M RAM 2G flash WiFi Keyboard ** Not a phone ** Runs Linux Maemo US$425 / 2900 元
How Do We Make the N810 Run Android?
Merge Linux Kernel 2.6.21 + N810 Patches Linux Kernel 2.6.25 + Android Patches
Nokia N810 Linux Kernel 2.6.21 + MultiMedia Card driver I2C serial bus driver Touch screen driver Keyboard map Audio and video DSP Direct Memory Access (DMA) Board revision patch System software is Maemo GTK-based Lots of hackers ( 牛 !)
Android Patches Linux Kernel 2.6.25 + Goldfish  YAFFS2 Bluetooth Scheduler IPC binder  Low memory killer Ashmem RAM console & logging Android Debug Bridge (ADB)  Power management Other changes
Goldfish Emulator CPU ARM926T Add 44 Files Not needed in real hardware
YAFFS2 Phones store data in flash memory YAFFS2 = Yet Another Flash File System 2 Optimized for NAND flash chips Add 35 Files Created by Charles Manning for Aleph1 GPL, but not in mainline kernel Integrated into Android by Google PCs store data on disks FAT, ext2, NTFS, xfs, afs ... All optimized for a spinning disk
Bluetooth  蓝呀 Change 10 files Fix headset bugs Add debugging Add access control
Scheduler Change 5 files Change impact not clear
IPC Binder InterProcess Communication (IPC) Add 2 files New kernel API Higher level IPC than standard UNIX
Low Memory Killer Add 3 files Scans processes, kills one New kernel API
Ashmem Anonymous SHared MEMory Add 3 files Named memory block Shared between processes Kernel can free Kernel can’t free standard SHMEM
RAM Console & Logging Add/change 3 files Puts kernel log in RAM Changes implementation Adds user space log read/write APIs New APIs
Android Debug Bridge (ADB) Add 3 files Connects Eclipse to an Android device USB Protocol
Power Management Add/change 5 files New APIs + changes
Other 36 files New APIs + changes Debugging Keypad lights TCP management ...
Which Kernel? Linux Kernel 2.6.21 Linux Kernel 2.6.25
Selected 2.6.25 ~75 files Drivers 163 files Some core OS User space quits if < 2.6.25
Port N810 to 2.6.25 MultiMedia Card driver I2C serial bus driver Touch screen driver Keyboard map Audio and video DSP Direct Memory Access (DMA) Board revision patch
Port N810 to 2.6.25 7 days Download Linux-OMAP git reset --hard v2.6.25-omap1 patch ... Compile/flash/debug/fix
Issue: WiFi No source for WiFi module Can’t recompile module  No WiFi
Apply Android Patches to 2.6.25 Based on Linux 2.6.25 Goldfish YAFFS2 Bluetooth Scheduler IPC binder  Low memory killer Ashmem RAM console & logging Android Debug Bridge (ADB)  Power management Other changes
Android 2 days Android and N810 changes independent
Bring-Up 9 days jffs2 mmap() doesn’t work Switched to ext2 -- data corruption Switched to ext3 -- OK System hang at boot.  Random reboots. Disabled watchdog Booted, but screen blank Applied a double-buffered video patch Sometimes booted, often crashed Copied libs to the N810, fixed crashes Touch screen wouldn’t work, changed power config Keypad not right, so changed keypad config
 
Next Steps Fix intermittent crashes WiFi Android Debug Bridge (ADB) Power off Battery charge
Peter McDermott [email_address] nthcode.com/pubs/porting-android-to-a-new-device.html

Contenu connexe

Tendances

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstAnne Nicolas
 
Kernel Recipes 2019 - BPF at Facebook
Kernel Recipes 2019 - BPF at FacebookKernel Recipes 2019 - BPF at Facebook
Kernel Recipes 2019 - BPF at FacebookAnne Nicolas
 
Kernel Recipes 2016 - Upstream Kernel Graphics is (Finally) Winning
Kernel Recipes 2016 - Upstream Kernel Graphics is (Finally) WinningKernel Recipes 2016 - Upstream Kernel Graphics is (Finally) Winning
Kernel Recipes 2016 - Upstream Kernel Graphics is (Finally) WinningAnne Nicolas
 
Distributed Compiler Icecc
Distributed Compiler IceccDistributed Compiler Icecc
Distributed Compiler IceccSZ Lin
 
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPFLinux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPFBrendan Gregg
 
Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011pundiramit
 
NetConf 2018 BPF Observability
NetConf 2018 BPF ObservabilityNetConf 2018 BPF Observability
NetConf 2018 BPF ObservabilityBrendan Gregg
 
Debugging linux issues with eBPF
Debugging linux issues with eBPFDebugging linux issues with eBPF
Debugging linux issues with eBPFIvan Babrou
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance AnalysisBrendan Gregg
 
Troubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support EngineerTroubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support EngineerJeff Anderson
 
Linux Tracing Superpowers by Eugene Pirogov
Linux Tracing Superpowers by Eugene PirogovLinux Tracing Superpowers by Eugene Pirogov
Linux Tracing Superpowers by Eugene PirogovPivorak MeetUp
 
bcc/BPF tools - Strategy, current tools, future challenges
bcc/BPF tools - Strategy, current tools, future challengesbcc/BPF tools - Strategy, current tools, future challenges
bcc/BPF tools - Strategy, current tools, future challengesIO Visor Project
 
UM2019 Extended BPF: A New Type of Software
UM2019 Extended BPF: A New Type of SoftwareUM2019 Extended BPF: A New Type of Software
UM2019 Extended BPF: A New Type of SoftwareBrendan Gregg
 
Kernel Recipes 2015: Speed up your kernel development cycle with QEMU
Kernel Recipes 2015: Speed up your kernel development cycle with QEMUKernel Recipes 2015: Speed up your kernel development cycle with QEMU
Kernel Recipes 2015: Speed up your kernel development cycle with QEMUAnne Nicolas
 
Long-term Maintenance Model of Embedded Industrial Linux Distribution
Long-term Maintenance Model of Embedded Industrial Linux DistributionLong-term Maintenance Model of Embedded Industrial Linux Distribution
Long-term Maintenance Model of Embedded Industrial Linux DistributionSZ Lin
 
Intel® RDT Hands-on Lab
Intel® RDT Hands-on LabIntel® RDT Hands-on Lab
Intel® RDT Hands-on LabMichelle Holley
 
Systems@Scale 2021 BPF Performance Getting Started
Systems@Scale 2021 BPF Performance Getting StartedSystems@Scale 2021 BPF Performance Getting Started
Systems@Scale 2021 BPF Performance Getting StartedBrendan Gregg
 
Kernel development
Kernel developmentKernel development
Kernel developmentNuno Martins
 

Tendances (20)

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream first
 
Kernel Recipes 2019 - BPF at Facebook
Kernel Recipes 2019 - BPF at FacebookKernel Recipes 2019 - BPF at Facebook
Kernel Recipes 2019 - BPF at Facebook
 
Kernel Recipes 2016 - Upstream Kernel Graphics is (Finally) Winning
Kernel Recipes 2016 - Upstream Kernel Graphics is (Finally) WinningKernel Recipes 2016 - Upstream Kernel Graphics is (Finally) Winning
Kernel Recipes 2016 - Upstream Kernel Graphics is (Finally) Winning
 
Distributed Compiler Icecc
Distributed Compiler IceccDistributed Compiler Icecc
Distributed Compiler Icecc
 
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPFLinux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPF
 
Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011
 
NetConf 2018 BPF Observability
NetConf 2018 BPF ObservabilityNetConf 2018 BPF Observability
NetConf 2018 BPF Observability
 
Debugging linux issues with eBPF
Debugging linux issues with eBPFDebugging linux issues with eBPF
Debugging linux issues with eBPF
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance Analysis
 
Troubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support EngineerTroubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support Engineer
 
Linux Tracing Superpowers by Eugene Pirogov
Linux Tracing Superpowers by Eugene PirogovLinux Tracing Superpowers by Eugene Pirogov
Linux Tracing Superpowers by Eugene Pirogov
 
bcc/BPF tools - Strategy, current tools, future challenges
bcc/BPF tools - Strategy, current tools, future challengesbcc/BPF tools - Strategy, current tools, future challenges
bcc/BPF tools - Strategy, current tools, future challenges
 
UM2019 Extended BPF: A New Type of Software
UM2019 Extended BPF: A New Type of SoftwareUM2019 Extended BPF: A New Type of Software
UM2019 Extended BPF: A New Type of Software
 
Kernel Recipes 2015: Speed up your kernel development cycle with QEMU
Kernel Recipes 2015: Speed up your kernel development cycle with QEMUKernel Recipes 2015: Speed up your kernel development cycle with QEMU
Kernel Recipes 2015: Speed up your kernel development cycle with QEMU
 
Dpdk applications
Dpdk applicationsDpdk applications
Dpdk applications
 
Long-term Maintenance Model of Embedded Industrial Linux Distribution
Long-term Maintenance Model of Embedded Industrial Linux DistributionLong-term Maintenance Model of Embedded Industrial Linux Distribution
Long-term Maintenance Model of Embedded Industrial Linux Distribution
 
Intel® RDT Hands-on Lab
Intel® RDT Hands-on LabIntel® RDT Hands-on Lab
Intel® RDT Hands-on Lab
 
Systems@Scale 2021 BPF Performance Getting Started
Systems@Scale 2021 BPF Performance Getting StartedSystems@Scale 2021 BPF Performance Getting Started
Systems@Scale 2021 BPF Performance Getting Started
 
Libpcap
LibpcapLibpcap
Libpcap
 
Kernel development
Kernel developmentKernel development
Kernel development
 

Similaire à NthCode - Porting Google Android To A Nokia N810

Porting Android ABS 2011
Porting Android ABS 2011Porting Android ABS 2011
Porting Android ABS 2011Opersys inc.
 
Android 2.3 Introduction
Android 2.3 IntroductionAndroid 2.3 Introduction
Android 2.3 IntroductionKan-Ru Chen
 
Open-source Android 10 on Orange Pi: myth or reality?
Open-source Android 10 on Orange Pi: myth or reality?Open-source Android 10 on Orange Pi: myth or reality?
Open-source Android 10 on Orange Pi: myth or reality?GlobalLogic Ukraine
 
Linaro and Android Kernel
Linaro and Android KernelLinaro and Android Kernel
Linaro and Android KernelJohn Lee
 
Windows 10 IoT Core on Raspberry Pi 2 Usine IO
Windows 10 IoT Core on Raspberry Pi 2 Usine IOWindows 10 IoT Core on Raspberry Pi 2 Usine IO
Windows 10 IoT Core on Raspberry Pi 2 Usine IOAlex Danvy
 
Cookies for kernel developers
Cookies for kernel developersCookies for kernel developers
Cookies for kernel developersMajor Hayden
 
Android developer tools
Android developer toolsAndroid developer tools
Android developer toolsinovex GmbH
 
Introduction To The Beagleboard
Introduction To The BeagleboardIntroduction To The Beagleboard
Introduction To The BeagleboardNeHal VeRma
 
TUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONE
TUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONETUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONE
TUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONEdede abdulah
 
ChromePad - Chromium OS for ThinkPad
ChromePad - Chromium OS for ThinkPadChromePad - Chromium OS for ThinkPad
ChromePad - Chromium OS for ThinkPadAndrewWright224
 
Windows Mobile 6.5 메모리관리
Windows Mobile 6.5 메모리관리Windows Mobile 6.5 메모리관리
Windows Mobile 6.5 메모리관리Seo Jinho
 
ChromePad - Chromium OS ThinkPad X220
ChromePad - Chromium OS ThinkPad X220ChromePad - Chromium OS ThinkPad X220
ChromePad - Chromium OS ThinkPad X220AndrewWright224
 
7496_Hall 070204 Research Faculty Summit
7496_Hall 070204 Research Faculty Summit7496_Hall 070204 Research Faculty Summit
7496_Hall 070204 Research Faculty Summitwebuploader
 
The abcs of gpu
The abcs of gpuThe abcs of gpu
The abcs of gpuLiang Yan
 
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mãoWebinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mãoEmbarcados
 
Embedding Linux On The Encore Simputer
Embedding Linux On The Encore SimputerEmbedding Linux On The Encore Simputer
Embedding Linux On The Encore SimputerSatpal Parmar
 

Similaire à NthCode - Porting Google Android To A Nokia N810 (20)

Porting Android
Porting AndroidPorting Android
Porting Android
 
Porting Android
Porting AndroidPorting Android
Porting Android
 
Porting Android ABS 2011
Porting Android ABS 2011Porting Android ABS 2011
Porting Android ABS 2011
 
Android 2.3 Introduction
Android 2.3 IntroductionAndroid 2.3 Introduction
Android 2.3 Introduction
 
Open-source Android 10 on Orange Pi: myth or reality?
Open-source Android 10 on Orange Pi: myth or reality?Open-source Android 10 on Orange Pi: myth or reality?
Open-source Android 10 on Orange Pi: myth or reality?
 
Linaro and Android Kernel
Linaro and Android KernelLinaro and Android Kernel
Linaro and Android Kernel
 
Windows 10 IoT Core on Raspberry Pi 2 Usine IO
Windows 10 IoT Core on Raspberry Pi 2 Usine IOWindows 10 IoT Core on Raspberry Pi 2 Usine IO
Windows 10 IoT Core on Raspberry Pi 2 Usine IO
 
Cookies for kernel developers
Cookies for kernel developersCookies for kernel developers
Cookies for kernel developers
 
Android developer tools
Android developer toolsAndroid developer tools
Android developer tools
 
Venta
VentaVenta
Venta
 
Venta
VentaVenta
Venta
 
Introduction To The Beagleboard
Introduction To The BeagleboardIntroduction To The Beagleboard
Introduction To The Beagleboard
 
TUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONE
TUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONETUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONE
TUGAS MEMBUAT PRESENTASI TENTANG SPEC KOMPUTER DAN SMARTPHONE
 
ChromePad - Chromium OS for ThinkPad
ChromePad - Chromium OS for ThinkPadChromePad - Chromium OS for ThinkPad
ChromePad - Chromium OS for ThinkPad
 
Windows Mobile 6.5 메모리관리
Windows Mobile 6.5 메모리관리Windows Mobile 6.5 메모리관리
Windows Mobile 6.5 메모리관리
 
ChromePad - Chromium OS ThinkPad X220
ChromePad - Chromium OS ThinkPad X220ChromePad - Chromium OS ThinkPad X220
ChromePad - Chromium OS ThinkPad X220
 
7496_Hall 070204 Research Faculty Summit
7496_Hall 070204 Research Faculty Summit7496_Hall 070204 Research Faculty Summit
7496_Hall 070204 Research Faculty Summit
 
The abcs of gpu
The abcs of gpuThe abcs of gpu
The abcs of gpu
 
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mãoWebinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
Webinar: NVIDIA JETSON – A Inteligência Artificial na palma de sua mão
 
Embedding Linux On The Encore Simputer
Embedding Linux On The Encore SimputerEmbedding Linux On The Encore Simputer
Embedding Linux On The Encore Simputer
 

Dernier

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 

Dernier (20)

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

NthCode - Porting Google Android To A Nokia N810

  • 1.  
  • 4. Porting Google Android to a Nokia N810 也可以在 NthCode.com 看看
  • 5. Hear-Say 150 Google Engineers 2 years US$100 Million 687,860,000 人民 币
  • 7.  
  • 8. Android Is Java applications Dalvik VM ‘ C’ libraries Linux kernel
  • 9. Dalvik? Java-like virtual machine But not a Java Why? Google says performance But probably because of $$ Dalvik? Java-like virtual machine But not a Java Why? Google says performance But probably because of $$
  • 10. Dalvik Write Java foo.java Compile to foo.class apkbuilder foo.class... -> foo.apk foo.apk has foo.dex + metadata Transfer to device Run Dalvik foo.apk
  • 11.  
  • 12. Why Did Google Create Android? An open platform Where Google can ... ... make money from advertising?
  • 13. Google released all the code Open source Royalty free / 免 费 看看 source.android.com 21 October 2008
  • 14. How Hard Could It Be? We Thought ...
  • 15.  
  • 16. Nokia N810 Hardware 400 MHz OMAP 2420 ARM9 800x480 4.1” touch screen 128M RAM 2G flash WiFi Keyboard ** Not a phone ** Runs Linux Maemo US$425 / 2900 元
  • 17. How Do We Make the N810 Run Android?
  • 18. Merge Linux Kernel 2.6.21 + N810 Patches Linux Kernel 2.6.25 + Android Patches
  • 19. Nokia N810 Linux Kernel 2.6.21 + MultiMedia Card driver I2C serial bus driver Touch screen driver Keyboard map Audio and video DSP Direct Memory Access (DMA) Board revision patch System software is Maemo GTK-based Lots of hackers ( 牛 !)
  • 20. Android Patches Linux Kernel 2.6.25 + Goldfish YAFFS2 Bluetooth Scheduler IPC binder Low memory killer Ashmem RAM console & logging Android Debug Bridge (ADB) Power management Other changes
  • 21. Goldfish Emulator CPU ARM926T Add 44 Files Not needed in real hardware
  • 22. YAFFS2 Phones store data in flash memory YAFFS2 = Yet Another Flash File System 2 Optimized for NAND flash chips Add 35 Files Created by Charles Manning for Aleph1 GPL, but not in mainline kernel Integrated into Android by Google PCs store data on disks FAT, ext2, NTFS, xfs, afs ... All optimized for a spinning disk
  • 23. Bluetooth 蓝呀 Change 10 files Fix headset bugs Add debugging Add access control
  • 24. Scheduler Change 5 files Change impact not clear
  • 25. IPC Binder InterProcess Communication (IPC) Add 2 files New kernel API Higher level IPC than standard UNIX
  • 26. Low Memory Killer Add 3 files Scans processes, kills one New kernel API
  • 27. Ashmem Anonymous SHared MEMory Add 3 files Named memory block Shared between processes Kernel can free Kernel can’t free standard SHMEM
  • 28. RAM Console & Logging Add/change 3 files Puts kernel log in RAM Changes implementation Adds user space log read/write APIs New APIs
  • 29. Android Debug Bridge (ADB) Add 3 files Connects Eclipse to an Android device USB Protocol
  • 30. Power Management Add/change 5 files New APIs + changes
  • 31. Other 36 files New APIs + changes Debugging Keypad lights TCP management ...
  • 32. Which Kernel? Linux Kernel 2.6.21 Linux Kernel 2.6.25
  • 33. Selected 2.6.25 ~75 files Drivers 163 files Some core OS User space quits if < 2.6.25
  • 34. Port N810 to 2.6.25 MultiMedia Card driver I2C serial bus driver Touch screen driver Keyboard map Audio and video DSP Direct Memory Access (DMA) Board revision patch
  • 35. Port N810 to 2.6.25 7 days Download Linux-OMAP git reset --hard v2.6.25-omap1 patch ... Compile/flash/debug/fix
  • 36. Issue: WiFi No source for WiFi module Can’t recompile module No WiFi
  • 37. Apply Android Patches to 2.6.25 Based on Linux 2.6.25 Goldfish YAFFS2 Bluetooth Scheduler IPC binder Low memory killer Ashmem RAM console & logging Android Debug Bridge (ADB) Power management Other changes
  • 38. Android 2 days Android and N810 changes independent
  • 39. Bring-Up 9 days jffs2 mmap() doesn’t work Switched to ext2 -- data corruption Switched to ext3 -- OK System hang at boot. Random reboots. Disabled watchdog Booted, but screen blank Applied a double-buffered video patch Sometimes booted, often crashed Copied libs to the N810, fixed crashes Touch screen wouldn’t work, changed power config Keypad not right, so changed keypad config
  • 40.  
  • 41. Next Steps Fix intermittent crashes WiFi Android Debug Bridge (ADB) Power off Battery charge
  • 42. Peter McDermott [email_address] nthcode.com/pubs/porting-android-to-a-new-device.html