SlideShare uma empresa Scribd logo
1 de 33
The Path to SURFDROID

 An Android Rom Building Journey

               By

           Paul Dutot
The Path to SURFDROID
    Where did I get the idea to built a rom ?

    Android Internals by Marko Gargenta at
●   http://www.youtube.com/watch?v=1_H4AlQaNa0


    Google Android Source Page
●
    http://source.android.com/source/index.html
The Path to SURFDROID
               What do you need ?
●   Python 2.4 – 2.7
●   Java Development Kit (JDK) 6 for
    Gingerbread or JDK 5 for Froyo
●   Git 1.5.4 or newer
●   Dependencies listed on source.android.com
●   Correct usb access for adb
The Path to SURFDROID
           Update.zip Contents
Bootloader.bin – initial bootloader code
Boot.img – contains kernel and ramdisk
System.img – android system image
Recovery.img – system recovery image
Google directory containing update script &
binary
The Path to SURFDROID
  Update.zip Structure ( Type 1)
The Path to SURFDROID
  Update.zip Structure ( Type 2)
The Path to SURFDROID
       The Type 1 Updater Script Function
●   Mount the system Partition
●   Copy the files into system
●   Make symbolic links to xbin
●   Set correct permissions on files and
    directories
●   Flash the boot.img file
The Path to SURFDROID
       The Type 2 Updater Script Function
●   Flashes the bootloader.bin
●   Flashes the boot.img file
●   Flashes the system.img file
●   Flashes the recovery.img file
The Path to SURFDROID
   Development Environment
The Path to SURFDROID
  Notion Ink Partition Information
                2               7
              BCT              MSC
           Boot Config         data

                  3               8
                 PT             SOS
          Partition Table       data
                            recovery.img
                 4                9
               EBT              LNK
            bootloader          data
          bootloader.bin      boot.img
                 5               10
               NVC              APP
            bootloader          data
          microboot.bin      system.img
                 6               11
               MBT              CAC
               data             data
           mbtdata.img
The Path to SURFDROID
     The NVFlash Utility & Recovery Modes
●   Utility for directly flashing all partitions used
              with forced recovery mode
●   Use with care – only for advanced users
●   Vol and + - normal recovery
●   Vol and - - forced recovery mode
The Path to SURFDROID
             Building Android Source
●   Setup PATH variable
●   Pull Down repo command and make
    excutable
●   Sync repo ….wait...wait
●   Source build/envsetup.sh
●   lunch full-eng
●   make
The Path to SURFDROID
             Android Source Directories
●   Build – build system
●   Device – device specific files
●   Prebuilt – Prebuilt stuff including toolchains
    and kernel
●   Out – compilation output directory
●   Vendor – vendor specific information
The Path to SURFDROID
The Path to SURFDROID
    The Next Stage... So What Do We Need ?
●   Kernel – Prebuilt or Compiled
●   A supported CM7 device
●   Device dependant proprietary binary files
●   Working boot.img and system.img
●   Packaged Update.zip file
The Path to SURFDROID
                   Building the kernel
●   Download the NI sources from
    https://github.com/notionink/adam-kernel.git
●   Get running config from tablet
    sudo ./adb shell then cat /proc/config > config.gz
    .sudo /adb pull <path to config file>/config.gz
    unzip config.gz then rename .config in kernel directory
●   Setup path variable then make ARCH= arm
    CROSS_COMPILE=<path to cross compiler
    toolchain>
The Path to SURFDROID
    The Next Stage... So What Do We Need ?
●   Kernel – Prebuilt or Compiled
●   A supported CM7 device
●   Device dependant proprietary binary files
●   Working boot.img and system.img
●   Packaged update.zip file
The Path to SURFDROID
                                  Compile CM7
    Main guide is here
●   CyanogenMod Wiki
    http://wiki.cyanogenmod.com/wiki/Viewsonic_G_Tablet:_Compile_CyanogenMod_%28Linux%29
The Path to SURFDROID
    The Next Stage... So What Do We Need ?
●   Kernel – Prebuilt or Compiled
●   A supported CM7 device
●   Device dependant proprietary binary files
●   Working boot.img and system.img
●   Packaged Update.zip file
The Path to SURFDROID
          Copy Proprietary Binary Blobs
●   Download CM7 source
●   Start ADB server as root
●   Connect tablet via USB
●   Navigate to smb_a1002 directory
●   Run ./extract-files.sh
●   Files are copied into the vendor directory
    and makefiles built
