web-dev-qa-db-ja.com

AOSPビルドにGoogle Appsをインストールする

インストールしました Android-6.0.1_r72[〜#〜] aosp [〜#〜]Rom on aNexus = 5デバイス。romにはGoogle Appsは付属していません。

次のサイト からインストールしようとしましたが、インストール後に

残念ながら、Google Playサービスは停止しました

インストールする必要がある特別なバージョンのGoogle Appはありますか?

UPDATE:

私はlogcatでこのエラーを見つけました:

01-17 11:14:52.750 3525 5402 E AndroidRuntime:FATAL EXCEPTION:GoogleLocationService

01-17 11:14:52.750 3525 5402 E AndroidRuntime:Process:com.google.Android.gms.persistent、PID:3525

01-17 11:14:52.750 3525 5402 E AndroidRuntime:Java.lang.SecurityException: "gps"ロケーションプロバイダーにはACCESS_FINE_LOCATION権限が必要です。

01-17 11:14:52.750 3525 5402 E AndroidRuntime:at Android.os.Parcel.readException(Parcel.Java:1620)

01-17 11:14:52.750 3525 5402 E AndroidRuntime:at Android.os.Parcel.readException(Parcel.Java:1573)

01-17 11:14:52.750 3525 5402 E AndroidRuntime:at Android.location.ILocationManager $ Stub $ Proxy.addGpsStatusListener(ILocationManager.Java:741)

01-17 11:14:52.750 3525 5402 E AndroidRuntime:at Android.location.LocationManager.addGpsStatusListener(LocationManager.Java:1522)

01-17 11:14:52.750 3525 5402 E AndroidRuntime:at aker.a(:com.google.Android.gms:1064)

01-17 11:14:52.750 3525 5402 E AndroidRuntime:at akbc.b(:com.google.Android.gms:6342)

01-17 11:14:52.750 3525 5402 E AndroidRuntime:at akbc.handleMessage(:com.google.Android.gms:279)

01-17 11:14:52.750 3525 5402 E AndroidRuntime:at Android.os.Handler.dispatchMessage(Handler.Java:102)

01-17 11:14:52.750 3525 5402 E AndroidRuntime:at Android.os.Looper.loop(Looper.Java:148)

01-17 11:14:52.750 3525 5402 E AndroidRuntime:at Android.os.HandlerThread.run(HandlerThread.Java:61)

更新#2

それでもエラーが発生するので、 GApps git で問題を開きました。

10
shlatchz

あなたが間違っている3つのこと:
1。通常、実行するAndroid)の同じバージョンからプルしたAPKをインストールする必要があります。
2。 Google以外のサイトからGoogle APKをダウンロードしないでください。
3。システムアプリをインストールするには、まずシステムパーティションを読み書き可能として再マウントする必要があります。

システムアプリとして正規のGoogle APKを取得してインストールする方法は次のとおりです。

AOSPビルド番号を使用して一致する工場のイメージを取得します
AOSPコード名、タグ、およびビルド番号 に指定したリンクには、必要なビルド番号があります一致。ページでAndroid-6.0.1_r72を検索します。対応するビルド番号はM4B30X

ランダムなサイトから信頼できないAPKを使用する代わりに(ひどい考え)、Googleの優秀な人々から Factory Images を利用して、本物のAPKを直接入手できます。ページでビルド番号M4B30Xを検索し、 image をダウンロードします。次に、イメージをダウンロードしたフォルダーにcdして、SHA-256チェックサムのチェックを実行します。

$ cd Downloads

$ echo "10cfaa5c8ff1753af20283f5e5f938ddebbad094c4e22aadbd925ecdc806e8b3   
  hammerhead-m4b30x-factory-10cfaa5c.Zip" | sha256sum -c

印刷されるはずです:hammerhead-m4b30x-factory-10cfaa5c.Zip:OK
-そうでない場合は、イメージを再度ダウンロードします。

工場出荷時の画像をフラッシュし、本物のGoogle APKをプルします
1。ファクトリイメージをフラッシュして、システムを起動します。
2。開発者向けオプションを有効にし、「USBデバッグ」を許可する
3。次に、ADBを使用して、100%正規のGoogle Play APKをpull(get)します。

$ adb pull /system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk
$ adb pull /system/priv-app/Phonesky/Phonesky.apk
$ adb pull /system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk

FLASH AOSP HAMMERHEAD M4B30X AND Push GENUINE GOOGLE APK
必ずuserdebugまたはengバリアント。

APKファイルをSDカードにプッシュします。

$ adb Push GoogleServicesFramework.apk /sdcard/
$ adb Push Phonesky.apk /sdcard/
$ adb Push PrebuiltGmsCore.apk /sdcard/

システムアプリとしてAPKを手動でインストールします

$ Sudo adb Shell

システムパーティションを見つけます:root @ hammerhead:/#mount | grep "/ system"返されるはずです:/dev/block/platform/msm_sdcc.1/by-name/system/system ext4 ro、seclabel、relatime、data = ordered 0 0

