模块依赖如何在Android中运行?
我对su-binary(
https://github.com/git-core/su-binary)做了一些小改动,添加了一个目标来设置SUID.
我使用的Android.mk: http://pastebin.com/N0gMJT4u 在Android源代码树的根目录下运行make时,运行正常: $make -j5 [...] system/core/rootdir/Android.mk:42: warning: ignoring old commands for target `out/target/product/panda/root/init.rc' echo "Setting SUID/GUID to su-binary" Setting SUID/GUID to su-binary Installing busybox chmod ug+s out/target/product/panda/system/xbin/su [...] 在外部/ su-binary中运行mm -B时:http://pastebin.com/8HmUJBA0 根据https://groups.google.com/forum/#!msg/android-building/dtNZFj5pe1w/PRY2MXADXG4J
试过: $rm out/target/product/panda/system/xbin/su $make external/su-binary [...] make: Nothing to be done for `external/su-binary'. $rm out/target/product/panda/obj/EXECUTABLES/su_intermediates/su $make external/su-binary [...] make: Nothing to be done for `external/su-binary`. 模块依赖如何在Android中运行? 解决方法
好的,我通过更改Android.mk来运行它:
>以不同方式命名$(SU_BINARY)目标,即$(SU_BINARY)-post.更好,因为之前它与LOCAL_MODULE和BUILD_EXECUTABLE组合定义的目标具有相同的名称. 看起来像: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := su LOCAL_SRC_FILES := su.c db.c activity.cpp SU_SHARED_LIBRARIES := liblog libsqlite ifeq ($(PLATFORM_SDK_VERSION),4) LOCAL_CFLAGS += -DSU_LEGACY_BUILD SU_SHARED_LIBRARIES += libandroid_runtime else SU_SHARED_LIBRARIES += libcutils libbinder libutils LOCAL_MODULE_TAGS := eng endif LOCAL_C_INCLUDES += external/sqlite/dist LOCAL_SHARED_LIBRARIES := $(SU_SHARED_LIBRARIES) LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES) SU_INSTALL_DIR := $(TARGET_OUT)/xbin SU_BINARY := $(SU_INSTALL_DIR)/su # taken from busybox-android $(SU_BINARY)-post: su @echo "Setting SUID/GUID to su-binary..." chmod ug+s $(TARGET_OUT_OPTIONAL_EXECUTABLES)/su ln -sf $(TARGET_OUT_OPTIONAL_EXECUTABLES)/su $(TARGET_OUT_EXECUTABLES)/su ALL_DEFAULT_INSTALLED_MODULES += $(SU_BINARY)-post include $(BUILD_EXECUTABLE) ALL_DEFAULT_INSTALLED_MODULES是我认为模块安装后很晚才出现的规则.但我要深入研究它是否是我想在这里做的最好的解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |