Skip to content

Akipe/awesome-android-aosp

Repository files navigation

Awesome Android AOSP Awesome

A collection of Android AOSP system (Android Open Source Project) and ROM development related resources.

This collection does not concern the development of application, there is a awesome list concerning this case at JStumpp/awesome-android.

Inspired by many awesome list like sindresorhus/awesome.

This project is in work in progress !!! Some links may be not valid or not so useful.

Contributions are welcome! I am looking for any kind of information that can help in the development of Android ROM. Don't hesitate to participate to make pull requests and or to exchange in the issues. You can read the contribution guidelines to know how to help me.

English is not my primary language, there might be some language mistakes (feel free to correct them!).

There are also other nice resources references available on this repository :

Contents

Learning

Where to start (complete guide)

It is recommended to start with the official documentation available at https://source.android.com/ & https://developer.android.com/.

There is a summary available in this project for navigate more easily and find more quickly what you search : official_documentation.md.

There are also nice complete guide in videos available at channel_videos.md.

Specific point

You may find also information at official_documentation.md and at channel_videos.md

Introduction

General

Building

Automation

Device tree

Storage

Trebble

Android Framework

Kernel

Reverse engineering
Qualcomm
MediaTek
Sony
Other vendors

Blob and dump

Reverse Engineering

Feature

Telephony
Encryption
Bluetooth
Graphics
Audio
Time
Customization

Security

SELinux
Audio

App integration

Optimization

Android CTS/VTS & test

Treble GSI

Debugging

Magisk

Vendor specific

Qualcomm
MediaTek
Raspberry Pi
Samsung
Google
Motorola
Other vendors

Rom specific

TWRP
LineageOS
ArrowOS
OmniROM
Other

Hardware

Learning tools

C language

Bash & shell

There is also an awesome list with more resources : awesome-shell.

Git, Gerrit & merging

There is also awesome lists with more resources : awesome-git, Git and Git Flow Cheat Sheet and git-tips.

GNU Make

There is also an awesome list with more resources : awesome-make

Soong

Other

Ninja build

Reverse Engeenering

IDA
ghidra

Formation

Documentation

Qualcomm

Sony

Video Channel

List of videos of this channels are available at channel_videos.md.

Information

Devices databases

Tools

Tools for helping development of Android Rom

General

Generator

  • TwrpBuilder - Generate twrp device tree just using recovery.img and build.prop.
  • twrpdtgen (doc) - Create a TWRP device tree only from an Android recovery stock image ROM.
  • aospdtgen - Create a LineageOS-compatible device tree from an Android stock ROM dump made with dumpyara.

Extractor/Repack/Patcher

Kernel

Blob & vendor

  • Android-Blob-Utility (sources) - Easily find which proprietary blobs is needed.
  • aosp-missing-blobs - Identify required blobs that are missing from AOSP ROM builds with dependencies.
  • DumprX - Firmware extractor based on dumpyara.
  • dumpyara - Dumping vendor and Android content of a device.
  • dumpyara (Python) - Like dumpyara but code in Python.
  • ldcheck - Check dependencies and missing for a blob file.
  • Apktool
  • Automated Device/Vendor Tree Deblobber
  • Ghidra [sources] - A software reverse .engineering (SRE) framework
  • androguard - Reverse engineering and pentesting for Android applications.
  • Dexcalibur - An Android reverse engineering platform focus on instrumentation automation.
  • androidre - Reverse engineering Android.
  • gnirehtet - Provides reverse tethering for Android.
  • Simplify - Generic Android Deobfuscator.
  • Bytecode Viewer - A lightweight user-friendly Java/Android Bytecode Viewer, Decompiler & More.
  • Dobby - A lightweight, multi-platform, multi-architecture hook framework.
  • Uber Apk Signer - A tool that helps to sign, zip aligning and verifying multiple Android application packages.
  • APKiD - Gives you information about how an APK was made.
  • APK Studio [source] - IDE for reverse-engineering Android application packages.
  • INZ APKTool - Easy and Small application for Decompiling/Recompiling APK, DEX and JAR files.
  • dogbolt.org - An online decompiler explorer.
  • godbolt.org - Compiler explorer.
  • radare2 - UNIX-like reverse engineering framework and command-line toolset.

Conversion

Informations

Debugging

Partitions, storage & data

Magisk

Drivers

Other

Vendor specific

Nexus

LG

  • LGLAF [source 1,2,3] - Utility for communication with LG devices in Download Mode.
  • SALT sources - Utility able to communicate with your device while in download mode.
  • LG-KDZ-dll-Tool/LGUP_UI-fixer/LG-Kdz-downloader [sources]
    • LG-KDZ-dll-Tool - for extracting that dll from a kdz package.
    • LGUP_UI-fixer - Yet another little add-on for LGUP to do the same.
    • LG-Kdz-downloader - A small batch tool to download kdz files from LG servers.

MediaTek

Qualcomm

Samsung

Sony

Huawei (and Honor)

  • PotatoNV - Unlock bootloader for Huawei & Honor devices on Kirin SoC.

Xiaomi

Motorola

Other

Users scripts

You can use them as inspiration to create your own or find solutions

Books

  • Android Firmware Customization by Arvind Choudhary (amazon)
  • Android Internals series by Jonathan Levin (website/summary)
    • Android Internals::Power User's View - volume 1 (amazon/free 2015 edition/wikileaks)
    • Android Internals::Developer's View - volume 2 (amazon)
    • Android Internals::Security - volume 3 (being written)
    • Android Internals::The Implementer's View - volume 4 (being written)
  • Android System Programming: Porting, customizing, and debugging Android HAL by Roger Ye (amazon)
  • Android Security Internals: An In-Depth Guide to Android's Security Architecture by Nikolay Elenkov (amazon)
  • Embedded Android: Porting, Extending, and Customizing by Karim Yaghmour (oreilly/amazon)
  • Embedded Programming with Android: Bringing Up an Android System from Scratch by Roger Ye (oreilly/amazon)

Online groupes

Telegram channel

Telegram is often used for asking help and share informations.

Discord group

Forum

Other Groups

News

Vendors sources

Where you can download open source software of your device, like the Linux kernel sources.

Blob

Binary Large OBject are often private libaries that you have to get from vendor systems.

GApps

ROMs

Biggest ROMs projects. You can check her Gerrit instance for study how to port ROMs.

Sources example

Source code for some project related to Android AOSP.

Device project

Some device project source which you can inspect to study how to port devices.

Related awesome

Todo

Contributing

Contributions welcome! Read the contribution guidelines first.