kbc-developers / android_device_lge_lgl22

Device config for LGL22 isai (G2 KDDI MODEL)
0 stars 4 forks source link

Felica #5

Open ma34s opened 10 years ago

ma34s commented 10 years ago

TODO 優先度低

ma34s commented 10 years ago

http://t.co/BJKCpLpemw とFelica関連デバイスに権限が付いてない。

https://github.com/kbc-developers/android_device_lge_g2-common/blob/cm-11.0/ueventd.g2.rc#L160 で権限つくはずだけどつかない。

mfcとfelicalockのuid定義がないから?と思って調べようと

su mfc -c id とかしてみたけど、出てこなくて困ってます。

さて、どうしましょう。

blackzigong commented 10 years ago

services.odexの.../com/android/server/pm/PackageManagerService.smaliに16進法でそれらしい値が書いてありました。

10進法に直すとそれぞれ以下のようになります。 android.uid.nfc=1027 android.uid.nfclock=1030 android.uid.felica=4009 android.uid.felica.mfm=4004 android.uid.felica.mfs=4005 android.uid.felica.mfw=4006 android.uid.felica.felicalock=4007

decompiled services.odex: https://www.dropbox.com/s/yixkdyskwfismad/services.odex.zip

NFC:

.line 1159
move-object/from16 v0, p0

iget-object v2, v0, Lcom/android/server/pm/PackageManagerService;->mSettings:Lcom/android/server/pm/Settings;

const-string v3, "android.uid.nfc"

const/16 v4, 0x403

const/4 v5, 0x1

invoke-virtual {v2, v3, v4, v5}, Lcom/android/server/pm/Settings;->addSharedUserLPw(Ljava/lang/String;II)Lcom/android/server/pm/SharedUserSetting;

.line 1161
move-object/from16 v0, p0

iget-object v2, v0, Lcom/android/server/pm/PackageManagerService;->mSettings:Lcom/android/server/pm/Settings;

const-string v3, "android.uid.nfclock"

const/16 v4, 0x406

const/4 v5, 0x1

invoke-virtual {v2, v3, v4, v5}, Lcom/android/server/pm/Settings;->addSharedUserLPw(Ljava/lang/String;II)Lcom/android/server/pm/SharedUserSetting;

FeliCa:

.line 1172
move-object/from16 v0, p0

iget-object v2, v0, Lcom/android/server/pm/PackageManagerService;->mSettings:Lcom/android/server/pm/Settings;

const-string v3, "android.uid.felica"

const/16 v4, 0xfa9

const/4 v5, 0x1

invoke-virtual {v2, v3, v4, v5}, Lcom/android/server/pm/Settings;->addSharedUserLPw(Ljava/lang/String;II)Lcom/android/server/pm/SharedUserSetting;

.line 1173
move-object/from16 v0, p0

iget-object v2, v0, Lcom/android/server/pm/PackageManagerService;->mSettings:Lcom/android/server/pm/Settings;

const-string v3, "android.uid.felica.mfm"

const/16 v4, 0xfa4

const/4 v5, 0x1

invoke-virtual {v2, v3, v4, v5}, Lcom/android/server/pm/Settings;->addSharedUserLPw(Ljava/lang/String;II)Lcom/android/server/pm/SharedUserSetting;

.line 1174
move-object/from16 v0, p0

iget-object v2, v0, Lcom/android/server/pm/PackageManagerService;->mSettings:Lcom/android/server/pm/Settings;

const-string v3, "android.uid.felica.mfs"

const/16 v4, 0xfa5

const/4 v5, 0x1

invoke-virtual {v2, v3, v4, v5}, Lcom/android/server/pm/Settings;->addSharedUserLPw(Ljava/lang/String;II)Lcom/android/server/pm/SharedUserSetting;

.line 1175
move-object/from16 v0, p0

iget-object v2, v0, Lcom/android/server/pm/PackageManagerService;->mSettings:Lcom/android/server/pm/Settings;

const-string v3, "android.uid.felica.mfw"

