2011-04-08 85 views
11

有没有人知道如何从源代码(AOSP)构建android时包含超级用户权限?用超级用户建立Android

+0

您的意思是在shell或android应用程序中的超级用户权限? – 2012-09-27 14:26:00

+0

@ m-ricwhat如果我想用超级用户previliges为我的android应用程序编译Android?可能吗?基本上我想要一个应用程序读取或写入/系统目录。可能吗?我知道它需要生根。但为了避免这些问题,我认为最好是构建android本身。由于它是一个参考板,我们正在测试它 – Arjun 2016-10-05 11:30:07

回答

9

为了得到一个根(ED)壳,编辑system/core/rootdir或在机器人源相关联到您的设备(例如为device/ti/panda/init.rc PANDABOARD)的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,你必须获取和建设:

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

也可能必须设置的/system/xbin/su粘滞位在SU-二进制/ Android.mk。例如,我使用以下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: [email protected] -> /system/xbin/$(SU_CMD)" 
    @mkdir -p $(dir [email protected]) 
    @rm -rf [email protected] 
    @ln -sf /system/xbin/$(SU_CMD) [email protected] 

ALL_DEFAULT_INSTALLED_MODULES += $(SU_BINARY)-post $(SYMLINKS) 

include $(BUILD_EXECUTABLE) 
+0

这是可能的,只需在AOSP中嵌入Superuser.apk?我想将root权限添加到APK(预建/预安装)。 – 2016-05-15 07:08:00

+1

Superuser.apk和SuperSU.apk需要更改su二进制文件(包含在zip文件中):http://superuserdownload.com/。只需嵌入apk将不够。具体到只有一个应用程序,阅读此:http://su.chainfire.eu/#how – 2016-05-16 00:27:33

+0

su-binary不列出果冻豆。 – 2016-05-17 05:10:20