The Path to SURFDROID
    The Next Stage... So What Do We Need ?
●   Kernel – Prebuilt or Compiled
●   A supported CM7 device
●   Device dependant proprietary binary files
●   Working boot.img and system.img
●   Packaged update.zip file
The Path to SURFDROID
                Compile CM7 stages
●   install ADB via Android SDK
●   Create directory and pull down CM7 repo
●   Get proprietary blobs
●   Download rom manager
●   Install kernel in source tree
●   Source build/envsetup.sh
●   Brunch – choose option 36
The Path to SURFDROID
The Path to SURFDROID
     Building & Installing the update.zip file
●   Copy the boot.img and system.img to
    nvflash directory.
●   Use the mkupdatezip.sh script to create
    update.zip
●   Copy update.zip to device internal or
    external sd card. Flash via recovery mode
The Path to SURFDROID
         Flashing the rom with NVflash
●   Copy the boot.img and system.img to
    nvflash directory.
●   Use NVFLASH utility in forced recovery
    mode to reflash entire device.
The Path to SURFDROID
                   Android Build Versions
●   Build 1 – CM7 V.2.3.4 -broken wifi & rotation
●   Build 2 – CM7 V.2.3.4 - wifi ok , rotation still broken
●   Build 3-9 – CM7 V2.3.5 - libstagefrighthw.so included – all
    build ok but boot loop on tablet at netrunner or
    mediaservice start
●   Build 10 - CM7 V.2.3.5 – libstagefrighthw.so working –
    wifi,video,hdmi playback, rotation and working flash
●   Build 11 – Build 10 plus custom splash screen
●   Build 12 (in progress) – Build 11 plus titanium backup
    preinstalled
The Path to SURFDROID
          Common Rom Builders Tasks
●   Fixing the 'broken' WIFI / Bluetooth
●   Add Additional Apps
●   Custom Splash Screen
●   Custom Boot Animation
●   Android Market
The Path to SURFDROID
            Fixing the 'broken' WIFI
●   Recompile Kernel module bcm4329.ko
    against kernel in source tree
●   Use compatible bcm4329.ko with associated
    files
The Path to SURFDROID
           Add Additional Applications
●   Put Additional apk's in out directory
●   Start brunch then crtl 'c'
●   Make snod
●   Copy system.img
The Path to SURFDROID
              Custom Splash Screen
●   Create your image at correct resolution-
    1024 x600 in raw format
●   Unpack Boot.img
●   Convert image to rgb255 using to565
●   ./to565 -rle < splash.raw > initlogo.rle
●   Put initlogon.rle in ramdisk root directory
●   Repack boot.img
The Path to SURFDROID
             Custom Boot Animation
●   Create your images at correct resolution-
    1024 x600 in raw format
●   Replace bootanimation.zip in source
The Path to SURFDROID
                 Android Market
●   Modified Notion Hacks – Root and Market
    Access script
●   Apply as update.zip in recovery mode
The Path to SURFDROID
                    Last Things to Do
●   Test it with some apps notably flash
●   Release it !!!!!!!!!!!!



    Thanx to all at tabletroms.com including
    Blazingwolf, RaYmAn,Thinkdevoid in the irc
    for their help

Mais conteúdo relacionado

Mais procurados

Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things InternalsOpersys inc.
 
Building Emmbedded Linux with Yocto project
Building Emmbedded Linux with Yocto projectBuilding Emmbedded Linux with Yocto project
Building Emmbedded Linux with Yocto projecttwcoimbatore
 
Android Security, From the Ground Up
Android Security, From the Ground UpAndroid Security, From the Ground Up
Android Security, From the Ground UpOpersys inc.
 
Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012Opersys inc.
 
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConIIAndroid Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConIIOpersys inc.
 
Android Variants, Hacks, Tricks and Resources
Android Variants, Hacks, Tricks and ResourcesAndroid Variants, Hacks, Tricks and Resources
Android Variants, Hacks, Tricks and ResourcesOpersys inc.
 
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdateAngelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdatelinuxlab_conf
 
Android Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IAndroid Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IOpersys inc.
 
Learning AOSP - Android Booting Process
Learning AOSP - Android Booting ProcessLearning AOSP - Android Booting Process
Learning AOSP - Android Booting ProcessNanik Tolaram
 
Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Opersys inc.
 
