SlideShare a Scribd company logo
1 of 86
Download to read offline
FROM STOCK TO
                                   CYANOGENMOD:
                            THE SONY ERICSSON CASE
                                             DROIDCON INDIA | NOVEMBER 19, 2011
                              DIOGO FERREIRA | DEFER@CYANOGENMOD.COM | @DEFER




Saturday, November 19, 11
INTRODUCTION




Saturday, November 19, 11
INTRODUCTION
                            OEM DEVICES RUN SLIGHTLY MODIFIED VERSIONS OF ANDROID

                               SPORTING FANCY FEATURES AND PERIPHERALS

                               ADDING UI CUSTOMIZATIONS




Saturday, November 19, 11
INTRODUCTION
                            OEM DEVICES RUN SLIGHTLY MODIFIED VERSIONS OF ANDROID

                               SPORTING FANCY FEATURES AND PERIPHERALS

                               ADDING UI CUSTOMIZATIONS

                            CYANOGENMOD SUPPORTS MANY DEVICES ACROSS DIFFERENT HARDWARE
                            PLATFORMS




Saturday, November 19, 11
INTRODUCTION
                            OEM DEVICES RUN SLIGHTLY MODIFIED VERSIONS OF ANDROID

                               SPORTING FANCY FEATURES AND PERIPHERALS

                               ADDING UI CUSTOMIZATIONS

                            CYANOGENMOD SUPPORTS MANY DEVICES ACROSS DIFFERENT HARDWARE
                            PLATFORMS

                            GET CM!

                               REPO INIT -U GIT://GITHUB.COM/CYANOGENMOD/ANDROID.GIT -B
                               GINGERBREAD

                               REPO SYNC -J4




Saturday, November 19, 11
THE RECOVERY
                                    PART ONE




Saturday, November 19, 11
PRELIMINARIES




Saturday, November 19, 11
PRELIMINARIES
                            KEEP A COPY OF THE STOCK SYSTEM FILES

                               ADB PULL /SYSTEM IS ENOUGH

                               THESE WILL BE NEEDED LATER ON!




Saturday, November 19, 11
PRELIMINARIES
                            KEEP A COPY OF THE STOCK SYSTEM FILES

                               ADB PULL /SYSTEM IS ENOUGH

                               THESE WILL BE NEEDED LATER ON!




Saturday, November 19, 11
PRELIMINARIES
                            KEEP A COPY OF THE STOCK SYSTEM FILES

                                ADB PULL /SYSTEM IS ENOUGH

                                THESE WILL BE NEEDED LATER ON!



                            BE FEARLESS, IT IS USUALLY VERY HARD TO BRICK A DEVICE




Saturday, November 19, 11
WE NEED A RECOVERY!




Saturday, November 19, 11
WE NEED A RECOVERY!




                            BACKUP THE ORIGINAL ROM




Saturday, November 19, 11
WE NEED A RECOVERY!




                            BACKUP THE ORIGINAL ROM

                            GO BACK TO IT ANYTIME




Saturday, November 19, 11
WE NEED A RECOVERY!




                            BACKUP THE ORIGINAL ROM

                            GO BACK TO IT ANYTIME

                            ENABLES YOU TO ACTUALLY FLASH
                            CM




Saturday, November 19, 11
WE NEED A RECOVERY!




                            BACKUP THE ORIGINAL ROM

                            GO BACK TO IT ANYTIME

                            ENABLES YOU TO ACTUALLY FLASH
                            CM




Saturday, November 19, 11
WE NEED A RECOVERY!




                            BACKUP THE ORIGINAL ROM

                            GO BACK TO IT ANYTIME

                            ENABLES YOU TO ACTUALLY FLASH
                            CM



                            BUT YOU NEED A DEVICE
                            REPOSITORY TO COMPILE IT




Saturday, November 19, 11
GETTING THINGS GOING




Saturday, November 19, 11
GETTING THINGS GOING
                            WE HAVE YOU COVERED!




Saturday, November 19, 11
GETTING THINGS GOING
                            WE HAVE YOU COVERED!

                            BUILD/TOOLS/DEVICE/MKVENDOR.SH <MANUFACTURER> <DEVICE> /PATH/TO/
                            YOUR/BOOT.IMG




Saturday, November 19, 11
GETTING THINGS GOING
                            WE HAVE YOU COVERED!

                            BUILD/TOOLS/DEVICE/MKVENDOR.SH <MANUFACTURER> <DEVICE> /PATH/TO/
                            YOUR/BOOT.IMG

                               BUILD/TOOLS/DEVICE/MKVENDOR.SH SEMC ANZU BOOT.IMG




Saturday, November 19, 11
GETTING THINGS GOING
                            WE HAVE YOU COVERED!

                            BUILD/TOOLS/DEVICE/MKVENDOR.SH <MANUFACTURER> <DEVICE> /PATH/TO/
                            YOUR/BOOT.IMG

                               BUILD/TOOLS/DEVICE/MKVENDOR.SH SEMC ANZU BOOT.IMG

                               WHERE DO I GET THE BOOT IMAGE?




Saturday, November 19, 11
GETTING THINGS GOING
                            WE HAVE YOU COVERED!

                            BUILD/TOOLS/DEVICE/MKVENDOR.SH <MANUFACTURER> <DEVICE> /PATH/TO/
                            YOUR/BOOT.IMG

                               BUILD/TOOLS/DEVICE/MKVENDOR.SH SEMC ANZU BOOT.IMG

                               WHERE DO I GET THE BOOT IMAGE?

                               DUMP_IMAGE BOOT /SDCARD/BOOT.IMG




