问题 如何在AOSP构建中设置默认启动器?


我正在修改AOSP源代码,因为我的应用程序需要在自助服务终端环境中运行。

我希望Android直接启动到应用程序。我排除了 的launcher2 从 generic_no_telephony.mk,并在那里添加了应用程序。现在Android一直提示我 选择默认启动器

弹出窗口中提供的两个选项:

  1. 家庭样品
  2. 我的应用。

如何排除Android Home Sample Launcher?或者是否有另一种方法在AOSP构建中设置默认启动器?


6018
2018-04-07 11:30


起源



答案:


而不是修改AOSP make文件(这很烦人,因为那时你需要跟踪你的更改),更容易将LOCAL_OVERRIDES_PACKAGES行添加到你的应用程序的make文件中。

例如:

LOCAL_OVERRIDES_PACKAGES := Launcher2 Launcher3

添加到您的Android.mk文件将确保这些包不会添加到添加此包的任何版本中。

在那之后,你应该做一个

make installclean

然后以你总是进行构建的方式开始构建。 make installclean对于删除前一版本遗留的软件包非常重要。

我还在另一个问题中找到了如何做到这一点的一个很好的答案,请参阅: 如何只用一个应用程序制作嵌入式Android操作系统?


12
2018-04-07 15:27



我现在正在尝试,希望它的工作原理=)! - user3506467
非常感谢,工作。 - user3506467
我添加了LOCAL_OVERRIDES_PACKAGES:= Launcher2 Launcher3。我的应用程序已安装。但它总是安装Launcher2。启动后,我会提示选择我的启动器。当我在generic_no_telephony.mk中删除Launcher2时,将不会安装Launcher2,但我会在我的启动器和家庭样本之间进行选择 - maggocnx
这个答案也不适用于我。尽管重写了Home Launcher2 Launcher3,我仍然会在启动时显示Home和MyApp的菜单....任何想法? - Innovine


答案:


而不是修改AOSP make文件(这很烦人,因为那时你需要跟踪你的更改),更容易将LOCAL_OVERRIDES_PACKAGES行添加到你的应用程序的make文件中。

例如:

LOCAL_OVERRIDES_PACKAGES := Launcher2 Launcher3

添加到您的Android.mk文件将确保这些包不会添加到添加此包的任何版本中。

在那之后,你应该做一个

make installclean

然后以你总是进行构建的方式开始构建。 make installclean对于删除前一版本遗留的软件包非常重要。

我还在另一个问题中找到了如何做到这一点的一个很好的答案,请参阅: 如何只用一个应用程序制作嵌入式Android操作系统?


12
2018-04-07 15:27



我现在正在尝试,希望它的工作原理=)! - user3506467
非常感谢,工作。 - user3506467
我添加了LOCAL_OVERRIDES_PACKAGES:= Launcher2 Launcher3。我的应用程序已安装。但它总是安装Launcher2。启动后,我会提示选择我的启动器。当我在generic_no_telephony.mk中删除Launcher2时,将不会安装Launcher2,但我会在我的启动器和家庭样本之间进行选择 - maggocnx
这个答案也不适用于我。尽管重写了Home Launcher2 Launcher3,我仍然会在启动时显示Home和MyApp的菜单....任何想法? - Innovine


以上答案是正确的。 LOCAL_OVERRIDES_PACKAGES有效。 但要解决其中一条评论;我必须做 LOCAL_OVERRIDES_PACKAGES:= Home Launcher2 Launcher3

Home是示例Home应用程序,如果Lancher2也不可用,它将作为Launcher。

只有在拆除这3个库存发射器后;我是否能够默认看到我的自定义启动器启动而没有任何要求用户选择的对话框。

(我的测试操作系统是Android N,ymmv)


2
2017-08-11 23:13





除非您执行以下步骤,否则系统将提示您选择要选择的主启动器。

如果您希望您的主发射器真正覆盖其他发射器而不必从构建中删除其他发射器,请按照以下步骤操作。

为您的设备上的所有其他家庭发射器添加覆盖到您的自定义家庭启动器的Android.mk :(您可能有其他人要覆盖,但这里包含的内容)

`LOCAL_OVERRIDES_PACKAGES := Home Launcher2 Launcher3`

将自定义主启动器应用程序模块添加到产品包列表中。有多个文件将模块添加到产品包列表中。它们位于......

“/你-AOSP根/编译/目标/产品/”

我选择编辑并添加模块的文件是“Core.mk”。

将模块添加到产品包列表中:

    PRODUCT_PACKAGES += \
         BasicDreams \
         Browser \
         Calendar \
         .
         .
         .
         MmsService \
         YourModuleHere

调用此方法清除任何旧模块/映像的out目录(不删除所有out目录):

make installclean

调用您的构建脚本


1
2018-05-31 19:01