はじめに
表題の通り、 OREOベースのOSでLineに2端末で同一アカウントログイ ンする方法をメモ程度に残します。
root化が必須となります。
自分は
端末: xiaomi mi6
ROM: MIUI 9
の環境で行いました
Nugat以前での方法
Nougat以前では次の2ステップを経ることで、 同一アカウントにログイン出来ていました。
①旧端末でtitaniumでLINEをバックアップして、 生成されたファイルを新端末に移しレストアする。
②Android idのコピー
a, 旧端末でtitanium pro(課金)を使い、provider settingsをバックアップし、新端末でレストア+ android_idの管理から旧端末のidをレストアする
b, コマンドプロンプトでadb shell put secure android_id [任意のid]を手動で旧端末のAndroid_idを打ち込む
この➀②の手続きを踏むことで2端末でのLINE同一アカウントにログイン出来ました。( LINEはAndroid_ idで端末の同異を判断していたため)
Oreo以降での方法
しかし、OREOではAndroid_ idの仕様が変更されたため、上記の② の過程をしてもLINEが強制停止してしまいます。
OREOでの変更点
Nougat以前では各端末事にandroid_ idが1つだけ割り振られ、 基本的にはファクトリーリセットするまで変わらず、各アプリはそのidを参照する仕様でした。
OreoではAndroid idが各アプリごとにランダムに割り振られる仕様になりました。
その事により、これまでの方法でも、これまでのid changer系のアプリ経由でidを変更しても意味無いことに なりました。
また、android idが格納されてるsettings.dbもこれまで通り/ data/data/com.android. providers.settings/databases/ に存在しません。(android 6.0以前はここ)
OREOでは/data/system/users/0/ settings_ssaid. xmlに各アプリごとのandroid_ idが格納されています。
Oreoでandroid id を方法を変える方法
A, ESファイルエクスプローラーやrootエクスプローラーなどで /data/system/users/0/settings_ ssaid.xml/を選択、package=”jp. naver.line.android” の項目に行くとそのすぐ下にdefaultValueがあります 。そこの値がLINEアプリのandroid_idとなるため、 この値を旧端末の値にに変えてやることで、上記の① ができていれば、 LINEの同一アカウントに2端末同時にログインできます。
ちなみに筆者はESファイルエクスプローラーでやりました左上の 三マークからrootエクスプローラーをオンにしてから作業を行 いましょう。
B, 上記の作業がめんどくさければ、play storeで「OREO Android id」 的なことを検索してOREO対応のidチェンジャーを使いましょ う。私はDevice id changerを使ったら変更できるということは確認しています 。
LINEの項目を選ぶと、1番上のcurrent device idというのが現在のid、 editの所に自分の変更したいidを打ち込むとidを変更出来 ます。originalは元々のidです。
ただし、/settings_ssaid.xml/ の項目にpackage=”jp.naver.line. android”がなかったり、 アプリの項目にLineがなかったりすることがありますが、 LINEを1度も開いてなければそうなる可能性があります。
ちゃんとなってなかった場合
「Lineが繰り返し停止しています」的なことを言われます。
上のAまたはBをしてもLINEを開けなかった場合両方やってく ださい。 Aだけやって開けなくてBもやって初めてログイン出来たこともあ ったためです。
あと、必ずid変更後には再起動してください。
終わりに
実はOREOでの仕様変更をつい最近まで知らずにLINEに端末 同時ログイン何で出来ないんだろ?ってずっと思ってました。 ずっとMIUI8及び9のEU ROMを使ってて、出来なくて、きっとこれはEU ROMせいだと思い、公式MIUIを焼こうとするも、 ワイのxiaomi mi6が「自分はxiaomi mi6じゃない」とか言い始めて、行き詰まり、 何やかんやで公式ROMを入れても、LINEにログインできず、 、、
最初はバックアップが失敗してるんじゃないかと考えてましたが、 何回やっても無理だったのでidに問題があるのではないかと思い ました。その時、adbでadb shell settings get secure android_ idを打って出てきた値とtitaniumでの値、 複数のid確認アプリでの値がそれぞれ違っていたことを発見しま した。MIUIはDUAL APPが売りだから、それを達成するために、 そういう仕様になってるんだろう的なこと考えてました^^ アプリを複製した時にAndroid idで引っかかってはクレームの元になるでしょう。 だからAndroid idをランダマイズしてるんじゃないかと考えました。もしかしたらランダマイズされてるんじゃなくて、 何通りか決まったパターンがあるんじゃないかと思って手当り次第 にid確認アプリをダウンロードしまくるも、idは全部違っていました。 また、直接settings.dbをいじろうとしてdata/ data/data/com.android.provide/ を漁るも見つからず、旧端末(Nugat)でも見つからず、 sqlite editorで調べると/data/user_de/0/ com.android.providers. settings/の内部にあったので、それをコピーして、 新端末の同じ場所に貼り付けてもidが変化せずでした。そして、 MIUIの仕様だと思ったので、 AOSP系のROMを導入しようと非公式のlineage osを焼くも、ロゴ画面でかたまり、公式のlineage os入れても何故かgoogle系アプリをどんな形でダウンロー ドしてもその瞬間固まる。んで、pixel experience入れて、 これでなんとかなるやろと思ってもどうにもならなかった。 ここでまた複数アプリでidを確認すると、全て別のidでした。これでやっと気づきました。 これはMIUIなんじゃなくてOREOの仕様なんだと。。。それからはすぐにい変更できました。ずっとなんでだなんでだと調べて入れ結局はOreoの仕様変更なだけだったという灯台もと暗しでした。