将Android源代码中的应用编译成system/app而不是data/app?

7
我正在从源代码编译Android ROM,有几个应用程序编译后存放在手机的data/app目录中,但无法通过手机设置进行卸载。我希望它们无法从手机上卸载,并且编译到system/app而不是data/app中。
有什么建议吗?
编辑:拼写错误

我在编译ROM应用方面没有太多经验,但我知道您需要使用系统签名对应用程序进行签名,以使它们成为系统应用程序。以下链接是否有效?https://dev59.com/m3A65IYBdhLWcg3wyRyk - Austyn Mahoney
试一下。我把它添加到了<application />标签中,希望那是正确的位置。编辑:糟糕,我把它添加到了<manifest />标签中,正在重试。 - Patches
你还需要使用正确的密钥对应用程序进行签名,而不仅仅是将该值添加到清单中。 - Austyn Mahoney
我正在尝试通过在Android.mk中设置LOCAL_CERTIFICATE:= system来为我的应用程序签名,但现在根本无法安装该应用程序。 - Patches
1
很抱歉,Makefile 超出了我的专业舒适区。也许有其他人能够帮助你。 - Austyn Mahoney
4个回答

3

添加:

LOCAL_MODULE_PATH := system/app
LOCAL_UNINSTALLABLE_MODULE := true
LOCAL_CERTIFICATE := platform

2
你能提供相关文档吗?当我将它放到mk文件中时,应用程序根本无法构建。 - Saleh
2
LOCAL_UNINSTALLABLE_MODULE 是什么意思? - Matt

2

这里是一个可以使用的 mk 文件示例。在我的情况下,该应用程序会被构建到 system/app 中:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_PACKAGE_NAME := package_name
LOCAL_CERTIFICATE := platform

include $(BUILD_PACKAGE)

# Use the folloing include to make our test app
include $(call all-makefiles-under,$(LOCAL_PATH))

在 Android 构建中,所有默认应用都会放置在 system/app 目录下,如果我想将它们发送到 data/app 目录下怎么办? - Jeegar Patel
请查看我的问题:https://dev59.com/CWfWa4cB1Zd3GeqPgFci - Jeegar Patel

0
LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional
LOCAL_UNINSTALLABLE_MODULE := true
LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)
LOCAL_CERTIFICATE := platform

LOCAL_SRC_FILES := $(call all-java-files-under, src)

LOCAL_PACKAGE_NAME := MyTestApp

LOCAL_PROGUARD_ENABLED := disabled
LOCAL_PRIVILEGED_MODULE := true

LOCAL_STATIC_JAVA_LIBRARIES := libarity android-support-v4

include $(BUILD_PACKAGE)

include $(call all-makefiles-under,$(LOCAL_PATH))

0

在cm_10.2中,我将我的应用程序添加到packages/apps中,默认情况下,mm将其构建到/data/app中。我希望它位于system/app中。通过将以下内容添加到Android.mk文件中,它成功了:

LOCAL_MODULE_PATH := $(TARGET_OUT_APPS)

但我不确定这是否是一个干净的方法,因为我几乎找不到任何人这样做。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接