アプリケーションをプリインストール アプリ (system/app または system/priv-app) としてビルドすると、システム イメージとシステム パーティションの一部になります。ユーザーが出荷時設定へのリセットを実行すると、デバイスはビルドの元のシステム イメージにフォールバックします。この場合、そのイメージには、既にアンインストールされている可能性のあるアプリケーションが含まれています。
あなたが提供した両方の解決策は、読み取り専用パーティションであるシステム パーティションからアプリケーションを削除しようとします (正当な理由があります)。そのパーティションからファイルを削除する場合は、読み取り/書き込みパーティションとして再マウントしてから、ファイルを削除する必要があります。
システム パーティションを再マウントするには、ルート アクセスが必要です。私の知る限り、標準の Android アプリケーション内からは不可能です。
root アクセス権があり、削除を実行する実行可能な Daemon を使用することもできますが、それはかなり複雑な解決策です。
編集:
システム アプリケーションであっても、そのアプリケーションがルート アクセス権を持っているわけではありません。2 番目の例は、デバイス全体がルート化されている場合にのみ機能します。その場合、デバイスのセキュリティは非常に脆弱です。それでもそのアプローチを使用したい場合は、apk へのパスを指定するだけです (system/app/yourapp/yourapp.apk).l