ソース(AOSP)からAndroidをビルドするときにスーパーユーザー権限を含める方法を知っている人はいますか?
17434 次
1 に答える
12
root(ed) シェルを取得するには、Android ソースでsystem/core/rootdir
デバイス (pandaboard など) に関連付けられている init.rcを編集し、それらの行を変更します。device/ti/panda/init.rc
service console /system/bin/sh
class core
console
disabled
user shell
group log
の中へ:
service console /system/bin/sh
class core
console
disabled
user root
group root
Superuser.apk を AOSP に埋め込むには、フェッチしてビルドする必要があります。
/system/xbin/su
また、su-binary/Android.mkのスティッキー ビットを設定する必要がある場合もあります。たとえば、次のメイクファイルを使用しました。
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
SU_CMD := su
SYMLINKS := $(addprefix $(TARGET_OUT_EXECUTABLES)/,$(SU_CMD))
$(SYMLINKS): $(LOCAL_INSTALLED_MODULE) $(SU_BINARY)-post $(LOCAL_PATH)/Android.mk
@echo "Symlink: $@ -> /system/xbin/$(SU_CMD)"
@mkdir -p $(dir $@)
@rm -rf $@
@ln -sf /system/xbin/$(SU_CMD) $@
ALL_DEFAULT_INSTALLED_MODULES += $(SU_BINARY)-post $(SYMLINKS)
include $(BUILD_EXECUTABLE)
于 2012-09-27T14:44:48.850 に答える