Open-source project
yuchuangu85/Launcher3 avatar
yuchuangu85/Launcher3

Launcher3: a multi branch AOSP launcher fork for Android 17

This is fork from Launcher3 in AOSP.

741 stars214 forksKotlinLicense varies

At a glance

What is it?
yuchuangu85/Launcher3 is a fork of the AOSP Launcher3 home app that keeps separate branches per Android release, including Quickstep capable variants. It is aimed at people building a custom launcher inside the AOSP tree rather than at end users.
Who is it for?
Use this fork if you are building a custom Android home screen from AOSP sources and want a Launcher3 baseline that already tracks newer platform releases, including Quickstep. Do not use it as a drop-in replacement for a stock launcher, and do not treat the repository as a general Android launcher project, because the split into platform branches is the whole point.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 46 days ago.
What is it written in?
Mainly Kotlin, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 25, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A fork of the AOSP home screen, not a standalone launcher

This repository describes itself in one line: a fork from Launcher3 in AOSP. That distinction decides what you can and cannot expect from it. There is no APK to install and no settings screen to configure, because Launcher3 is the Android platform's own home application and building it means compiling it inside a platform tree with the platform's own build system.

The README points at the upstream source as the reference:

bash
https://cs.android.com/android/platform/superproject/+/master:packages/apps/Launcher3/

The primary language is listed as Kotlin, and the top level entries confirm the shape of a platform component rather than an app project. There are Android.bp and Android.mk style build files at the root, a settings.gradle and a build.gradle, a gradle directory, and platform_frameworks_libs and prebuilts directories sitting next to the launcher sources. There are also generated-src and generated-src-go directories, protos and protos_overrides, dagger and aconfig directories, checks, and a lint-baseline.xml.

One thing stands out for anyone thinking about redistribution. There is no LICENSE file in the top level listing, and the licence field for the project is unknown, so treat the licensing question as unresolved rather than assuming an open source grant.

The branch list is the architecture of this fork

The most useful part of the README is a list of branches, one per Android release, which tells you immediately how this fork is meant to be used. The main branch is described as a fork from lawnchair-17-release and is aligned with Android 17, and the update note at the top of the README says the update on 20260906 brought in android-17-release.

Around it sit branches for the older platforms: Launcher3-16-s2-release against android16-s2-release, Launcher3-15-s1-release and Launcher3-15-qc, Launcher3-14-s2-release, Launcher3-13, Launcher3-13-Qc, Launcher3-12, Launcher3-11, Launcher3-10.0, Launcher3-9.0, Launcher3-8.0, Launcher3-7.0 and Launcher3-6.0. A few entries pin an exact upstream tag, such as Launcher3-13 pointing at Launcher3-13.0.0_r83 with its commit hash, and Launcher3-10.0 pointing at android-10.0.0_r46.

The pattern is worth stating plainly. This is not one codebase kept compatible with everything. It is a set of snapshots, one per platform release, each of which tracks a specific AOSP tag. When you pick a branch you are also picking a platform baseline.

The Qc branches exist to compile Quickstep

Several branch names carry a suffix that the README annotates as the Qualcomm version, and the annotation adds that the Quickstep version can be compiled from them. Launcher3-15-qc, Launcher3-13-Qc and Launcher3-12 are the entries that mention it, while Launcher3-12 is also marked as able to compile Quickstep.

That detail matters because Quickstep is the launcher mode with the workspace overview and the recents pane, and in AOSP it depends on parts of the platform that are not always present in a given vendor tree. The repository layout reflects the split. There are both quickstep and src_no_quickstep directories, plus a separate src_plugins directory, which suggests the launcher sources are divided by feature set rather than kept in one directory with build flags.

Also present are res and res_merged, shared and modules directories, and an image directory holding the preview screenshots referenced from the README. The tutorial section of the README points at a series of Chinese-language walkthroughs hosted on codemx.cn, covering the overview, the data loading flow, binding screens, icons, folders and widgets, the data reload on app install, update and uninstall, workspace swiping, drag and drop, widget loading and resizing, and loading icons and setting the wallpaper.

That tutorial series is explicitly written against the Android 6.0 version of Launcher3, and the README warns that the latest version differs substantially, adding annotations at key points to help readers adapt it.

The systemui dependency is the heaviest one

