2011-04-08 14 views
11

ソース(AOSP)からアンドロイドを構築する際にスーパーユーザ権限をどのように含めるかを知っていますか?スーパーユーザーでAndroidを構築する

+0

あなたはシェルまたはアンドロイドアプリでスーパーユーザー特権を意味しますか? –

+0

@ m-ricwhatアンドロイドアプリのためのスーパーユーザのプリビリジでAndroidをコンパイルしたいのですが?出来ますか?基本的には、/ systemディレクトリに読み書きするアプリケーションが必要です。出来ますか?私はそれが根を必要と知っている。しかし、私はそれがアンドロイド自体を構築する方が良いと思った問題を避けるために。リファレンスボード以降、何かを試しています – Arjun

答えて

9

それらのラインsystem/core/rootdirやAndroidのソースで(pandaboard用などdevice/ti/panda/init.rc)お使いのデバイスに関連したinit.rcを編集し、ルート(ED)のシェルを取得し、変更するには:

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のスティッキービットを設定する必要ができます。例えば、私は以下のメイクファイルを使用しました:

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

Superuser.apkをAOSPに埋め込むことは可能でしょうか?私はAPK(prebuilt/preinstalled)にroot権限を追加します。 –

+1

Superuser.apkとSuperSU.apkでは、suバイナリを変更する必要があります(zipファイルに含まれています):http://superuserdownload.com/。 apkを埋め込むだけでは不十分です。ただ1つのアプリケーションに特化するために、これを読んでください:http://su.chainfire.eu/#how –

+0

suバイナリはゼリービーンを表示しません。 –

関連する問題