android8.0 Oreo(miui9)で2端末でlineの同一アカウントへのログイン [要root]

表題の通り、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の仕様変更なだけだったという灯台もと暗しでした。