adb uninstallコマンドを使用してシステムアプリをアンインストールする方法(rmまたはその他の方法で削除しないでください)


12

混乱を避けるためにこれに言及する必要があります。この質問は重複していません。この質問は、adbを使用してパッケージをアンインストールする場合に固有です。いくつかの類似した質問がありますが、これらはすべて何らかの方法でアプリケーションを削除することに焦点を合わせているため、すべてこの質問とは異なります。

パッケージファイルを削除するために「rm」コマンドを使用して回答を提供しないでください。また、不正な形式のパッケージ名、または末尾の改行に関連する回答。それらは、他のすべての質問でほぼすべて網羅されていると思います。

私が持っていたpm uninstall機能が、ROMのアップグレード後に。いくつかのものはもうアンインストールされません。たとえば、次の2つのシステムアプリ(以前のROMで削除したため、全体的なパフォーマンスが大幅に向上しました):
/
system / priv -app / SecurityCenter / SecurityCenter.apk = com.miui.securitycenter /system/app/Updater/Updater.apk= com.android.updater

今、それらを午後にアンインストールしようとするとエラーが発生します: 失敗[DELETE_FAILED_INTERNAL_ERROR]

ただし、他のシステムアプリ(通常のAndroidインターフェイスではアンインストールされません)は、pm uninstallコマンドでアンインストールします。例:
/system/priv-app/Browser/Browser.apk=com.android.browser

両方ともシステムアプリですが、両者の違いは何でしょうか?

参考のために、MIUI 8.1.6.0から8.5.3.0にアップグレードし、TWRPとSuperSUを再インストールしました。他の人も同じ状況にあると思うので、この質問は私のROMに固有のものではありません。しかし、いくつかのシステムアプリをアンインストールできるという利点があるようです。そして、すべてのアプリをアンインストールするために、誰にでも解決策を見つけるために貢献したいと思っています。

私は試しました:mount -o rw、remount / systemです
が、それは解決しませんでした。

途中でアイデアを手伝ってください。ありがとう!


Update 1 -断続的な問題を回避するための手順を確認
* TWRPのすべてのパーティションをワイプ
*最新のROMをインストール(MIUI 8.5.3.0)
* TWRPに戻り、/ Dataのみをワイプ
*デバイスに付属のROMのバックアップバージョンから復元/ Data(MIUI 8.1.6.0)
* OSを起動した後、設定でROMが最新(MIUI 8.5.3.0)と表示される

これで、試したすべてのアプリを午後にアンインストールできます。最も回復力の高いものでさえ:Google APP、アップデーター、セキュリティ。

このFrankenstein .. err私はこれまでハイブリッドROMが正常に動作していることを意味し、すでに多くのシステムパッケージを削除しており、電話(Redmi 3S +)が目に見えて高速になっています。しかし、これが原因でGeneric Solutionとなった原因を特定したいと思います。それで、もしそれが壊れていないなら、私は喜んでそれを壊しますので、次に壊れたとき、それが何を引き起こし、どのようにそれを修正するかを知るでしょう。

Update 2 -
*すべてのパーティションをワイプし、すべてのパーティションを元のROMから復元しました。
*工場設定に復元(TWRPを使用)
*およびROMを起動した後、TWRPに戻って別のバックアップを作成
*上記のUpdate 1と同じシナリオを使用、ただしここから/ Dataを使用する場合のみ pm uninstallは機能しませ

私が注目すべき2つの/ Dataパーティションの違いについて何か考えはありますか?


1
AFAIK pm uninstallはシステムアプリでは使用できません。あなたが本当にしたいかどうかなど、それははっきりしていないアンインストールするか、単純にするために非表示アプリ(あなたが言及したpm disable)、可能性がpm hideあなたが本当に後にしている何もし?
イジー

@Izzyはい、できます。それが私が上で言っていることです、私はちょうどそれを編集/少し明確にしました。私は午後にアンインストールしたいのですが、私が意図したことは、アップグレードする前に、システムアプリでアンインストールと無効化の両方を行い、アップグレード後にすべてを処理する素敵なスクリプトを書くことさえできました。
エミール

システムアプリで成功したことはありませんpm uninstall。しかし、私は推測を持っています:あなたの以前のROMは「エンジニアリング」ビルドですか?engビルド(別名devビルド)で動作すると思います。
iBug

@iBugいいえ、実際には以前のROMがこの携帯電話に付属していたものでした。新しいROMは、メーカーのサイトからの公式アップグレードでもあります。
エミール

1
@Firelord私のMIUI最適化設定はすでにオフになっています。device_owner.xmlはありません。device_policies.xmlには次の行があります:<?xml version = '1.0' encoding = 'utf-8' standalone = 'yes'?> <policies setup-complete = "true"> <active-password -stuff here- /> </ policies>
エミール

回答:


18

pmコマンドに-kおよび--userオプションを追加することに成功しました。例えば:

pm uninstall -k --user 0 com.android.service

コマンドはrootとして発行されたため、/ systemをrwとして再マウントする必要はありません。携帯電話のAndroidは6.0で、パッケージはシステムアプリです。追加のオプションがないと、エラーが発生します。

Failure [DELETE_FAILED_INTERNAL_ERROR]

1
ありがとうございました。読んでいる他の人にとって、一部のガイドではユーザーの前にダッシュが1つあり、それがエラーの原因となっていました。
TrojanName

3

-k(ユーザー設定を保持)オプションなしでも機能します。

pm uninstall --user 0 com.android.service

そして、adbシェルを開かずに:

adb uninstall --user 0 com.android.service

miui 10からmiui 11にアップグレードされましたが、いくつかのシステム/プライベートアプリではこれらのコマンドは失敗します。例:com.miui.calculatorの場合
srv_sud
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.