android1.6しか、知りませんが、
androidのアプリは、サンドボックス内でしか、
動作しません。セキュアです。
jniであっても、守られています。
そこから、逸脱するには、マニフェストの中で
パーミッションを宣言します。
今回は、sd-cardですね。
次の逸脱する方法が、準備されてます。
「他のアプリケーションと同じプロセス内で
実行し、アクセスを共有する。」
具体的には、マニフェストでアプリケーションに
同じ ID を割り当てて
同じ鍵を使って、アプリケーションに署名して、
インストールしる。
この場合、rootの鍵が必要かと。
自分は、この方法は、成功してません。
ですので、存在すらも謎です。
ファイルのパーミッション変更は、システムの
脆弱性そのものです。root獲った携帯で
開発時に使う用途に限定すべき。
藤本です。
いつも、大変参考にさせてもらっております。
今回、sharedUserIdにrootを指定する方法が無いか
皆様のご意見を頂きたく質問させてください。
そこで、作成アプリのManifestファイルにsharedUserIdとしてandroid.uid.rootと指
定し、
PackageManagerService.javaにandroid.uid.systemに倣って以下を追加しました。
rootをsharedUserIdとして用いることは不可能なのでしょうか?
どなたか解法を持っている方がいましたらご教授のほど、よろしくお願い致します。
--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られて
います。
このグループに投稿するには、android-g...@googlegroups.com にメールを
送信してください。
このグループから退会するには、
android-group-j...@googlegroups.com にメールを送信してくださ
い。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja か
らこのグループにアクセスしてください。
システム権限を付与したい場合は、通常 'android.uid.system'を指定します。
そのときは、更に、プラットフォーム鍵で署名する必要があります。
( /build/target/product/security/あたりにあります)
また、root化されたデバイスだと、suコマンドでroot権限が取れます。
そのときは、superuser.apkのダイアログが出て、ユーザがUIで
許可する必要があります。
ただ、SDカードはVFATなので、パーミッションは元々ありません。
ohisama様
Nikolay様
村上様
ご回答くださり、大変ありがとうございます。
村上様のおっしゃるように前提条件がちゃんと説明できてませんでした。
申し訳ございません。
前提としては、村上様が想定したことで合っています。
ActivityManagerなどで弾かれている可能性は考えていませんでした。弾いている箇所がないか調べてみたいと思います。
ありがとうございました。
また、Nikolay 様が言うように、SDカードのファイルシステム上、パーミッションを任意ファイルごとに設定できないことは初めて知りました。
SDカード内で、パーミッションを任意に変更し、ファイラーなどが参照できないようにしてみたかったのですが、
別の手法を考えてみたいと思います。
皆様、大変ありがとうございました。