Saturday, November 19, 11
GETTING THINGS GOING
                            WE HAVE YOU COVERED!

                            BUILD/TOOLS/DEVICE/MKVENDOR.SH <MANUFACTURER> <DEVICE> /PATH/TO/
                            YOUR/BOOT.IMG

                               BUILD/TOOLS/DEVICE/MKVENDOR.SH SEMC ANZU BOOT.IMG

                               WHERE DO I GET THE BOOT IMAGE?

                               DUMP_IMAGE BOOT /SDCARD/BOOT.IMG

                            YOU NOW HAVE YOUR BAREBONES DEVICE REPOSITORY OVER AT
                            MANUFACTURER/DEVICE




Saturday, November 19, 11
BUILDING A RECOVERY IMAGE
                            . BUILD/ENVSETUP.SH

                            LUNCH FULL_<DEVICE>-ENG

                               LUNCH FULL_ANZU-ENG

                            MAKE -J4 RECOVERYIMAGE

                            YOU WILL HAVE A RECOVERY IMAGE IN OUT/TARGET/PRODUCT/<DEVICE>/
                            RECOVERY.IMG




Saturday, November 19, 11
HOW DO I RUN IT?




Saturday, November 19, 11
HOW DO I RUN IT?
                            USUALLY:

                               FLASH_IMAGE RECOVERY RECOVERY.IMG




Saturday, November 19, 11
HOW DO I RUN IT?
                            USUALLY:

                               FLASH_IMAGE RECOVERY RECOVERY.IMG

                            RARELY:

                               FASTBOOT FLASH RECOVERY RECOVERY.IMG




Saturday, November 19, 11
HOW DO I RUN IT?
                            USUALLY:

                               FLASH_IMAGE RECOVERY RECOVERY.IMG

                            RARELY:

                               FASTBOOT FLASH RECOVERY RECOVERY.IMG

                            IN MY CASE:

                               FASTBOOT BOOT RECOVERY RECOVERY.IMG

                               FOR SONY ERICSSON, THERE IS NO DEDICATED RECOVERY PARTITION!




Saturday, November 19, 11
AND THEN THERE
                WAS A RECOVERY




Saturday, November 19, 11
AND THEN THERE
                WAS A RECOVERY

                            OR WAS THERE?




Saturday, November 19, 11
AND THEN THERE
                WAS A RECOVERY

                            OR WAS THERE?

                            SONY ERICSSON WAS THE FIRST TO
                            USE 32-BIT FRAMEBUFFERS

                               RECOVERY CODE NEEDED TO BE
                               ADAPTED

                               CHANGES GATHERED FROM
                               CODEAURORA FORUM




Saturday, November 19, 11
THE FIRST BOOT
                                      PART TWO




Saturday, November 19, 11
WHERE TO START?




Saturday, November 19, 11
WHERE TO START?
                            YOUR PREVIOUSLY CREATED DEVICE REPOSITORY!




Saturday, November 19, 11
WHERE TO START?
                            YOUR PREVIOUSLY CREATED DEVICE REPOSITORY!

                            BOARDCONFIG.MK

                               FILL IN THE BLANKS! THE BUILD SYSTEM NEEDS TO KNOW YOUR DEVICE

                               THERE IS PROBABLY A SIMILAR DEVICE IN THE TREE, USE IT!




Saturday, November 19, 11
WHERE TO START?
                            YOUR PREVIOUSLY CREATED DEVICE REPOSITORY!

                            BOARDCONFIG.MK

                               FILL IN THE BLANKS! THE BUILD SYSTEM NEEDS TO KNOW YOUR DEVICE

                               THERE IS PROBABLY A SIMILAR DEVICE IN THE TREE, USE IT!

                            FOR THE SONY ERICSSON ANZU:

                               TARGET_BOARD_PLATFORM := MSM7X30

                               TARGET_CPU_ABI := ARMEABI-V7A

                               ...




Saturday, November 19, 11
WHERE TO START?




Saturday, November 19, 11
WHERE TO START?
                            DEVICE_<DEVICE>.MK




Saturday, November 19, 11
WHERE TO START?
                            DEVICE_<DEVICE>.MK

                               TELL THE SYSTEM WHAT TO COMPILE!




Saturday, November 19, 11
WHERE TO START?
                            DEVICE_<DEVICE>.MK

                               TELL THE SYSTEM WHAT TO COMPILE!

                               DIFFERENT DEVICES HAVE DIFFERENT REQUIREMENTS




Saturday, November 19, 11
WHERE TO START?
                            DEVICE_<DEVICE>.MK

                               TELL THE SYSTEM WHAT TO COMPILE!

                               DIFFERENT DEVICES HAVE DIFFERENT REQUIREMENTS

                               FOR A PRELIMINARY BOOT YOU SHOULD BE OK USING THE DEFAULTS




Saturday, November 19, 11
WHERE TO START?
                            DEVICE_<DEVICE>.MK

                               TELL THE SYSTEM WHAT TO COMPILE!

                               DIFFERENT DEVICES HAVE DIFFERENT REQUIREMENTS

                               FOR A PRELIMINARY BOOT YOU SHOULD BE OK USING THE DEFAULTS

                                  BUT NOTHING WILL WORK




Saturday, November 19, 11
WHERE TO START?
                            DEVICE_<DEVICE>.MK

                                TELL THE SYSTEM WHAT TO COMPILE!

                                DIFFERENT DEVICES HAVE DIFFERENT REQUIREMENTS

                                FOR A PRELIMINARY BOOT YOU SHOULD BE OK USING THE DEFAULTS

                                   BUT NOTHING WILL WORK

                            BUILD IT!




Saturday, November 19, 11
WHERE TO START?
                            DEVICE_<DEVICE>.MK

                                TELL THE SYSTEM WHAT TO COMPILE!

                                DIFFERENT DEVICES HAVE DIFFERENT REQUIREMENTS

                                FOR A PRELIMINARY BOOT YOU SHOULD BE OK USING THE DEFAULTS

                                   BUT NOTHING WILL WORK

                            BUILD IT!

                            LUNCH FULL_<DEVICE>.MK