Inside Android's UI at AnDevCon VI
Inside Android's UI at AnDevCon VIInside Android's UI at AnDevCon VI
Inside Android's UI at AnDevCon VIOpersys inc.
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in AndroidOpersys inc.
 
Android Internals at Linaro Connect Asia 2013
Android Internals at Linaro Connect Asia 2013Android Internals at Linaro Connect Asia 2013
Android Internals at Linaro Connect Asia 2013Opersys inc.
 
The ABC of Linux (Linux for Beginners)
The ABC of Linux (Linux for Beginners)The ABC of Linux (Linux for Beginners)
The ABC of Linux (Linux for Beginners)plarsen67
 
BeagleBoard Workshop ESC Boston 2011
BeagleBoard Workshop ESC Boston 2011BeagleBoard Workshop ESC Boston 2011
BeagleBoard Workshop ESC Boston 2011Opersys inc.
 
Headless Android at AnDevCon3
Headless Android at AnDevCon3Headless Android at AnDevCon3
Headless Android at AnDevCon3Opersys inc.
 
Linux fundamental - Chap 16 System Rescue
Linux fundamental - Chap 16 System RescueLinux fundamental - Chap 16 System Rescue
Linux fundamental - Chap 16 System RescueKenny (netman)
 
MVUG Webcast Slide:- From Zero to Hero on Hyper V R2- Part 2
MVUG Webcast Slide:- From Zero to Hero on Hyper V R2- Part 2MVUG Webcast Slide:- From Zero to Hero on Hyper V R2- Part 2
MVUG Webcast Slide:- From Zero to Hero on Hyper V R2- Part 2Lai Yoong Seng
 

Mais procurados (20)

Android Things Internals
Android Things InternalsAndroid Things Internals
Android Things Internals
 
Building Emmbedded Linux with Yocto project
Building Emmbedded Linux with Yocto projectBuilding Emmbedded Linux with Yocto project
Building Emmbedded Linux with Yocto project
 
Android Security, From the Ground Up
Android Security, From the Ground UpAndroid Security, From the Ground Up
Android Security, From the Ground Up
 
Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012
 
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConIIAndroid Variants, Hacks, Tricks and Resources presented at AnDevConII
Android Variants, Hacks, Tricks and Resources presented at AnDevConII
 
Android Variants, Hacks, Tricks and Resources
Android Variants, Hacks, Tricks and ResourcesAndroid Variants, Hacks, Tricks and Resources
Android Variants, Hacks, Tricks and Resources
 
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdateAngelo Compagnucci - Upgrading buildroot based devices with swupdate
Angelo Compagnucci - Upgrading buildroot based devices with swupdate
 
Android Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IAndroid Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part I
 
Learning AOSP - Android Booting Process
Learning AOSP - Android Booting ProcessLearning AOSP - Android Booting Process
Learning AOSP - Android Booting Process
 
Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3Leveraging Android's Linux Heritage at AnDevCon3
Leveraging Android's Linux Heritage at AnDevCon3
 
Android Custom Kernel/ROM design
Android Custom Kernel/ROM designAndroid Custom Kernel/ROM design
Android Custom Kernel/ROM design
 
Inside Android's UI at AnDevCon VI
Inside Android's UI at AnDevCon VIInside Android's UI at AnDevCon VI
Inside Android's UI at AnDevCon VI
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in Android
 
Android Internals at Linaro Connect Asia 2013
Android Internals at Linaro Connect Asia 2013Android Internals at Linaro Connect Asia 2013
Android Internals at Linaro Connect Asia 2013
 
The ABC of Linux (Linux for Beginners)
The ABC of Linux (Linux for Beginners)The ABC of Linux (Linux for Beginners)
The ABC of Linux (Linux for Beginners)
 
BeagleBoard Workshop ESC Boston 2011
BeagleBoard Workshop ESC Boston 2011BeagleBoard Workshop ESC Boston 2011
BeagleBoard Workshop ESC Boston 2011
 
Headless Android at AnDevCon3
Headless Android at AnDevCon3Headless Android at AnDevCon3
Headless Android at AnDevCon3
 
Linux fundamental - Chap 16 System Rescue
Linux fundamental - Chap 16 System RescueLinux fundamental - Chap 16 System Rescue
Linux fundamental - Chap 16 System Rescue
 
Headless Android
Headless AndroidHeadless Android
Headless Android
 
