2011-07-07 13 views
3

自分のファームウェアを作成するOEMで、デバイスにプリインストールされたアプリを削除できないようにするには、どうすればよいですか?ユーザーがプリインストールされたAndroidアプリを削除できないようにするにはどうすればよいですか?

例えば、私がACME Gadget 2000を作ったとすると、ユーザーがそれを箱から取り出したときに、Catsのアプリが既に面白いことを言っているので、ユーザーがそれを削除できないようにしたい、私はAPKと正確に何をしなければなりませんか?

私はVerizon Motorola Droid Xを持っており、削除できないアプリがいくつか付属しています。彼らはどのようにしているのですか?

ありがとうございました。除去不可能です

デビッド

+3

これはあなたの質問に答えるものではありませんが、もし彼らがデバイスを根絶するなら、彼らは常にアプリケーションを削除することができます。 –

答えて

5

OEMアプリケーションが/system/appディレクトリにインストールされている(少なくとも私が今まで見てきたすべてのケースでは、私は、例外があるかもしれないと仮定します)。 /systemパーティションはデフォルトで読み取り専用でマウントされているため、アンインストールすることはできません(デバイスをルートすることはできません)。 .apk自体がアンインストール可能であるように設計する方法については、開発者がこれを行うことを可能にすることに明らかに重要なセキュリティの影響があるため、わかりません。サムスン恍惚から

例マウントリスト:

の/ dev /ブロック/ stl9 /システムは、がrelatime、VFAT、log_off、なし=チェックRO RFS GID/UID/RWX、iochaset = UTF8 0 0

+0

ここに私が見つけた2つの記事があります。それらには、APPをsystem/appフォルダに入れる方法に関する一連の指示があります。 http://forum.samdroid.net/f38/move-apps-system-app-1401/ http://stackoverflow.com/questions/2048478/push-apk-to-system-app-in-htc-ヒーロー – DavidJBerman

0

これはちょっと難しいことですが、できます。ちょうどそれをキャンセルする - あなたのBroadcastReceiverにこの意図をキャッチするとき

<receiver android:name ="com.mydomain.myapplication.PackageReceiver"> 
      <intent-filter> 
       <action android:name="android.intent.action.PACKAGE_REMOVED"/>    
       <data android:scheme="package" /> 
      </intent-filter> 
</receiver> 

そして:あなたはandroid.intent.action.PACKAGE_REMOVEDを発生したときのように、トリガBroadcastReceiverを割り当てる必要があります。おそらく、他のものの前にブロードキャストを受信する方法でインテントフィルターの優先度を定義するべきでしょう。

しかし、削除しようとしているパッケージがandroid.intent.action.PACKAGE_REMOVEDを受け取らないという問題は簡単です。つまり、あなたのアプリケーションをアンインストールする予定のサービスを監視する独自のアプリケーション/パッケージを保有しなければならないということです。

これは一般的な仕組みですが、実際にはどのように動作するのでしょうか...私はうんざりです...試してみてください!

関連する問題