android - 使用 super 用户构建 Android

标签 android root android-source

有谁知道从源代码构建 android (AOSP) 时如何包含 super 用户权限?

最佳答案

要获得 root(ed) shell,请编辑 system/core/rootdir 或与您的设备关联的 init.rc(例如 device/ti/panda/init.rc for pandaboard) 在 android 源代码中,并更改这些行:

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

要在 AOSP 中嵌入 Superuser.apk,您必须获取并构建:

  1. su-binary (例如在 external/ 中)和 stub /删除 system/extras/su 包。
  2. Superuser (例如在 packages/app/ 中)

您可能还必须在 su-binary/Android.mk 中设置 /system/xbin/su 的粘性位。例如,我使用了以下 makefile:

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)

关于android - 使用 super 用户构建 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5597139/

相关文章:

Android NetworkStats.Bucket 数据未更新

mysql - 在 docker 中无需 root 即可初始化 Mariadb

android-source - Pixel Experience 编译期间出现音频策略错误

java - Firebase Android 读取数据 -> 处理 -> 更新数据 "Global variable problem"

android - Android EditText中的垂直内容对齐

android - 为什么在请求 getevent 时我没有在某些 root 的 Android 设备上收到 "EV_KEY"事件?

java - 验证根访问权限 : How to do?

android - 你如何调试android平台源代码?

android-source - 从源代码构建 Android Automotive

javascript - 添加 .pdf 时,HTML 文件上传在 Android 上不显示图库