次に、そのシステムパーティションをrw(読み取り-書き込み)としてマウントします。

root@hammerhead:/ # mount -o remount,rw -t ext4 /dev/block/platform/msm_sdcc.1/by-name/system /system 

root@hammerhead:/ # cd /system/priv-app   
root@hammerhead:/ # mkdir GoogleServicesFramework
root@hammerhead:/ # mkdir Phonesky
root@hammerhead:/ # mkdir PrebuiltGmsCore

root@hammerhead:/ # cp /sdcard/GoogleServicesFramework.apk GoogleServicesFramework/GoogleServicesFramework.apk
root@hammerhead:/ # cp /sdcard/Phonesky.apk Phonesky/Phonesky.apk
root@hammerhead:/ # cp /sdcard/PrebuiltGmsCore.apk PrebuiltGmsCore/PrebuiltGmsCore.apk

root@hammerhead:/ # chmod 755 GoogleServicesFramework
root@hammerhead:/ # chmod 755 Phonesky
root@hammerhead:/ # chmod 755 PrebuiltGmsCore

root@hammerhead:/ # chmod 644 GoogleServicesFramework/GoogleServicesFramework.apk
root@hammerhead:/ # chmod 644 Phonesky/Phonesky.apk
root@hammerhead:/ # chmod 644 PrebuiltGmsCore/PrebuiltGmsCore.apk

CONFIGURE AOSP

Google Apps権限を付与する
お使いの携帯電話で、オーバーフローメニュー(ギアボタンの右上隅)で[設定]> [アプリ]に移動します
選択システムを表示
Google Playストアに移動して、すべての権限を許可します。
Google Services FrameworkGoogle Play Services(PrebuiltGmsCore)
次に、すべてのデフォルトのAOSPアプリにそれぞれの権限が付与されていることを確認します。
AOSPにはデフォルトで多くの権限がオフになっています。
次のアプリにすべての権限を許可します:
Androidキーボード
ブラウザ
カレンダー
カメラ
時計
連絡先
Eメール
ギャラリー
ランチャー3
メッセージング
音楽
電話

*そして、なんらかの理由で無効にしたくない場合は、ぎこちない外観Searchを使用します。

次に、Wifiが接続されているか、SIMカードが接続されており、信号を提供していることを確認します。
再起動します。
すべてがソートされるため、いくつかの簡単なエラーが発生するはずですが、エラーが続く場合は、再起動することで修正できます。

12
andDevW

andDevWの回答 は詳細をカバーしています。

2番目のステップを実行する別の方法を追加します。 工場出荷時の画像を点滅させて正規のGoogle APKをプルする代わりに

simg2img を使用して、system.imgファイルをマウント可能なボリュームに変換できます

  1. Simg2imgを使用して.imgファイルを.rawファイルに変換します
simg2img /home/<user>/../aosp/../out/system.img system.raw
  1. rawファイルをext4外部ファイルシステムボリュームとしてマウントする
Sudo mount -t ext4 -o loop system.raw /system

マウントするとsystem.rawイメージをナビゲートできるようになり、/ priv-appおよびその他のディレクトリにアクセスして、/ systemにマウントされたボリュームで、必要なAPKを取得できます。

これを使用して、Googleからのファクトリーイメージリリースでsystem.imgからAPKを取得できます。

5
Siddharth N

AOSPでのこれらのアプリの目的によって異なります。

私は間違っているかもしれませんが、カスタムデバイス用のGoogle Play Serviceベースのアプリをインストールするには、Googleとの契約に署名し、すべての検証テストに合格する必要があります。

1
Taras

発生しているエラーは、ランタイムアクセス許可に関連しています。これは、Android APIレベル23(Marshmallow以降)で導入された概念です)これより前に、インストール中に提供されたアプリケーションに必要なすべてのアクセス許可つまり、ユーザーがアプリをインストールすることにより、アプリに必要な権限を与えることに同意します。

グーグルはこれを見直しました。 APIレベル23以降、アプリは必要なすべての権限をマニフェストで宣言する必要があるだけでなく、これらの権限のいずれかが危険として分類されている場合、アプリケーションは実行時にそれを要求する必要があります。アプリケーションがこれを行う方法- https://developer.Android.com/training/permissions/requesting.html

私はあなたに文脈を与えるためにこれらすべてを説明しました。あなたの場合、問題は、インストールしようとしているアプリケーションがAPIレベル23以上で実行するように設計されていないことです。それらをインストールしたとき、それらは暗黙的にいくつかの許可を与えられていませんでした、そしてアプリケーションは実行時にそれらを要求していないので、最終的にそれらは特定のことをするために必要な許可なしに終わります(あなたの場合はデバイスの場所にアクセスします)。

簡単に言えば、マシュマロ以上向けに設計されたアプリケーションのバージョンを見つけてみてください。残念ながら、Googleは下位互換性をある程度制限する方法でこの変更を行いました。だから、逃げることはできません。新しいバージョンを探す

0
Dibzmania