Saturday, November 19, 11
WHERE TO START?
                            DEVICE_<DEVICE>.MK

                                TELL THE SYSTEM WHAT TO COMPILE!

                                DIFFERENT DEVICES HAVE DIFFERENT REQUIREMENTS

                                FOR A PRELIMINARY BOOT YOU SHOULD BE OK USING THE DEFAULTS

                                   BUT NOTHING WILL WORK

                            BUILD IT!

                            LUNCH FULL_<DEVICE>.MK

                            MAKE -J4 OTAPACKAGE




Saturday, November 19, 11
THE FUN STARTS!

Saturday, November 19, 11
THE FUN STARTS!

Saturday, November 19, 11
PLATFORM SUPPORT
                                        PART THREE




Saturday, November 19, 11
WHAT ABOUT IT?
                            ANDROID NEEDS TO KNOW HOW TO TALK TO YOUR HARDWARE



                                               ANDROID FRAMEWORK / USERSPACE



                                            SENSORS   AUDIO    DISPLAY     ...


                                                          KERNEL


                                                        HARDWARE




Saturday, November 19, 11
ADDING PLATFORM SUPPORT




Saturday, November 19, 11
ADDING PLATFORM SUPPORT
                            USUALLY YOU DON’T NEED TO, CM ALREADY SUPPORTS:

                               OMAP3/4, TEGRA 2, QUALCOMM 7X30/8X60/8K




Saturday, November 19, 11
ADDING PLATFORM SUPPORT
                            USUALLY YOU DON’T NEED TO, CM ALREADY SUPPORTS:

                               OMAP3/4, TEGRA 2, QUALCOMM 7X30/8X60/8K

                            IF YOU DO, GET THEM FROM REFERENCE BOARD REPOS:

                               QUALCOMM: HTTP://WWW.CODEAURORA.ORG

                               TI: HTTP://WWW.OMAPZOOM.ORG

                               NVIDIA: HTTP://NV-TEGRA.NVIDIA.COM

                               LINARO: HTTP://WWW.LINARO.ORG




Saturday, November 19, 11
ADDING PLATFORM SUPPORT: CAVEATS	





Saturday, November 19, 11
ADDING PLATFORM SUPPORT: CAVEATS	

                            BEWARE: IT SHOULD BE CONTAINED




Saturday, November 19, 11
ADDING PLATFORM SUPPORT: CAVEATS	

                            BEWARE: IT SHOULD BE CONTAINED

                               YOU MUST ENSURE IT WILL NOT BREAK OTHER DEVICES




Saturday, November 19, 11
ADDING PLATFORM SUPPORT: CAVEATS	

                            BEWARE: IT SHOULD BE CONTAINED

                               YOU MUST ENSURE IT WILL NOT BREAK OTHER DEVICES

                               IF YOU REALLY MUST CHANGE THINGS OUTSIDE THE INTERFACE LAYERS:




Saturday, November 19, 11
ADDING PLATFORM SUPPORT: CAVEATS	

                            BEWARE: IT SHOULD BE CONTAINED

                               YOU MUST ENSURE IT WILL NOT BREAK OTHER DEVICES

                               IF YOU REALLY MUST CHANGE THINGS OUTSIDE THE INTERFACE LAYERS:

                                  BOARD CONFIG OPTION + #IFDEF




Saturday, November 19, 11
ADDING PLATFORM SUPPORT: CAVEATS	

                            BEWARE: IT SHOULD BE CONTAINED

                               YOU MUST ENSURE IT WILL NOT BREAK OTHER DEVICES

                               IF YOU REALLY MUST CHANGE THINGS OUTSIDE THE INTERFACE LAYERS:

                                  BOARD CONFIG OPTION + #IFDEF

                                  SYSTEM PROPERTY + ALTERNATING BRANCHES IN THE JAVA SIDE




Saturday, November 19, 11
HARDWARE ABSTRACTION LAYERS




Saturday, November 19, 11
HARDWARE ABSTRACTION LAYERS
                            THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL




Saturday, November 19, 11
HARDWARE ABSTRACTION LAYERS
                            THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL

                            LIGHTS, GPS, GRALLOC + OVERLAY, AUDIO, CAMERA, SENSORS




Saturday, November 19, 11
HARDWARE ABSTRACTION LAYERS
                            THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL

                            LIGHTS, GPS, GRALLOC + OVERLAY, AUDIO, CAMERA, SENSORS

                            A SET OF WELL-DEFINED APIS




Saturday, November 19, 11
HARDWARE ABSTRACTION LAYERS
                            THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL

                            LIGHTS, GPS, GRALLOC + OVERLAY, AUDIO, CAMERA, SENSORS

                            A SET OF WELL-DEFINED APIS

                               IF VENDORS FOLLOW THEM, WE CAN JUST USE PROPRIETARY HALS




Saturday, November 19, 11
HARDWARE ABSTRACTION LAYERS
                            THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL

                            LIGHTS, GPS, GRALLOC + OVERLAY, AUDIO, CAMERA, SENSORS

                            A SET OF WELL-DEFINED APIS

                               IF VENDORS FOLLOW THEM, WE CAN JUST USE PROPRIETARY HALS

                               IF THEY DO NOT, IT WILL BE A MIX OF:




Saturday, November 19, 11
HARDWARE ABSTRACTION LAYERS
                            THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL

                            LIGHTS, GPS, GRALLOC + OVERLAY, AUDIO, CAMERA, SENSORS

                            A SET OF WELL-DEFINED APIS

                               IF VENDORS FOLLOW THEM, WE CAN JUST USE PROPRIETARY HALS

                               IF THEY DO NOT, IT WILL BE A MIX OF:
                                  REFERENCE DESIGNS