MVUG Webcast Slide:- From Zero to Hero on Hyper V R2- Part 2
MVUG Webcast Slide:- From Zero to Hero on Hyper V R2- Part 2MVUG Webcast Slide:- From Zero to Hero on Hyper V R2- Part 2
MVUG Webcast Slide:- From Zero to Hero on Hyper V R2- Part 2
 

Semelhante a Path to Surfdroid

Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux DevelopersOpersys inc.
 
Build and Run Android N Source Ccode on NXP SABRESD platform
Build and Run Android N Source Ccode on NXP SABRESD platformBuild and Run Android N Source Ccode on NXP SABRESD platform
Build and Run Android N Source Ccode on NXP SABRESD platformDaniel Chiu
 
Security Issues in Android Custom ROM
Security Issues in Android Custom ROMSecurity Issues in Android Custom ROM
Security Issues in Android Custom ROMAnant Shrivastava
 
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Opersys inc.
 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesChris Simmonds
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems Mender.io
 
Hypervisor and VDI security
Hypervisor and VDI securityHypervisor and VDI security
Hypervisor and VDI securityDenis Gundarev
 
The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012Philip Polstra
 
NetBSD on Google Compute Engine (en)
NetBSD on Google Compute Engine (en)NetBSD on Google Compute Engine (en)
NetBSD on Google Compute Engine (en)Ryo ONODERA
 
Linux Kernel Platform Development: Challenges and Insights
 Linux Kernel Platform Development: Challenges and Insights Linux Kernel Platform Development: Challenges and Insights
Linux Kernel Platform Development: Challenges and InsightsGlobalLogic Ukraine
 
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsQ4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsLinaro
 

Semelhante a Path to Surfdroid (20)

Android for Embedded Linux Developers
Android for Embedded Linux DevelopersAndroid for Embedded Linux Developers
Android for Embedded Linux Developers
 
Build and Run Android N Source Ccode on NXP SABRESD platform
Build and Run Android N Source Ccode on NXP SABRESD platformBuild and Run Android N Source Ccode on NXP SABRESD platform
Build and Run Android N Source Ccode on NXP SABRESD platform
 
Security Issues in Android Custom ROM
Security Issues in Android Custom ROMSecurity Issues in Android Custom ROM
Security Issues in Android Custom ROM
 
Security Issues in Android Custom Rom
Security Issues in Android Custom RomSecurity Issues in Android Custom Rom
Security Issues in Android Custom Rom
 
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
Native Android Userspace part of the Embedded Android Workshop at Linaro Conn...
 
Introduction to Modern U-Boot
Introduction to Modern U-BootIntroduction to Modern U-Boot
Introduction to Modern U-Boot
 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot images
 
Embedded linux build systems
Embedded linux build systems  Embedded linux build systems
Embedded linux build systems
 
Introduction and course Details of Embedded Linux Platform Developer Training
Introduction and course Details of Embedded Linux Platform Developer TrainingIntroduction and course Details of Embedded Linux Platform Developer Training
Introduction and course Details of Embedded Linux Platform Developer Training
 
5. boot process
5. boot process5. boot process
5. boot process
 
Hypervisor and VDI security
Hypervisor and VDI securityHypervisor and VDI security
Hypervisor and VDI security
 
The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012The Deck by Phil Polstra GrrCON2012
The Deck by Phil Polstra GrrCON2012
 
NetBSD on Google Compute Engine (en)
NetBSD on Google Compute Engine (en)NetBSD on Google Compute Engine (en)
NetBSD on Google Compute Engine (en)
 
Understanding The Boot Process
Understanding The Boot ProcessUnderstanding The Boot Process
Understanding The Boot Process
 
Beagleboard xm-setup
Beagleboard xm-setupBeagleboard xm-setup
Beagleboard xm-setup
 
Android Booting Scenarios
Android Booting ScenariosAndroid Booting Scenarios
Android Booting Scenarios
 
Drbl tutorial
Drbl tutorialDrbl tutorial
Drbl tutorial
 
Linux Kernel Platform Development: Challenges and Insights
 Linux Kernel Platform Development: Challenges and Insights Linux Kernel Platform Development: Challenges and Insights
Linux Kernel Platform Development: Challenges and Insights
 
NetBSD workshop
NetBSD workshopNetBSD workshop
NetBSD workshop
 
Q4.11: Porting Android to new Platforms
Q4.11: Porting Android to new PlatformsQ4.11: Porting Android to new Platforms
Q4.11: Porting Android to new Platforms
 

Mais de Paul Dutot IEng MIET MBCS CITP OSCP CSTM (10)