The README lists the libraries Launcher3 has to build against, and the largest group is systemui. The source is given as a googlesource URL for frameworks/libs/systemui, and the local path is frameworks/libs/systemui. The listed subdirectories are aconfig, ambientlib, animationlib, compilelib, contextualeducationlib, displaylib, iconloaderlib, mechanics, monet, motiontoollib, msdllib, toruslib, tracinglib, viewcapturelib and weathereffects, together with .gitignore, Android.bp and PREUPLOAD.cfg.

That list gives a fair picture of what a modern launcher pulls in. Monet and weathereffects relate to the system wallpaper and themed colouring, iconloaderlib is the icon loading infrastructure, msdllib and mechanics are the motion and gesture pieces, and aconfig is the flag configuration layer. The dependency is not optional in the same way a small library would be: it is a set of framework components that must be present in the platform tree.

The wmshell dependency is listed separately, sourced from frameworks/base and located at frameworks/base/libs/WindowManager/Shell, which is the window management shell surface the launcher draws into.

frameworks/base/libs and the android.jar trick

A third dependency group comes from frameworks/base/libs, referenced at the android16-s2-release refs and located at frameworks/base/libs. The listed subdirectories are androidfw, appfunctions, dream, hostgraphics, hwui, incident, input, nativehelper_jvm, protoutil, securebox, services, storage, tracingproxy, usb and WindowManager.

That list covers a wide slice of the framework: hwui and hostgraphics for rendering, input for the event pipeline, services and storage for the system services the launcher talks to, incident and tracingproxy for diagnostics, and dream for the daydream surface.

There is a separate section on android.jar. The README describes replacing the corresponding android.jar from the aosp-android-jar project, and states that doing so makes APIs which cannot otherwise be read become readable. In practice that means the build compiles against a fuller stub of the platform API surface than the one that ships with the tree, which is the standard shortcut for building platform code outside the full AOSP environment. The repository ships a local.properties file, which is where such machine specific paths are usually configured.

For the protobuf work, the README links the Protobuf repository and the protobuf-gradle-plugin, which lines up with the protos and protos_overrides directories at the top level.

Release history and what the project does not tell you

Maintenance signals here are thin and worth reading carefully. There is exactly one published release, Launcher3_v1.0, dated 2018-05-17, and it long predates the branch structure the README describes today. The last push was on 2026-09-09, which says the branch tips do receive updates, but the release tags were not kept in step with them.

The documentation is also a working note rather than a guide. The dependency sections are lists of paths with no explanation of how to fetch them, no setup walkthrough, and no indication of which Android SDK or build tools version is required. The tutorial links are external and were written for Android 6.0. The README does not document how to produce a flashable build, how to sign it, or how to test it on a device, and it does not say whether the Qualcomm Qc branches differ in any way beyond the stated ability to compile the Quickstep version.

There is also a stray hs_err_pid19969.log file in the top level listing, which is a Java crash dump rather than documentation.

So the practical read is that this repository is a curated set of AOSP launcher snapshots with the dependency paths recorded, useful to someone already building inside a platform tree, and thin on everything a newcomer would ask about.

Editorial conclusion

Use this fork if you are building a custom Android home screen from AOSP sources and want a Launcher3 baseline that already tracks newer platform releases, including Quickstep. Do not use it as a drop-in replacement for a stock launcher, and do not treat the repository as a general Android launcher project, because the split into platform branches is the whole point. Check first which branch matches your platform, since main is described as forked from lawnchair-17-release while separate branches cover Android 6 through 16, and note that the only published release is Launcher3_v1.0 from 2018-05-17 while the last push was on 2026-09-09.

Frequently asked questions

Which branch of yuchuangu85/Launcher3 should I use for Android 17?

The main branch, which the README describes as forked from lawnchair-17-release and aligned with Android 17. The update note dated 20260906 records bringing in android-17-release.

Can the Launcher3 fork build the Quickstep version?

The README notes that the Qc branches, Launcher3-15-qc and Launcher3-13-Qc, are the Qualcomm versions and can compile Quickstep, and marks Launcher3-12 the same way. The repository contains separate quickstep and src_no_quickstep source directories.

What do I need before building yuchuangu85/Launcher3?

The README lists the framework dependencies that must exist in the platform tree, including systemui under frameworks/libs/systemui and the frameworks/base/libs group, plus wmshell. It also describes replacing the android.jar from the aosp-android-jar project so that otherwise unreadable APIs can be read.

Official sources

  1. Issues
  2. Project website
  3. README
  4. Releases
  5. yuchuangu85/Launcher3 on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/yuchuangu85-launcher3.svg)](https://hysenlabs.com/projects/yuchuangu85-launcher3)

Was this useful?