Saturday, November 19, 11
HARDWARE ABSTRACTION LAYERS
                            THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL

                            LIGHTS, GPS, GRALLOC + OVERLAY, AUDIO, CAMERA, SENSORS

                            A SET OF WELL-DEFINED APIS

                               IF VENDORS FOLLOW THEM, WE CAN JUST USE PROPRIETARY HALS

                               IF THEY DO NOT, IT WILL BE A MIX OF:
                                  REFERENCE DESIGNS

                                  INTUITION




Saturday, November 19, 11
HARDWARE ABSTRACTION LAYERS
                            THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL

                            LIGHTS, GPS, GRALLOC + OVERLAY, AUDIO, CAMERA, SENSORS

                            A SET OF WELL-DEFINED APIS

                               IF VENDORS FOLLOW THEM, WE CAN JUST USE PROPRIETARY HALS

                               IF THEY DO NOT, IT WILL BE A MIX OF:
                                  REFERENCE DESIGNS

                                  INTUITION

                                  REVERSE ENGINEERING




Saturday, November 19, 11
SOLVING HAL API BREAKS
                OUR HEADER                        VENDOR’S HEADER
                CLASS CAMERAHARDWAREINTERFACE {   CLASS CAMERAHARDWAREINTERFACE {
                  VOID STARTCAMERA();               VOID STOPCAMERA();
                  VOID STOPCAMERA();                VOID STARTCAMERA();
                }                                 }




Saturday, November 19, 11
SOLVING HAL API BREAKS
                OUR HEADER                        VENDOR’S HEADER
                CLASS CAMERAHARDWAREINTERFACE {   CLASS CAMERAHARDWAREINTERFACE {
                  VOID STARTCAMERA(); 0X04          VOID STOPCAMERA();
                  VOID STOPCAMERA(); 0X08           VOID STARTCAMERA();
                }                                 }




Saturday, November 19, 11
SOLVING HAL API BREAKS
                OUR HEADER                        VENDOR’S HEADER
                CLASS CAMERAHARDWAREINTERFACE {   CLASS CAMERAHARDWAREINTERFACE {
                  VOID STARTCAMERA(); 0X04          VOID STOPCAMERA(); 0X04
                  VOID STOPCAMERA(); 0X08           VOID STARTCAMERA(); 0X08
                }                                 }




Saturday, November 19, 11
SOLVING HAL API BREAKS
                OUR HEADER                        VENDOR’S HEADER
                CLASS CAMERAHARDWAREINTERFACE {   CLASS CAMERAHARDWAREINTERFACE {
                  VOID STARTCAMERA(); 0X04          VOID STOPCAMERA(); 0X04
                  VOID STOPCAMERA(); 0X08           VOID STARTCAMERA(); 0X08
                }                                 }



              CAMERAHARDWAREINTERFACE *HW = GETHARDWARE(); HW = 0X38
              HW->STARTCAMERA();                           (*(0X38+0X04))();




Saturday, November 19, 11
#@#”!#$!”””!!!!!

Saturday, November 19, 11
SOLVING HAL BREAKS




Saturday, November 19, 11
SOLVING HAL BREAKS
                            COMPARE A KNOWN SOURCE WITH THE BINARY BLOB

                               NOTE DOWN THE OFFSETS FOR METHOD CALLS

                               ORDER THE HEADER APPROPRIATELY




Saturday, November 19, 11
SOLVING HAL BREAKS
                            COMPARE A KNOWN SOURCE WITH THE BINARY BLOB

                               NOTE DOWN THE OFFSETS FOR METHOD CALLS

                               ORDER THE HEADER APPROPRIATELY




Saturday, November 19, 11
SOLVING HAL BREAKS
                            COMPARE A KNOWN SOURCE WITH THE BINARY BLOB

                               NOTE DOWN THE OFFSETS FOR METHOD CALLS

                               ORDER THE HEADER APPROPRIATELY



                            VENDORS COULD EASILY AVOID BREAKING HALS:

                               ADD METHODS TO THE END OF HEADERS

                               STOP REORDERING THEM!




Saturday, November 19, 11
FOR SONY ERICSSON




Saturday, November 19, 11
FOR SONY ERICSSON
                            MOST OF THE HALS WERE GREAT

                               BUT THEY BROKE THE CAMERA API

                               REORDERING THE METHODS AFTER REVERSE ENGINEERING FIXED IT




Saturday, November 19, 11
FOR SONY ERICSSON
                            MOST OF THE HALS WERE GREAT

                               BUT THEY BROKE THE CAMERA API

                               REORDERING THE METHODS AFTER REVERSE ENGINEERING FIXED IT



                            ONCE THE HEADER IS REVERSED, WE ADD IT TO THE DEVICE REPOSITORY

                               HEADERS ARE COMMON FOR ALL DEVICES

                               IF YOU CHANGE THE GLOBAL ONE, THINGS WILL BREAK.




Saturday, November 19, 11
FOR SONY ERICSSON
                            8255 SOC FROM QUALCOMM

                               7X30 FAMILY, ALREADY SUPPORTED IN CYANOGENMOD

                               CUSTOM LIGHTS HAL

                               REMEMBER THE 32-BIT DISPLAY? GRALLOC DID TOO

                               PRECOMPILED BLOBS FOR GPS, SENSORS AND CAMERA

                                  SOMETIMES YOU JUST DON’T HAVE A CHOICE




Saturday, November 19, 11
CONCLUSIONS




Saturday, November 19, 11
CONCLUSIONS
                            PORTING A DEVICE IS NOT IMPOSSIBLE




Saturday, November 19, 11
CONCLUSIONS
                            PORTING A DEVICE IS NOT IMPOSSIBLE

                            YOU CAN’T BREAK OTHER DEVICES

                               THIS IS REALLY HARD!




Saturday, November 19, 11
CONCLUSIONS
                            PORTING A DEVICE IS NOT IMPOSSIBLE

                            YOU CAN’T BREAK OTHER DEVICES

                               THIS IS REALLY HARD!

                            IF THERE IS PLATFORM SUPPORT FOR YOUR DEVICE, SUPPORT CAN BE ADDED IN
                            A FEW HOURS

                               SOMETIMES AS FEW AS 15 MINUTES