Welcome to the #WannaCry Wine Club
Welcome to the #WannaCry Wine ClubWelcome to the #WannaCry Wine Club
Welcome to the #WannaCry Wine Club
 
Scanning Channel Islands Cyberspace
Scanning Channel Islands Cyberspace Scanning Channel Islands Cyberspace
Scanning Channel Islands Cyberspace
 
Incident Response in the wake of Dear CEO
Incident Response in the wake of Dear CEOIncident Response in the wake of Dear CEO
Incident Response in the wake of Dear CEO
 
Logicalis Security Conference
Logicalis Security ConferenceLogicalis Security Conference
Logicalis Security Conference
 
Letter anonymous-II
Letter anonymous-IILetter anonymous-II
Letter anonymous-II
 
Exploiting buffer overflows
Exploiting buffer overflowsExploiting buffer overflows
Exploiting buffer overflows
 
Practical Cyber Defense
Practical Cyber DefensePractical Cyber Defense
Practical Cyber Defense
 
A Letter from Anonymous to the Jersey Finance Industry
A Letter from Anonymous to the Jersey Finance IndustryA Letter from Anonymous to the Jersey Finance Industry
A Letter from Anonymous to the Jersey Finance Industry
 
Infosec lecture-final
Infosec lecture-finalInfosec lecture-final
Infosec lecture-final
 
WI-FI Security in Jersey 2011
WI-FI Security in Jersey 2011WI-FI Security in Jersey 2011
WI-FI Security in Jersey 2011
 

