Close
0%
0%

Breaking Android™

Building and breaking the Android AOSP on the BBB. Android is a trademark of Google Inc.

Similar projects worth following
It works, but it is still something of a mess.

The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.

The partition images are too big to upload here. I will make a link to a git account later.

plain - 314.00 bytes - 03/16/2017 at 15:08

Download

x-raw-disk-image - 373.86 kB - 03/16/2017 at 15:07

Download

MLO

mlo - 76.76 kB - 03/16/2017 at 15:07

Download

View all 3 files

  • Flash and run it.

    jlbrian703/16/2017 at 14:54 0 comments

    The standard build of u-boot works!

    #Instructions taken from https://github.com/csimmonds/a4b-scripts/blob/master/write-sdcard-beagleboneblack.sh

    mkimage -A arm -O linux -T ramdisk -d out/target/product/beagleboneblack/ramdisk.img uRamdisk

    # I used gparted to create these partitions
    # Create 4 primary partitons on the sd card
    # 1: boot: FAT32, 64 MiB, boot flag
    # 2: system: Linux, 512 MiB
    # 3: data: Linux, 3072 MiB
    # 4: cache: Linux, 256 MiB
    sudo cp uRamdisk /media/jeramy/BOOT
    cd ../BBB/u-boot_stock
    cp MLO /media/jeramy/BOOT
    cp u-boot.img /media/jeramy/BOOT
    cp ~/android-AOSP/device/ti/beagleboneblack/uEnv.txt /media/jeramy/BOOT
    cd ../

    # http://elinux.org/BeagleBone_DTBs
    cat bb-kernel/KERNEL/arch/arm/boot/zImage bb-kernel/KERNEL/arch/arm/boot/dts/am335x-boneblack-hdmi-overlay.dtb > zImage-dtb-hdmi


    bb-kernel/KERNEL/scripts/mkuboot.sh -A arm -O linux -C none -T kernel -a 0x80008000 -e 0x80008000 -n 'Linux-4.4' -d zImage-dtb-hdmi uImage-dtb-hdmi

    sudo cp uImage-dtb-hdmi /media/jeramy/BOOT/uImage
    sudo umount /media/jeramy/BOOT



    # I used `disks` to restore images to the appropriate partition



    #~/android-AOSP/out/target/product/beagleboneblack/system.img
    #~/android-AOSP/out/target/product/beagleboneblack/cache.img
    #~/android-AOSP/out/target/product/beagleboneblack/userdata.img



    jeramy@jeramy-pc2:~/BBB$ adb devices -l
    List of devices attached
    123456789 device usb:2-2 product:beagleboneblack_sd model:BeagleBone_Black_on_SD_card device:beagleboneblack



    jeramy@jeramy-pc2:~/BBB$ adb shell
    root@beagleboneblack:/ #



    root@beagleboneblack:/ # cat /proc/version
    Linux version 4.4.53-bone16 (jeramy@jeramy-pc2) (gcc version 5.4.1 20161213 (Linaro GCC 5.4-2017.01) ) #1 SMP Wed Mar 15 17:46:44 EDT 2017



    root@beagleboneblack:/ # getprop ro.build.version.release
    6.0.1
    root@beagleboneblack:/ # getprop ro.build.version.sdk
    23
    root@beagleboneblack:/ # getprop
    [dalvik.vm.dex2oat-Xms]: [64m]
    [dalvik.vm.dex2oat-Xmx]: [512m]
    [dalvik.vm.dex2oat-filter]: [verify-at-runtime]
    [dalvik.vm.heapgrowthlimit]: [48m]
    [dalvik.vm.heapmaxfree]: [2m]
    [dalvik.vm.heapminfree]: [512k]
    [dalvik.vm.heapsize]: [128m]
    [dalvik.vm.heapstartsize]: [5m]
    [dalvik.vm.heaptargetutilization]: [0.75]
    [dalvik.vm.image-dex2oat-Xms]: [64m]
    [dalvik.vm.image-dex2oat-Xmx]: [64m]
    [dalvik.vm.image-dex2oat-filter]: [verify-at-runtime]
    [dalvik.vm.isa.arm.features]: [default]
    [dalvik.vm.isa.arm.variant]: [generic]
    [dalvik.vm.lockprof.threshold]: [500]
    [dalvik.vm.stack-trace-file]: [/data/anr/traces.txt]
    [dalvik.vm.usejit]: [true]
    [debug.atrace.tags.enableflags]: [0]
    [debug.force_rtl]: [0]
    [dev.bootcomplete]: [1]
    [dhcp.eth0.result]: [failed]
    [gsm.current.phone-type]: [1]
    [gsm.network.type]: [Unknown]
    [gsm.operator.alpha]: []
    [gsm.operator.iso-country]: []
    [gsm.operator.isroaming]: [false]
    [gsm.operator.numeric]: []
    [gsm.sim.operator.alpha]: []
    [gsm.sim.operator.iso-country]: []
    [gsm.sim.operator.numeric]: []
    [gsm.sim.state]: [NOT_READY]
    [hw.nobattery]: [true]
    [init.svc.adbd]: [running]
    [init.svc.bootanim]: [stopped]
    [init.svc.console]: [running]
    [init.svc.debuggerd]: [running]
    [init.svc.dhcpcd_eth0]: [stopped]
    [init.svc.drm]: [running]
    [init.svc.gatekeeperd]: [running]
    [init.svc.healthd]: [running]
    [init.svc.installd]: [running]
    [init.svc.keystore]: [running]
    [init.svc.lmkd]: [running]
    [init.svc.logd]: [running]
    [init.svc.logd-reinit]: [stopped]
    [init.svc.media]: [running]
    [init.svc.netd]: [running]
    [init.svc.perfprofd]: [running]
    [init.svc.servicemanager]: [running]
    [init.svc.surfaceflinger]: [running]
    [init.svc.ueventd]: [running]
    [init.svc.vold]: [running]
    [init.svc.zygote]: [running]
    [net.bt.name]: [Android]
    [net.change]: [net.qtaguid_enabled]
    [net.hostname]: [android-6f4322d0401fae47]
    [net.qtaguid_enabled]: [0]
    [net.tcp.default_init_rwnd]: [60]
    [persist.sys.dalvik.vm.lib.2]: [libart.so]
    [persist.sys.profiler_ms]: [0]
    [persist.sys.strictmode.disable]: [1]
    [persist.sys.strictmode.visual]: [0]
    [persist.sys.usb.config]: [adb]
    [ro.allow.mock.location]: [1]
    [ro.baseband]: [unknown]
    [ro.board.platform]: [omap3]
    [ro.boot.console]: [ttyS0]
    [ro.boot.hardware]: [am335xevm]
    [ro.boot.selinux]: [permissive]...

    Read more »

  • Building the Kernel for Android - Maybe

    jlbrian703/15/2017 at 22:42 0 comments

    #Instructions modified from https://github.com/csimmonds/a4b-scripts/blob/master/build-beagleboneblack.sh
    
    cd ~/android-AOSP/device
    
    mkdir ti
    cd ti
    
    git clone https://github.com/csimmonds/a4b-beagleboneblack
    cd a4b*
    git checkout m6.0
    
    cd ..
    mkdir beagleboneblack
    mv -v ~/android-AOSP/device/a4b-beagleboneblack/* ~/android-AOSP/device/ti/beagleboneblack/
    rm -rf a4b-beagleboneblack
    

    THIS IS STILL MUDDY WATER. There needs to be a different patch file because I modified some of the files. WARNING: Don't follow the instructions here.

    cd ~/BBB
    
    mkdir u-boot_stock
    mv -v u-boot/* u-boot_stock/
    rm -rf u-boot
    
    git clone https://github.com/csimmonds/u-boot.git
    cd u-boot
    git checkout am335x-v2013.01.01-bbb-fb
    cd ..
    mkdir u-boot_droid
    mv -v u-boot/* u-boot_droid/
    rm -rf u-boot
    
    git clone https://github.com/beagleboard/bb.org-overlays.git
    git clone https://github.com/csimmonds/a4b-scripts.git
    
    cd a4b*
    git checkout m6.0
    cd ..
    
    cd bb-kernel
    mkdir patches/a4b
    cp ~/android-AOSP/device/ti/beagleboneblack/ti-kernel-patches/config-android-4.1 patches/defconfig 
    cp  ~/android-AOSP/device/ti/beagleboneblack/ti-kernel-patches/*.patch patches/a4b
    
    patch -p1 < patches/a4b/0001-Add-a4b-patch.patch

    Output:
    patch -p1 < patches/a4b/0001-Add-a4b-patch.patch
    patching file patch.sh
    Hunk #1 succeeded at 1174 with fuzz 2 (offset 223 lines).
    Hunk #2 FAILED at 988.
    1 out of 2 hunks FAILED -- saving rejects to file patch.sh.rej



    Solution:
    add `a4b` to line# 1218 of patch.sh, and save file
    comment out selinux patches in patch.sh (just not putting them into patch.sh would be better. come back to this.)

    NOTE:

    When I did this a second time, re-pulling the kernel to get a fresh start it I had the same problem, but with a different error message, the solution was roughly the same regardless. Also, the second time I downloaded the kernel I got 4.4.53 instead of 4.4.52

    Also, as I stated in the I disabled all touchscreen inuput, and DVB front end modules and built-ins. I was getting compiler errors, so I shut it all off. The kernel built, but I'll have to see if it works.

    ./build_kernel.sh
    
    cd KERNEL
    
    ***
    
    cat arch/arm/boot/zImage arch/arm/boot/dts/am335x-boneblack-emmc-overlay.dtb > zImage-dtb
    mkdir ~/android-AOSP/device/ti/beagleboneblack-kernel
    cp zImage-dtb ~/android-AOSP/device/ti/beagleboneblack-kernel
    
    *** I am not really sure about this step, because later when I move files 
    to the sd card for android I create a different image.
    
    mkdir ~/android-AOSP/device/ti/beagleboneblack/modules
    MODULES=`find -name "*.ko"`
    for f in $MODULES; do
    	cp $f ~/android-AOSP/device/ti/beagleboneblack/modules/`basename $f`
    done
    
    cd ../../bb.org-overlays
    make DTC=../bb-kernel/KERNEL/scripts/dtc/dtc
    cp src/arm/*.dtbo ~/android-AOSP/device/ti/beagleboneblack/dtbo
    

    cd ../u-boot_droid
    . ../bb-kernel/.CC

    Yeah, u-boot is a mess too. I'm not sure how this is going to work out.

    cd ~/android-AOSP
    make -j8
    

    Now, time to get some beer. I'm done for the night.

  • Notes on Packaging a Kernel with Android

    jlbrian703/13/2017 at 00:54 0 comments

    I may be reinventing the wheel. I will have to try this soon, then move on to Nougat.

    ---> http://elinux.org/Thread:User_talk:MaheshKalmeshwar/Quick_MarshMallow_Android_Porting_on_Beaglebone_Black

    https://github.com/csimmonds/android4beagle


    https://eewiki.net/display/AOA/BeagleBone+Black

    This is a mess. I am trying to figure out what will work.

    (I am essentially going through the manifest here https://github.com/csimmonds/android4beagle/blob/master/default.xml and getting what I think I need)

    cd device

    git clone https://github.com/csimmonds/a4b-beagleboneblack

    cd a4b*

    git checkout m6.0

    cd ..

    mv -v ~/android-AOSP/device/a4b-beagleboneblack/* ~/android-AOSP/device/ti/beagleboneblack/

    r-rf a4b-beagleboneblack

    cd ti/beagleboneblack

    git clone https://github.com/csimmonds/u-boot.git

    cd u-boot

    git checkout am335x-v2013.01.01-bbb-fb

    cd ..

    git clone https://github.com/beagleboard/bb.org-overlays.git

    git clone https://github.com/csimmonds/a4b-scripts.git

    cd a4b*

    git checkout m6.0

    cd ..

    ***!!! build-beagleboneblack.sh LN:46

    # Append the dtb to zImage because the Android build doesn't know about dtbs
    cd KERNEL
    cat arch/arm/boot/zImage arch/arm/boot/dts/am335x-boneblack-emmc-overlay.dtb > zImage-dtb

    http://free-electrons.com/pub/conferences/2013/elce/petazzoni-device-tree-dummies/petazzoni-device-tree-dummies.pdf

    Page 8. Would this be necessary if a current u-boot was updated with the proper androidisms for the bbb? is that possible? I am understanding it is a problem with the old u-boot not pointing to the dtb, is that correct?

    https://cdn-learn.adafruit.com/downloads/pdf/introduction-to-the-beaglebone-black-device-tree.pdf

    Page 4

    https://community.arm.com/dev-platforms/b/documents/posts/faq-what-is-device-tree

    LN:71

    # The Android prebuilt gcc fails to build U-Boot, so use the Linaro gcc which
    # was installed to build the ti-kernel

    It also failed when I tried to build the kernel with it. Error message said the compiler was buggy and would fail to build kernels properly. Don't waste your time with it.

    In settings, I turned off all touch screen modules and built-ins, as well as as all v4l, tv, and radio support. They were causing compiler errors.

  • Building the BeagleBone Black Kernel

    jlbrian703/12/2017 at 20:09 0 comments

    References:

    http://elinux.org/Building_BBB_Kernel

    http://wiki.beyondlogic.org/index.php/BeagleBoneBlack_Building_Kernel

    http://beagleboard.org/linux

    https://eewiki.net/display/linuxonarm/BeagleBone+Black#BeagleBoneBlack-Bootloader:U-Boot <--- Mostly this one, it is up to date.

    On BBB:

    debian@beaglebone:~$ uname -r
    3.8.13-bone79
    

    On Build machine:

    For what I am doing it is not necessary to build u-boot, or to grab the compiler.

    mkdir BBB
    cd BBB
    
    wget -c https://releases.linaro.org/components/toolchain/binaries/5.4-2017.01/arm-linux-gnueabihf/gcc-linaro-5.4.1-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
    tar xf gcc-linaro-5.4.1-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
    export CC=`pwd`/gcc-linaro-5.4.1-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
    
    ${CC}gcc --version
    Output:

    arm-linux-gnueabihf-gcc (Linaro GCC 5.4-2017.01) 5.4.1 20161213
    Copyright (C) 2015 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    git clone https://github.com/u-boot/u-boot
    cd u-boot/
    git checkout v2017.03-rc2 -b tmp
    wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2017.03-rc2/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
    wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2017.03-rc2/0002-U-Boot-BeagleBone-Cape-Manager.patch
      
    patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
    patch -p1 < 0002-U-Boot-BeagleBone-Cape-Manager.patch
    make ARCH=arm CROSS_COMPILE=${CC} distclean
    make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_defconfig
    make ARCH=arm CROSS_COMPILE=${CC}
    cd ..
    # If you just want to build the kernel start here.
    git clone https://github.com/RobertCNelson/bb-kernel
    cd bb-kernel/
    # there are a number of options here, 4.4-rt would be a good project for another day
    # https://wiki.linuxfoundation.org/realtime/start
    # I think git branch -l will show all of the available branches
    git checkout origin/am33x-v4.4 -b tmp
    sudo apt-get update
    sudo apt-get install device-tree-compiler lzma zlib1g:i386 
    

    I am going to build this as a deb package for ease of installation right now. I just want to test the process.

    ./build_deb.sh

    Setup the kernel the way you want and wait for it to build ...

    https://www.kernel.org/doc/html/latest/

    deb packages are in the <location you chose>/BBB/bb-kernel/deploy.

    I use nautilus to copy them over. `Connect to Server` sftp://debian@192.168.7.2

    created a new directory in ~/ called kernel

    copied and pasted the debs over to ~/kernel

    then in the terminal

    ssh debian@192.168.7.2
    cd kernel
    sudo dpkg -i linux-firmware-image-4.4.52-bone16_1cross_armhf.deb  
    sudo dpkg -i linux-headers-4.4.52-bone16_1cross_armhf.deb  
    sudo dpkg -i linux-image-4.4.52-bone16_1cross_armhf.deb  
    sudo dpkg -i linux-libc-dev_1cross_armhf.deb
    
    sudo reboot

    and once it comes back up, ssh back in:
    debian@beaglebone:~$ uname -r
    4.4.52-bone16
    

    If you wanted to create a full image on an sd card, follow the directions on the web site (the one with an arrow pointing to it.)

  • Building Android, BBBAndroid: Build it.

    jlbrian703/11/2017 at 16:42 0 comments

    References:

    https://source.android.com/source/building.html

    'Embedded Android' by Karim Yaghmour
    . build/envsetup.sh

    Output:

    including sdk/bash_completion/adb.bash

    lunch

    Output:

    You're building on Linux



    Lunch menu... pick a combo:
    1. beagleboneblack-eng
    2. aosp_arm-eng
    3. aosp_x86-eng
    4. aosp_mips-eng
    5. vbox_x86-eng



    Which would you like? [aosp_arm-eng]

    >press [Enter] and build for the emulator for now.

    Output:

    ============================================
    PLATFORM_VERSION_CODENAME=REL
    PLATFORM_VERSION=4.4.4
    TARGET_PRODUCT=aosp_arm
    TARGET_BUILD_VARIANT=eng
    TARGET_BUILD_TYPE=release
    TARGET_BUILD_APPS=
    TARGET_ARCH=arm
    TARGET_ARCH_VARIANT=armv7-a
    TARGET_CPU_VARIANT=generic
    HOST_ARCH=x86
    HOST_OS=linux
    HOST_OS_EXTRA=Linux-4.4.0-64-generic-x86_64-with-Ubuntu-16.04-xenial
    HOST_BUILD_TYPE=release
    BUILD_ID=KTU84P
    OUT_DIR=out
    ============================================

    make -j4

    Output:

    build/core/main.mk:45: ********************************************************************************
    build/core/main.mk:46: * You are using version 4.1 of make.
    build/core/main.mk:47: * Android can only be built by versions 3.81 and 3.82.
    build/core/main.mk:48: * see https://source.android.com/source/download.html
    build/core/main.mk:49: ********************************************************************************
    build/core/main.mk:50: *** stopping. Stop.

    So role make back.

    *** Given the process to build the Marshmallow AOSP, I am going to make an external drive bootable with the ubuntu live cd, and build from there. I suspect that this will take a week to accomplish, but I don't want to make a bunch of changes to my system by installing old packages when what I want in the end is to build more current versions of Android anyway.

    Additionally, I need to work this out so that I can build the Linux Kernels on an external drive, as well as experiment with building and installing drivers within a kernel, so I don't make my system inoperable.

  • Building Android, by the book: Build it.

    jlbrian703/11/2017 at 16:41 0 comments

    References:

    https://source.android.com/source/building.html

    'Embedded Android' by Karim Yaghmour

    . build/envsetup.sh

    Output:

    including device/asus/deb/vendorsetup.sh
    including device/asus/flo/vendorsetup.sh
    including device/asus/fugu/vendorsetup.sh
    including device/generic/mini-emulator-arm64/vendorsetup.sh
    including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh
    including device/generic/mini-emulator-mips/vendorsetup.sh
    including device/generic/mini-emulator-x86_64/vendorsetup.sh
    including device/generic/mini-emulator-x86/vendorsetup.sh
    including device/htc/flounder/vendorsetup.sh
    including device/huawei/angler/vendorsetup.sh
    including device/lge/bullhead/vendorsetup.sh
    including device/lge/hammerhead/vendorsetup.sh
    including device/moto/shamu/vendorsetup.sh
    including sdk/bash_completion/adb.bash

    lunch 

    Output:

    You're building on Linux



    Lunch menu... pick a combo:
    1. aosp_arm-eng
    2. aosp_arm64-eng
    3. aosp_mips-eng
    4. aosp_mips64-eng
    5. aosp_x86-eng
    6. aosp_x86_64-eng
    7. aosp_deb-userdebug
    8. aosp_flo-userdebug
    9. full_fugu-userdebug
    10. aosp_fugu-userdebug
    11. mini_emulator_arm64-userdebug
    12. m_e_arm-userdebug
    13. mini_emulator_mips-userdebug
    14. mini_emulator_x86_64-userdebug
    15. mini_emulator_x86-userdebug
    16. aosp_flounder-userdebug
    17. aosp_angler-userdebug
    18. aosp_bullhead-userdebug
    19. aosp_hammerhead-userdebug
    20. aosp_hammerhead_fp-userdebug
    21. aosp_shamu-userdebug



    Which would you like? [aosp_arm-eng]

    >press [Enter] to build for the emulator.

    Output:

    ============================================
    PLATFORM_VERSION_CODENAME=REL
    PLATFORM_VERSION=6.0.1
    TARGET_PRODUCT=aosp_arm
    TARGET_BUILD_VARIANT=eng
    TARGET_BUILD_TYPE=release
    TARGET_BUILD_APPS=
    TARGET_ARCH=arm
    TARGET_ARCH_VARIANT=armv7-a
    TARGET_CPU_VARIANT=generic
    TARGET_2ND_ARCH=
    TARGET_2ND_ARCH_VARIANT=
    TARGET_2ND_CPU_VARIANT=
    HOST_ARCH=x86_64
    HOST_OS=linux
    HOST_OS_EXTRA=Linux-4.4.0-64-generic-x86_64-with-Ubuntu-16.04-xenial
    HOST_BUILD_TYPE=release
    BUILD_ID=MOB31S
    OUT_DIR=out
    ============================================

    make -j4

    Output:

    ============================================
    PLATFORM_VERSION_CODENAME=REL
    PLATFORM_VERSION=6.0.1
    TARGET_PRODUCT=aosp_arm
    TARGET_BUILD_VARIANT=eng
    TARGET_BUILD_TYPE=release
    TARGET_BUILD_APPS=
    TARGET_ARCH=arm
    TARGET_ARCH_VARIANT=armv7-a
    TARGET_CPU_VARIANT=generic
    TARGET_2ND_ARCH=
    TARGET_2ND_ARCH_VARIANT=
    TARGET_2ND_CPU_VARIANT=
    HOST_ARCH=x86_64
    HOST_OS=linux
    HOST_OS_EXTRA=Linux-4.4.0-64-generic-x86_64-with-Ubuntu-16.04-xenial
    HOST_BUILD_TYPE=release
    BUILD_ID=MOB31S
    OUT_DIR=out
    ============================================
    Checking build tools versions...
    ************************************************************
    You are attempting to build with the incorrect version
    of java.

    Your version is: openjdk version "1.8.0_121" OpenJDK Runtime Environment (build 1.8.0_121-8u121-b13-0ubuntu1.16.04.2-b13) OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode).
    The required version is: "1.7.x"

    Please follow the machine setup instructions at
    https://source.android.com/source/initializing.html
    ************************************************************
    build/core/main.mk:171: *** stop. Stop.



    #### make failed to build some targets (14 seconds) ####

    I did follow those instructions, but there has been an update to the OpenJDK., and I am building one version of the AOSP behind the current. So roll the JDK back.

    sudo apt-get purge openjdk-8-jdk
    sudo apt-get autoremove
    
    #http://askubuntu.com/questions/761127/how-do-i-install-openjdk-7-on-ubuntu-16-04-or-higher
    sudo add-apt-repository ppa:openjdk-r/ppa  
    sudo apt-get update
    sudo apt-get install openjdk-7-jdk 
    make -j4

    Output:

    ...

    target SharedLib: libc (out/target/product/generic/obj/SHARED_LIBRARIES/libc_intermediates/LINKED/libc.so)
    Install: out/target/product/generic/system/lib/libdl.so
    out/host/linux-x86/bin/checkseapp -p out/target/product/generic/obj/ETC/sepolicy_intermediates/sepolicy -o out/target/product/generic/obj/ETC/seapp_contexts_intermediates/seapp_contexts out/target/product/generic/obj/ETC/seapp_contexts_intermediates/seapp_contexts.tmp...

    Read more »

  • Building Android, by the book: Setup the Build Environment

    jlbrian703/11/2017 at 14:44 0 comments

    References :

    https://source.android.com/source/initializing.html

    For Ubuntu >= 15.04 (you need a 64bit version of ubuntu. The website says it recommends 14.04, I am using 16.04. )
    sudo apt-get update
    sudo apt-get install openjdk-8-jdk
    sudo apt-get install git-core gnupg flex bison gperf build-essential \
    zip curl zlib1g
    -dev gcc-multilib g++-multilib libc6-dev-i386 \
    lib32ncurses5
    -dev x11proto-core-dev libx11-dev lib32z-dev ccache \
    libgl1
    -mesa-dev libxml2-utils xsltproc unzip

    Configure USB Access. Replace <username> with your username

    wget -S -O - http://source.android.com/source/51-android.rules | sed "s/<username>/$USER/" | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules

  • What's inside?

    jlbrian703/09/2017 at 15:45 0 comments

    Android AOSP - Marshmallow - 6.0.1_r78BBBAndroid - KitKat - 4.4.4_r1.0.1DescriptionLinks
    abiabiMinimal C++ Run-Time Type Information Supporthttps://developer.android.com/ndk/guides/abis.html

    artartAndroid Run Timehttps://source.android.com/devices/tech/dalvik/

    bionicbionicBionic is the standard C library (including libc, libdl, libm, and libpthread) https://en.wikipedia.org/wiki/Bionic_(software)

    bootablebootableOTA recovery and bootloaderhttps://source.android.com/devices/tech/ota/tools.htmlhttps://source.android.com/devices/tech/ota/inside_packages.html
    buildbuildThe main entry point of the build system resides herehttp://elinux.org/Android-4.1.1_r4<--- Seems to be a good reference for many of the folders
    ctsctsCompatability Test Suitehttp://source.android.com/compatibility/cts/index.html

    dalvikdalvikContains Dalvik, see docs folder withinhttp://newandroidbook.com/files/Andevcon-DEX.pdf

    developers
    Material for app developersSee the readme's in some of the folders

    developmentdevelopmentApp development tools and sampleshttp://elinux.org/Android-4.1.1_r4documentation is created at build time?
    devicedeviceDevice specific stuff.

    **There may be some good stuff about packaging an androidized kernel in here.**
    http://elinux.org/images/2/29/Customizing_AOSP_for_my_Device.pdfhttps://developer.android.com/adk/index.html<-- I think thats for the google folder. There is an arduino example.
    docsdocs
    http://source.android.com/There are instructions in the readme
    externalexternalExternal Projects antlr, chromium, etc.http://elinux.org/Android-4.1.1_r4View folder to see what's in there. The list on the website isn't accurate for marshmallow.
    frameworksframeworksAndroid internals


    hardwarehardwareDrivers & HALhttps://sujaiantony.wordpress.com/2012/06/25/an-android-101-hardware-and-hal/


    kernelLinux Kernel for BBBAndroidhttp://elinux.org/Building_BBB_Kernel

    libcorelibcoreApache HarmonySee NOTICE in folder

    libnativehelperlibnativehelperSupport functions for Android's class librariesSee README in folder

    ndkndkAndroid Native Development Kit (NDK)See README.TXT in folder

    packagespackagesStandard Android Applications


    pdkpdkPDK (Platform Development Kit)http://www.theverge.com/2012/6/27/3120980/google-announces-platform-development-kit

    platform_testing
    I'm not finding any documentation on this. I assume it is self explanatory.


    prebuiltsprebuiltsToolchains and dev toolshttps://source.android.com/source/building-kernels.html

    sdksdkSoftware Development KitSee README.txt

    systemsystemAndroid System Files


    tools
    Gradle & Fat32lib



    u-bootBBBAndroid boot loader


    .repo.repo



    MakefileMakefile




    patch.sh



  • Building Android, BBBAndroid: Get the AOSP

    jlbrian703/06/2017 at 16:18 0 comments

    There is a link to the manifest xml file on this page http://bbbandroid.sourceforge.net/. It takes you here https://github.com/hendersa/bbbandroid-manifest/blob/master/bbbandroid-aosp-4.4.4_r1-3.8.xml

    # from ~/

    mkdir BBBAndroid

    cd BBBAndroid

    repo init -u https://github.com/hendersa/bbbandroid-manifest.git

    repo sync # 50Gb

  • Building Android, by the book: Get the AOSP

    jlbrian703/06/2017 at 14:14 0 comments

    References:

    https://source.android.com/source/downloading.html

    'Embedded Android' by Karim Yaghmour

    Install Repo:

    sudo apt-get install curl git
     mkdir ~/bin 
     PATH=~/bin:$PATH
     curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo 
     chmod a+x ~/bin/repo

    Initialize a Repo Client:

     mkdir android-AOSP
    cd android-AOSP git config --global user.name "Your Name"
    git config
    --global user.email "you@example.com" # | # I'll come back to this --------------------------------\ /` # v repo init -u https://android.googlesource.com/platform/manifest -b android-6.0.1_r78 # See page 82 in the book for info about pulling from a branch rather than the master repo sync # Additionally you could use the -j switch # This takes a long time. It looks to be a 65.6GB download.

View all 10 project logs

Enjoy this project?

Share      

Discussions

jlbrian7 wrote 03/17/2017 at 00:52 point

https://groups.google.com/forum/#!topic/beagleboard/dQzlj54fXps difference between bb-kernel and ti-kernel

  Are you sure? yes | no

jlbrian7 wrote 03/11/2017 at 20:20 point

start 1506 3.11.17 AMD Athlon(tm) 5350 APU with Radeon(tm) R3 4 cores (also try -j8 (4*2) and -j6 (4+2))

  Are you sure? yes | no

jlbrian7 wrote 03/12/2017 at 13:05 point

using -j8 reduced the build time by ~1hr. up to the compile error.

  Are you sure? yes | no

Does this project spark your interest?

Become a member to follow this project and never miss any updates