2011-04-08 78 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