Saturday, November 19, 11
CONCLUSIONS
                            PORTING A DEVICE IS NOT IMPOSSIBLE

                            YOU CAN’T BREAK OTHER DEVICES

                               THIS IS REALLY HARD!

                            IF THERE IS PLATFORM SUPPORT FOR YOUR DEVICE, SUPPORT CAN BE ADDED IN
                            A FEW HOURS

                               SOMETIMES AS FEW AS 15 MINUTES

                            ALWAYS CHECK OUT SIMILAR DEVICES

                               THE SAME SOC MEANS IT WILL BE SIMILAR




Saturday, November 19, 11
YOUR QUESTIONS
                                      PART FOUR




Saturday, November 19, 11

More Related Content

Recently uploaded

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Recently uploaded (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

Featured

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Featured (20)

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 

From stock to Cyanogenmod: The Sony Ericsson Case

  • 1. FROM STOCK TO CYANOGENMOD: THE SONY ERICSSON CASE DROIDCON INDIA | NOVEMBER 19, 2011 DIOGO FERREIRA | DEFER@CYANOGENMOD.COM | @DEFER Saturday, November 19, 11
  • 3. INTRODUCTION OEM DEVICES RUN SLIGHTLY MODIFIED VERSIONS OF ANDROID SPORTING FANCY FEATURES AND PERIPHERALS ADDING UI CUSTOMIZATIONS Saturday, November 19, 11
  • 4. INTRODUCTION OEM DEVICES RUN SLIGHTLY MODIFIED VERSIONS OF ANDROID SPORTING FANCY FEATURES AND PERIPHERALS ADDING UI CUSTOMIZATIONS CYANOGENMOD SUPPORTS MANY DEVICES ACROSS DIFFERENT HARDWARE PLATFORMS Saturday, November 19, 11
  • 5. INTRODUCTION OEM DEVICES RUN SLIGHTLY MODIFIED VERSIONS OF ANDROID SPORTING FANCY FEATURES AND PERIPHERALS ADDING UI CUSTOMIZATIONS CYANOGENMOD SUPPORTS MANY DEVICES ACROSS DIFFERENT HARDWARE PLATFORMS GET CM! REPO INIT -U GIT://GITHUB.COM/CYANOGENMOD/ANDROID.GIT -B GINGERBREAD REPO SYNC -J4 Saturday, November 19, 11
  • 6. THE RECOVERY PART ONE Saturday, November 19, 11
  • 8. PRELIMINARIES KEEP A COPY OF THE STOCK SYSTEM FILES ADB PULL /SYSTEM IS ENOUGH THESE WILL BE NEEDED LATER ON! Saturday, November 19, 11
  • 9. PRELIMINARIES KEEP A COPY OF THE STOCK SYSTEM FILES ADB PULL /SYSTEM IS ENOUGH THESE WILL BE NEEDED LATER ON! Saturday, November 19, 11
  • 10. PRELIMINARIES KEEP A COPY OF THE STOCK SYSTEM FILES ADB PULL /SYSTEM IS ENOUGH THESE WILL BE NEEDED LATER ON! BE FEARLESS, IT IS USUALLY VERY HARD TO BRICK A DEVICE Saturday, November 19, 11
  • 11. WE NEED A RECOVERY! Saturday, November 19, 11
  • 12. WE NEED A RECOVERY! BACKUP THE ORIGINAL ROM Saturday, November 19, 11
  • 13. WE NEED A RECOVERY! BACKUP THE ORIGINAL ROM GO BACK TO IT ANYTIME Saturday, November 19, 11
  • 14. WE NEED A RECOVERY! BACKUP THE ORIGINAL ROM GO BACK TO IT ANYTIME ENABLES YOU TO ACTUALLY FLASH CM Saturday, November 19, 11
  • 15. WE NEED A RECOVERY! BACKUP THE ORIGINAL ROM GO BACK TO IT ANYTIME ENABLES YOU TO ACTUALLY FLASH CM Saturday, November 19, 11
  • 16. WE NEED A RECOVERY! BACKUP THE ORIGINAL ROM GO BACK TO IT ANYTIME ENABLES YOU TO ACTUALLY FLASH CM BUT YOU NEED A DEVICE REPOSITORY TO COMPILE IT Saturday, November 19, 11
  • 18. GETTING THINGS GOING WE HAVE YOU COVERED! Saturday, November 19, 11
  • 19. GETTING THINGS GOING WE HAVE YOU COVERED! BUILD/TOOLS/DEVICE/MKVENDOR.SH <MANUFACTURER> <DEVICE> /PATH/TO/ YOUR/BOOT.IMG Saturday, November 19, 11
  • 20. GETTING THINGS GOING WE HAVE YOU COVERED! BUILD/TOOLS/DEVICE/MKVENDOR.SH <MANUFACTURER> <DEVICE> /PATH/TO/ YOUR/BOOT.IMG BUILD/TOOLS/DEVICE/MKVENDOR.SH SEMC ANZU BOOT.IMG Saturday, November 19, 11
  • 21. GETTING THINGS GOING WE HAVE YOU COVERED! BUILD/TOOLS/DEVICE/MKVENDOR.SH <MANUFACTURER> <DEVICE> /PATH/TO/ YOUR/BOOT.IMG BUILD/TOOLS/DEVICE/MKVENDOR.SH SEMC ANZU BOOT.IMG WHERE DO I GET THE BOOT IMAGE? Saturday, November 19, 11
  • 22. GETTING THINGS GOING WE HAVE YOU COVERED! BUILD/TOOLS/DEVICE/MKVENDOR.SH <MANUFACTURER> <DEVICE> /PATH/TO/ YOUR/BOOT.IMG BUILD/TOOLS/DEVICE/MKVENDOR.SH SEMC ANZU BOOT.IMG WHERE DO I GET THE BOOT IMAGE? DUMP_IMAGE BOOT /SDCARD/BOOT.IMG Saturday, November 19, 11
  • 23. GETTING THINGS GOING WE HAVE YOU COVERED! BUILD/TOOLS/DEVICE/MKVENDOR.SH <MANUFACTURER> <DEVICE> /PATH/TO/ YOUR/BOOT.IMG BUILD/TOOLS/DEVICE/MKVENDOR.SH SEMC ANZU BOOT.IMG WHERE DO I GET THE BOOT IMAGE? DUMP_IMAGE BOOT /SDCARD/BOOT.IMG YOU NOW HAVE YOUR BAREBONES DEVICE REPOSITORY OVER AT MANUFACTURER/DEVICE Saturday, November 19, 11
  • 24. BUILDING A RECOVERY IMAGE . BUILD/ENVSETUP.SH LUNCH FULL_<DEVICE>-ENG LUNCH FULL_ANZU-ENG MAKE -J4 RECOVERYIMAGE YOU WILL HAVE A RECOVERY IMAGE IN OUT/TARGET/PRODUCT/<DEVICE>/ RECOVERY.IMG Saturday, November 19, 11
  • 25. HOW DO I RUN IT? Saturday, November 19, 11
  • 26. HOW DO I RUN IT? USUALLY: FLASH_IMAGE RECOVERY RECOVERY.IMG Saturday, November 19, 11
  • 27. HOW DO I RUN IT? USUALLY: FLASH_IMAGE RECOVERY RECOVERY.IMG RARELY: FASTBOOT FLASH RECOVERY RECOVERY.IMG Saturday, November 19, 11
  • 28. HOW DO I RUN IT? USUALLY: FLASH_IMAGE RECOVERY RECOVERY.IMG RARELY: FASTBOOT FLASH RECOVERY RECOVERY.IMG IN MY CASE: FASTBOOT BOOT RECOVERY RECOVERY.IMG FOR SONY ERICSSON, THERE IS NO DEDICATED RECOVERY PARTITION! Saturday, November 19, 11
  • 29. AND THEN THERE WAS A RECOVERY Saturday, November 19, 11
  • 30. AND THEN THERE WAS A RECOVERY OR WAS THERE? Saturday, November 19, 11
  • 31. AND THEN THERE WAS A RECOVERY OR WAS THERE? SONY ERICSSON WAS THE FIRST TO USE 32-BIT FRAMEBUFFERS RECOVERY CODE NEEDED TO BE ADAPTED CHANGES GATHERED FROM CODEAURORA FORUM Saturday, November 19, 11
  • 32. THE FIRST BOOT PART TWO Saturday, November 19, 11
  • 33. WHERE TO START? Saturday, November 19, 11
  • 34. WHERE TO START? YOUR PREVIOUSLY CREATED DEVICE REPOSITORY! Saturday, November 19, 11
  • 35. WHERE TO START? YOUR PREVIOUSLY CREATED DEVICE REPOSITORY! BOARDCONFIG.MK FILL IN THE BLANKS! THE BUILD SYSTEM NEEDS TO KNOW YOUR DEVICE THERE IS PROBABLY A SIMILAR DEVICE IN THE TREE, USE IT! Saturday, November 19, 11
  • 36. WHERE TO START? YOUR PREVIOUSLY CREATED DEVICE REPOSITORY! BOARDCONFIG.MK FILL IN THE BLANKS! THE BUILD SYSTEM NEEDS TO KNOW YOUR DEVICE THERE IS PROBABLY A SIMILAR DEVICE IN THE TREE, USE IT! FOR THE SONY ERICSSON ANZU: TARGET_BOARD_PLATFORM := MSM7X30 TARGET_CPU_ABI := ARMEABI-V7A ... Saturday, November 19, 11
  • 37. WHERE TO START? Saturday, November 19, 11
  • 38. WHERE TO START? DEVICE_<DEVICE>.MK Saturday, November 19, 11
  • 39. WHERE TO START? DEVICE_<DEVICE>.MK TELL THE SYSTEM WHAT TO COMPILE! Saturday, November 19, 11
  • 40. WHERE TO START? DEVICE_<DEVICE>.MK TELL THE SYSTEM WHAT TO COMPILE! DIFFERENT DEVICES HAVE DIFFERENT REQUIREMENTS Saturday, November 19, 11
  • 41. WHERE TO START? DEVICE_<DEVICE>.MK TELL THE SYSTEM WHAT TO COMPILE! DIFFERENT DEVICES HAVE DIFFERENT REQUIREMENTS FOR A PRELIMINARY BOOT YOU SHOULD BE OK USING THE DEFAULTS Saturday, November 19, 11
  • 42. WHERE TO START? DEVICE_<DEVICE>.MK TELL THE SYSTEM WHAT TO COMPILE! DIFFERENT DEVICES HAVE DIFFERENT REQUIREMENTS FOR A PRELIMINARY BOOT YOU SHOULD BE OK USING THE DEFAULTS BUT NOTHING WILL WORK Saturday, November 19, 11
  • 43. WHERE TO START? DEVICE_<DEVICE>.MK TELL THE SYSTEM WHAT TO COMPILE! DIFFERENT DEVICES HAVE DIFFERENT REQUIREMENTS FOR A PRELIMINARY BOOT YOU SHOULD BE OK USING THE DEFAULTS BUT NOTHING WILL WORK BUILD IT! Saturday, November 19, 11
  • 44. WHERE TO START? DEVICE_<DEVICE>.MK TELL THE SYSTEM WHAT TO COMPILE! DIFFERENT DEVICES HAVE DIFFERENT REQUIREMENTS FOR A PRELIMINARY BOOT YOU SHOULD BE OK USING THE DEFAULTS BUT NOTHING WILL WORK BUILD IT! LUNCH FULL_<DEVICE>.MK Saturday, November 19, 11
  • 45. WHERE TO START? DEVICE_<DEVICE>.MK TELL THE SYSTEM WHAT TO COMPILE! DIFFERENT DEVICES HAVE DIFFERENT REQUIREMENTS FOR A PRELIMINARY BOOT YOU SHOULD BE OK USING THE DEFAULTS BUT NOTHING WILL WORK BUILD IT! LUNCH FULL_<DEVICE>.MK MAKE -J4 OTAPACKAGE Saturday, November 19, 11
  • 46. THE FUN STARTS! Saturday, November 19, 11
  • 47. THE FUN STARTS! Saturday, November 19, 11
  • 48. PLATFORM SUPPORT PART THREE Saturday, November 19, 11
  • 49. WHAT ABOUT IT? ANDROID NEEDS TO KNOW HOW TO TALK TO YOUR HARDWARE ANDROID FRAMEWORK / USERSPACE SENSORS AUDIO DISPLAY ... KERNEL HARDWARE Saturday, November 19, 11
  • 51. ADDING PLATFORM SUPPORT USUALLY YOU DON’T NEED TO, CM ALREADY SUPPORTS: OMAP3/4, TEGRA 2, QUALCOMM 7X30/8X60/8K Saturday, November 19, 11
  • 52. ADDING PLATFORM SUPPORT USUALLY YOU DON’T NEED TO, CM ALREADY SUPPORTS: OMAP3/4, TEGRA 2, QUALCOMM 7X30/8X60/8K IF YOU DO, GET THEM FROM REFERENCE BOARD REPOS: QUALCOMM: HTTP://WWW.CODEAURORA.ORG TI: HTTP://WWW.OMAPZOOM.ORG NVIDIA: HTTP://NV-TEGRA.NVIDIA.COM LINARO: HTTP://WWW.LINARO.ORG Saturday, November 19, 11
  • 53. ADDING PLATFORM SUPPORT: CAVEATS Saturday, November 19, 11
  • 54. ADDING PLATFORM SUPPORT: CAVEATS BEWARE: IT SHOULD BE CONTAINED Saturday, November 19, 11
  • 55. ADDING PLATFORM SUPPORT: CAVEATS BEWARE: IT SHOULD BE CONTAINED YOU MUST ENSURE IT WILL NOT BREAK OTHER DEVICES Saturday, November 19, 11
  • 56. ADDING PLATFORM SUPPORT: CAVEATS BEWARE: IT SHOULD BE CONTAINED YOU MUST ENSURE IT WILL NOT BREAK OTHER DEVICES IF YOU REALLY MUST CHANGE THINGS OUTSIDE THE INTERFACE LAYERS: Saturday, November 19, 11
  • 57. ADDING PLATFORM SUPPORT: CAVEATS BEWARE: IT SHOULD BE CONTAINED YOU MUST ENSURE IT WILL NOT BREAK OTHER DEVICES IF YOU REALLY MUST CHANGE THINGS OUTSIDE THE INTERFACE LAYERS: BOARD CONFIG OPTION + #IFDEF Saturday, November 19, 11
  • 58. ADDING PLATFORM SUPPORT: CAVEATS BEWARE: IT SHOULD BE CONTAINED YOU MUST ENSURE IT WILL NOT BREAK OTHER DEVICES IF YOU REALLY MUST CHANGE THINGS OUTSIDE THE INTERFACE LAYERS: BOARD CONFIG OPTION + #IFDEF SYSTEM PROPERTY + ALTERNATING BRANCHES IN THE JAVA SIDE Saturday, November 19, 11
  • 60. HARDWARE ABSTRACTION LAYERS THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL Saturday, November 19, 11
  • 61. HARDWARE ABSTRACTION LAYERS THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL LIGHTS, GPS, GRALLOC + OVERLAY, AUDIO, CAMERA, SENSORS Saturday, November 19, 11
  • 62. HARDWARE ABSTRACTION LAYERS THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL LIGHTS, GPS, GRALLOC + OVERLAY, AUDIO, CAMERA, SENSORS A SET OF WELL-DEFINED APIS Saturday, November 19, 11
  • 63. HARDWARE ABSTRACTION LAYERS THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL LIGHTS, GPS, GRALLOC + OVERLAY, AUDIO, CAMERA, SENSORS A SET OF WELL-DEFINED APIS IF VENDORS FOLLOW THEM, WE CAN JUST USE PROPRIETARY HALS Saturday, November 19, 11
  • 64. HARDWARE ABSTRACTION LAYERS THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL LIGHTS, GPS, GRALLOC + OVERLAY, AUDIO, CAMERA, SENSORS A SET OF WELL-DEFINED APIS IF VENDORS FOLLOW THEM, WE CAN JUST USE PROPRIETARY HALS IF THEY DO NOT, IT WILL BE A MIX OF: Saturday, November 19, 11
  • 65. HARDWARE ABSTRACTION LAYERS THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL LIGHTS, GPS, GRALLOC + OVERLAY, AUDIO, CAMERA, SENSORS A SET OF WELL-DEFINED APIS IF VENDORS FOLLOW THEM, WE CAN JUST USE PROPRIETARY HALS IF THEY DO NOT, IT WILL BE A MIX OF: REFERENCE DESIGNS Saturday, November 19, 11
  • 66. HARDWARE ABSTRACTION LAYERS THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL LIGHTS, GPS, GRALLOC + OVERLAY, AUDIO, CAMERA, SENSORS A SET OF WELL-DEFINED APIS IF VENDORS FOLLOW THEM, WE CAN JUST USE PROPRIETARY HALS IF THEY DO NOT, IT WILL BE A MIX OF: REFERENCE DESIGNS INTUITION Saturday, November 19, 11
  • 67. HARDWARE ABSTRACTION LAYERS THEY LIVE BETWEEN THE FRAMEWORK AND THE KERNEL LIGHTS, GPS, GRALLOC + OVERLAY, AUDIO, CAMERA, SENSORS A SET OF WELL-DEFINED APIS IF VENDORS FOLLOW THEM, WE CAN JUST USE PROPRIETARY HALS IF THEY DO NOT, IT WILL BE A MIX OF: REFERENCE DESIGNS INTUITION REVERSE ENGINEERING Saturday, November 19, 11
  • 68. SOLVING HAL API BREAKS OUR HEADER VENDOR’S HEADER CLASS CAMERAHARDWAREINTERFACE { CLASS CAMERAHARDWAREINTERFACE { VOID STARTCAMERA(); VOID STOPCAMERA(); VOID STOPCAMERA(); VOID STARTCAMERA(); } } Saturday, November 19, 11
  • 69. SOLVING HAL API BREAKS OUR HEADER VENDOR’S HEADER CLASS CAMERAHARDWAREINTERFACE { CLASS CAMERAHARDWAREINTERFACE { VOID STARTCAMERA(); 0X04 VOID STOPCAMERA(); VOID STOPCAMERA(); 0X08 VOID STARTCAMERA(); } } Saturday, November 19, 11
  • 70. SOLVING HAL API BREAKS OUR HEADER VENDOR’S HEADER CLASS CAMERAHARDWAREINTERFACE { CLASS CAMERAHARDWAREINTERFACE { VOID STARTCAMERA(); 0X04 VOID STOPCAMERA(); 0X04 VOID STOPCAMERA(); 0X08 VOID STARTCAMERA(); 0X08 } } Saturday, November 19, 11
  • 71. SOLVING HAL API BREAKS OUR HEADER VENDOR’S HEADER CLASS CAMERAHARDWAREINTERFACE { CLASS CAMERAHARDWAREINTERFACE { VOID STARTCAMERA(); 0X04 VOID STOPCAMERA(); 0X04 VOID STOPCAMERA(); 0X08 VOID STARTCAMERA(); 0X08 } } CAMERAHARDWAREINTERFACE *HW = GETHARDWARE(); HW = 0X38 HW->STARTCAMERA(); (*(0X38+0X04))(); Saturday, November 19, 11
  • 73. SOLVING HAL BREAKS Saturday, November 19, 11
  • 74. SOLVING HAL BREAKS COMPARE A KNOWN SOURCE WITH THE BINARY BLOB NOTE DOWN THE OFFSETS FOR METHOD CALLS ORDER THE HEADER APPROPRIATELY Saturday, November 19, 11
  • 75. SOLVING HAL BREAKS COMPARE A KNOWN SOURCE WITH THE BINARY BLOB NOTE DOWN THE OFFSETS FOR METHOD CALLS ORDER THE HEADER APPROPRIATELY Saturday, November 19, 11
  • 76. SOLVING HAL BREAKS COMPARE A KNOWN SOURCE WITH THE BINARY BLOB NOTE DOWN THE OFFSETS FOR METHOD CALLS ORDER THE HEADER APPROPRIATELY VENDORS COULD EASILY AVOID BREAKING HALS: ADD METHODS TO THE END OF HEADERS STOP REORDERING THEM! Saturday, November 19, 11
  • 77. FOR SONY ERICSSON Saturday, November 19, 11
  • 78. FOR SONY ERICSSON MOST OF THE HALS WERE GREAT BUT THEY BROKE THE CAMERA API REORDERING THE METHODS AFTER REVERSE ENGINEERING FIXED IT Saturday, November 19, 11
  • 79. FOR SONY ERICSSON MOST OF THE HALS WERE GREAT BUT THEY BROKE THE CAMERA API REORDERING THE METHODS AFTER REVERSE ENGINEERING FIXED IT ONCE THE HEADER IS REVERSED, WE ADD IT TO THE DEVICE REPOSITORY HEADERS ARE COMMON FOR ALL DEVICES IF YOU CHANGE THE GLOBAL ONE, THINGS WILL BREAK. Saturday, November 19, 11
  • 80. FOR SONY ERICSSON 8255 SOC FROM QUALCOMM 7X30 FAMILY, ALREADY SUPPORTED IN CYANOGENMOD CUSTOM LIGHTS HAL REMEMBER THE 32-BIT DISPLAY? GRALLOC DID TOO PRECOMPILED BLOBS FOR GPS, SENSORS AND CAMERA SOMETIMES YOU JUST DON’T HAVE A CHOICE Saturday, November 19, 11
  • 82. CONCLUSIONS PORTING A DEVICE IS NOT IMPOSSIBLE Saturday, November 19, 11
  • 83. CONCLUSIONS PORTING A DEVICE IS NOT IMPOSSIBLE YOU CAN’T BREAK OTHER DEVICES THIS IS REALLY HARD! Saturday, November 19, 11
  • 84. CONCLUSIONS PORTING A DEVICE IS NOT IMPOSSIBLE YOU CAN’T BREAK OTHER DEVICES THIS IS REALLY HARD! IF THERE IS PLATFORM SUPPORT FOR YOUR DEVICE, SUPPORT CAN BE ADDED IN A FEW HOURS SOMETIMES AS FEW AS 15 MINUTES Saturday, November 19, 11
  • 85. CONCLUSIONS PORTING A DEVICE IS NOT IMPOSSIBLE YOU CAN’T BREAK OTHER DEVICES THIS IS REALLY HARD! IF THERE IS PLATFORM SUPPORT FOR YOUR DEVICE, SUPPORT CAN BE ADDED IN A FEW HOURS SOMETIMES AS FEW AS 15 MINUTES ALWAYS CHECK OUT SIMILAR DEVICES THE SAME SOC MEANS IT WILL BE SIMILAR Saturday, November 19, 11
  • 86. YOUR QUESTIONS PART FOUR Saturday, November 19, 11