2011-04-08 5 views
11

소스 (AOSP)에서 안드로이드를 빌드 할 때 수퍼 유저 권한을 포함하는 방법을 아는 사람이 있습니까?수퍼 유저로 Android 빌드

+0

셸 또는 Android 앱에서 수퍼 유저 권한을 의미합니까? –

+0

@ m-ricwhat 안드로이드 앱을위한 슈퍼 유저 유료 앱으로 안드로이드를 컴파일하고 싶다면? 그것은 가능한가? 기본적으로 나는/system 디렉토리를 읽고 쓰는 응용 프로그램을 원한다. 가능한가? 응원 할 필요가 있다는 것을 압니다. 하지만 문제를 피하기 위해 안드로이드 자체를 만드는 것이 더 낫다고 생각했습니다. 그것의 레퍼런스 보드 이후 우리는 그것에 뭔가를 테스트하고있다 – Arjun

답변

9

그 라인을 system/core/rootdir 또는 안드로이드 소스에 (pandaboard 예 : device/ti/panda/init.rc) 장치에 관련된 init.rc을 편집, 루트 (에디션) 쉘을, 그리고 변경하려면 :

service console /system/bin/sh 
    class core 
    console 
    disabled 
    user shell 
    group log 

로 :

  1. :
    service console /system/bin/sh 
        class core 
        console 
        disabled 
        user root 
        group root 
    

    이 AOSP에서 Superuser.apk를 포함하려면, 당신은 가져 오기 및 구축해야 su-binary (예 : external/) 및 스텁/제거 system/extras/su 패키지.

  2. Superuser (예를 들어, packages/app/에서)

또한/SU-진 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: [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를 포함시킬 수 있습니까? APK (사전 구축/사전 설치)에 루트 권한을 추가하고 싶습니다. –

+1

Superuser.apk 및 SuperSU.apk는 su 바이너리 (zip 파일에 포함)를 변경해야합니다 (http://superuserdownload.com/). apk를 포함시키는 것만으로는 충분하지 않습니다. 단 하나의 응용 프로그램에만 한정하려면 다음을 읽어보십시오. http://su.chainfire.eu/#how –

+0

su 바이너리는 젤리 빈을 나열하지 않습니다. –

관련 문제