const/16 v4, 0xfa6

const/4 v5, 0x1

invoke-virtual {v2, v3, v4, v5}, Lcom/android/server/pm/Settings;->addSharedUserLPw(Ljava/lang/String;II)Lcom/android/server/pm/SharedUserSetting;

.line 1176
move-object/from16 v0, p0

iget-object v2, v0, Lcom/android/server/pm/PackageManagerService;->mSettings:Lcom/android/server/pm/Settings;

const-string v3, "android.uid.felica.felicalock"

const/16 v4, 0xfa7

const/4 v5, 0x1

invoke-virtual {v2, v3, v4, v5}, Lcom/android/server/pm/Settings;->addSharedUserLPw(Ljava/lang/String;II)Lcom/android/server/pm/SharedUserSetting;
173210 commented 10 years ago

まずそのservices.odexのコードについて説明したいと思います。 Androidではandroid:sharedUserIdでアプリのUIDを管理しています。詳細はググってください。 そのandroid:sharedUserIdと一致するアプリに割り当てるUIDの値をここで指定します。 AOSPでは、次のソースのmSettings.addSharedUserLPwを呼び出しているところにあたります。 https://android.googlesource.com/platform/frameworks/base/+/master/services/java/com/android/server/pm/PackageManagerService.java これにより、アプリのUIDが適切に指定されるわけです。 また、android:sharedUserIdが同一のアプリでは署名が同一である必要があります。そうでなければドロワーに表示されません。

しかし、これはFeliCaには必須ではありません。 FeliCa関連のデバイスファイルを他のUIDで読めるようにすればそれですむ話ですから。 ただしNO_SECUREじゃないとだめだとかおっしゃっていたような。

173210 commented 10 years ago

ただ、Twitterでドロワーに表示されないという話は、おそらく署名されてないのが原因でこれとは関係ないでしょう。 しかしこれを踏まえて署名を行わないと問題が起きるかもしれないので気を付けてください。

ma34s commented 10 years ago

Thank you ^^ 2014/03/27 22:50 "173210" notifications@github.com:

$B$?$@!"(BTwitter$B$G%I%m%o!<$KI=<($5$l$J$$$H$$$&OC$O!"$*$=$i$/=pL>$5$l$F$J$$$N$,860x$G$3$l$H$O4X78$J$$$G$7$g$&!#(B $B$7$+$7$3$l$rF'$^$($F=pL>$r9T$o$J$$$HLdBj$,5/$-$k$+$b$7$l$J$$$N$G5$$rIU$1$F$/$@$5$$!#(B

$B!=(B Reply to this email directly or view it on GitHubhttps://github.com/kbc-developers/android_device_lge_lgl22/issues/5#issuecomment-38804253 .

blackzigong commented 10 years ago

参考の一つとしてau LG Optimus G LGL21のシステムダンプです。

FeliCa関連アプリのみ: https://copy.com/UdeMdSC9wKnvi0TZ/LGL21_FELICA_APPS.zip?download=1 フルシステムダンプ: https://copy.com/DbmVnuJzvsdYzdk2/LGL21_FULL_SYSTEM_DUMP.zip?download=1

ma34s commented 10 years ago

L-01DのCM10.2で動作していると聞いておりますが LGL21ではカスタムROMでFelica実績あるんですかね?

もし動作しているなら、それを流用できるような気がします (L-01Dはlibcordon.soに依存するmfdp使ってる感じでしたので・・・

blackzigong commented 10 years ago

LGL21ではCM自体が移植されていないので、FeliCaの動作実績はありません。 L-01DはCM、FeliCa共に実績あるらしいです。

ma34s commented 10 years ago

権限は適当につけたら表示出来るようにはなった。 正しい調べ方は、stockで動かしてるときに cwmに入ってlsする事で番号で表示されるのでそれで

/dev/felicaのchmodがpermissionではじかれるのでselinux設定が必要かもしれない。 setenforce 0してからでもできないので、色々辛い道が待ってそう。