2

カスタマイズしてAOSPいます。I have system service、これはSystemServerotherで始まりsystem servicesます。からシェルでいくつかのコマンドを実行しますservice。私は使用してRuntime.getRuntime().exec(command)います-コマンドがルート権限を必要としない場合、これは正常に機能します。私のシステムサービスには、「ルート」ではなく「システム」権限があります(論理的です)。"su -c"プレフィックス (例 - )を付けてコマンドを実行しようとしていますが"su -c mkdir /mnt/sdcard/NewFolder"、成功しません。

質問: root としてシェル コマンドを実行する方法を教えてください。(ビルドには su バイナリが含まれています)。システム権限ではなく、ルート権限で実行されるサービスを作成する必要があります (可能であれば!)

編集: SuperUser.apk は必要ありません。su バイナリだけです (追加機能のためのビジーボックスの可能性があります)。

4

1 に答える 1

1

どのようなエラーが表示されますか? system/extras/su/su.c を変更する必要があるかもしれません:

/* Until we have something better, only root and the shell can use su. */
myuid = getuid();
if (myuid != AID_ROOT && myuid != AID_SHELL && myuid != AID_SYSTEM) {
    fprintf(stderr,"su: uid %d not allowed to su\n", myuid);
    return 1;
}
于 2013-05-17T14:59:39.017 に答える