Último

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
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
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
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Último (20)

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
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
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...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Path to Surfdroid

  • 1. The Path to SURFDROID An Android Rom Building Journey By Paul Dutot
  • 2. The Path to SURFDROID Where did I get the idea to built a rom ? Android Internals by Marko Gargenta at ● http://www.youtube.com/watch?v=1_H4AlQaNa0 Google Android Source Page ● http://source.android.com/source/index.html
  • 3. The Path to SURFDROID What do you need ? ● Python 2.4 – 2.7 ● Java Development Kit (JDK) 6 for Gingerbread or JDK 5 for Froyo ● Git 1.5.4 or newer ● Dependencies listed on source.android.com ● Correct usb access for adb
  • 4. The Path to SURFDROID Update.zip Contents Bootloader.bin – initial bootloader code Boot.img – contains kernel and ramdisk System.img – android system image Recovery.img – system recovery image Google directory containing update script & binary
  • 5. The Path to SURFDROID Update.zip Structure ( Type 1)
  • 6. The Path to SURFDROID Update.zip Structure ( Type 2)
  • 7. The Path to SURFDROID The Type 1 Updater Script Function ● Mount the system Partition ● Copy the files into system ● Make symbolic links to xbin ● Set correct permissions on files and directories ● Flash the boot.img file
  • 8. The Path to SURFDROID The Type 2 Updater Script Function ● Flashes the bootloader.bin ● Flashes the boot.img file ● Flashes the system.img file ● Flashes the recovery.img file
  • 9. The Path to SURFDROID Development Environment
  • 10. The Path to SURFDROID Notion Ink Partition Information 2 7 BCT MSC Boot Config data 3 8 PT SOS Partition Table data recovery.img 4 9 EBT LNK bootloader data bootloader.bin boot.img 5 10 NVC APP bootloader data microboot.bin system.img 6 11 MBT CAC data data mbtdata.img
  • 11. The Path to SURFDROID The NVFlash Utility & Recovery Modes ● Utility for directly flashing all partitions used with forced recovery mode ● Use with care – only for advanced users ● Vol and + - normal recovery ● Vol and - - forced recovery mode
  • 12. The Path to SURFDROID Building Android Source ● Setup PATH variable ● Pull Down repo command and make excutable ● Sync repo ….wait...wait ● Source build/envsetup.sh ● lunch full-eng ● make
  • 13. The Path to SURFDROID Android Source Directories ● Build – build system ● Device – device specific files ● Prebuilt – Prebuilt stuff including toolchains and kernel ● Out – compilation output directory ● Vendor – vendor specific information
  • 14. The Path to SURFDROID
  • 15. The Path to SURFDROID The Next Stage... So What Do We Need ? ● Kernel – Prebuilt or Compiled ● A supported CM7 device ● Device dependant proprietary binary files ● Working boot.img and system.img ● Packaged Update.zip file
  • 16. The Path to SURFDROID Building the kernel ● Download the NI sources from https://github.com/notionink/adam-kernel.git ● Get running config from tablet sudo ./adb shell then cat /proc/config > config.gz .sudo /adb pull <path to config file>/config.gz unzip config.gz then rename .config in kernel directory ● Setup path variable then make ARCH= arm CROSS_COMPILE=<path to cross compiler toolchain>
  • 17. The Path to SURFDROID The Next Stage... So What Do We Need ? ● Kernel – Prebuilt or Compiled ● A supported CM7 device ● Device dependant proprietary binary files ● Working boot.img and system.img ● Packaged update.zip file
  • 18. The Path to SURFDROID Compile CM7 Main guide is here ● CyanogenMod Wiki http://wiki.cyanogenmod.com/wiki/Viewsonic_G_Tablet:_Compile_CyanogenMod_%28Linux%29
  • 19. The Path to SURFDROID The Next Stage... So What Do We Need ? ● Kernel – Prebuilt or Compiled ● A supported CM7 device ● Device dependant proprietary binary files ● Working boot.img and system.img ● Packaged Update.zip file
  • 20. The Path to SURFDROID Copy Proprietary Binary Blobs ● Download CM7 source ● Start ADB server as root ● Connect tablet via USB ● Navigate to smb_a1002 directory ● Run ./extract-files.sh ● Files are copied into the vendor directory and makefiles built
  • 21. The Path to SURFDROID The Next Stage... So What Do We Need ? ● Kernel – Prebuilt or Compiled ● A supported CM7 device ● Device dependant proprietary binary files ● Working boot.img and system.img ● Packaged update.zip file
  • 22. The Path to SURFDROID Compile CM7 stages ● install ADB via Android SDK ● Create directory and pull down CM7 repo ● Get proprietary blobs ● Download rom manager ● Install kernel in source tree ● Source build/envsetup.sh ● Brunch – choose option 36
  • 23. The Path to SURFDROID
  • 24. The Path to SURFDROID Building & Installing the update.zip file ● Copy the boot.img and system.img to nvflash directory. ● Use the mkupdatezip.sh script to create update.zip ● Copy update.zip to device internal or external sd card. Flash via recovery mode
  • 25. The Path to SURFDROID Flashing the rom with NVflash ● Copy the boot.img and system.img to nvflash directory. ● Use NVFLASH utility in forced recovery mode to reflash entire device.
  • 26. The Path to SURFDROID Android Build Versions ● Build 1 – CM7 V.2.3.4 -broken wifi & rotation ● Build 2 – CM7 V.2.3.4 - wifi ok , rotation still broken ● Build 3-9 – CM7 V2.3.5 - libstagefrighthw.so included – all build ok but boot loop on tablet at netrunner or mediaservice start ● Build 10 - CM7 V.2.3.5 – libstagefrighthw.so working – wifi,video,hdmi playback, rotation and working flash ● Build 11 – Build 10 plus custom splash screen ● Build 12 (in progress) – Build 11 plus titanium backup preinstalled
  • 27. The Path to SURFDROID Common Rom Builders Tasks ● Fixing the 'broken' WIFI / Bluetooth ● Add Additional Apps ● Custom Splash Screen ● Custom Boot Animation ● Android Market
  • 28. The Path to SURFDROID Fixing the 'broken' WIFI ● Recompile Kernel module bcm4329.ko against kernel in source tree ● Use compatible bcm4329.ko with associated files
  • 29. The Path to SURFDROID Add Additional Applications ● Put Additional apk's in out directory ● Start brunch then crtl 'c' ● Make snod ● Copy system.img
  • 30. The Path to SURFDROID Custom Splash Screen ● Create your image at correct resolution- 1024 x600 in raw format ● Unpack Boot.img ● Convert image to rgb255 using to565 ● ./to565 -rle < splash.raw > initlogo.rle ● Put initlogon.rle in ramdisk root directory ● Repack boot.img
  • 31. The Path to SURFDROID Custom Boot Animation ● Create your images at correct resolution- 1024 x600 in raw format ● Replace bootanimation.zip in source
  • 32. The Path to SURFDROID Android Market ● Modified Notion Hacks – Root and Market Access script ● Apply as update.zip in recovery mode
  • 33. The Path to SURFDROID Last Things to Do ● Test it with some apps notably flash ● Release it !!!!!!!!!!!! Thanx to all at tabletroms.com including Blazingwolf, RaYmAn,Thinkdevoid in the irc for their help