Git Product home page Git Product logo

newradiosupporter's Introduction

NewRadioSupporter

アンテナピクト📶の隣に居座る5Gアイコンが何を示しているのか、その真実に迫るアプリです。

ダウンロード

https://play.google.com/store/apps/details?id=io.github.takusan23.newradiosupporter

機能

  • Sub-6 / ミリ波 / アンカーバンド の検出
  • 5Gの場合は スタンドアローン方式 / ノンスタンドアローン方式 の表示
  • デュアルSIM 対応
    • 多分 5G はデータ通信に設定したSIMカードしか拾わない気がします
  • ウィジェットを追加してホーム画面から確認
  • バックグラウンドでも通知領域から確認
  • おまけ程度のバンド表示
    • n257とか

(なんか従量制ネットワークか無制限ネットワークか検出出来るよ!って書いてあったんだけど検出できてない。流石にできないやろ...)

バンド表示

MCC / MNCが日本のキャリアの場合は追加の処理を行います。
これはNR-ARFCNが複数のバンドに一致する場合、通信キャリアが提供しているバンドを優先して返すようにするためです。
NR-ARFCN643334だとn48 n77 n78のどれかになるらしい。対応表から探すと多分一番最初のn48になるけど、日本でn48使ってるところはないのでn77 n78のどちらかになるはず。)

Imgur

(提供しているバンドはソースコードに書きました、負けた気分)

本当はCellIdentityNr#getBandsっていうバンドを返す関数があるのですが、この関数自体がモデムから報告された値ではなく、NR-ARFCN とバンドの対応表から探してきたものらしい(?)、
ので結局複数のバンドに一致する場合に一つに絞れない。

Pixel 端末はモデムから取得するよう修正されたらしいけど、その他の端末はわからん。
https://issuetracker.google.com/issues/253539094

開発者向け

JetpackComposeでできてます。最新のAndroid Studioで実行できるはずです。

実行方法

Android Studioが必要です

  • このリポジトリをクローンします
    • git clone https://github.com/takusan23/NewRadioSupporter
    • git がない場合は zip をダウンロードして解凍しても良いかもしれないです
  • Android Studio で開きます
    • Imgur
  • 暫く待つと、実行ボタンが押せるようになるので押します
    • Imgur

そのほか

*#*#4636#*#*NR/LTEにしておくと、SIMカードを抜いても動く?(なんで...)

newradiosupporter's People

Contributors

takusan23 avatar hamachi-geek avatar

Stargazers

 avatar n32i0 avatar nairoki avatar shaonan.cho avatar Newral avatar  avatar  avatar Taewan Kim avatar Kazuki Okamoto avatar FlatPonch avatar  avatar  avatar Mancubus avatar Hattomo (TomohiroHattori) avatar lyf avatar Takeshi Shinohara avatar  avatar うさみょん/myon2019 avatar  avatar iemike3 avatar Kosuke Kaizuka avatar ShimadaNanaki avatar  avatar BlackSwanBay avatar Takehiro Ogura avatar Takaya Suzuki avatar  avatar ddddddddddp avatar CyberRex avatar みぃてん☆ avatar

Watchers

James Cloos avatar Kosuke Kaizuka avatar  avatar

newradiosupporter's Issues

デュアルSIM環境でSIM1の情報のみ表示される

デュアルSIM環境(物理+eSIM)でこのアプリを利用しています。
どちらでモバイルネットワークを使っていても、このアプリを開くとSIM1の情報のみ表示されます。
SIM2の情報を閲覧可能にして頂けないでしょうか。
以下にこちらの環境を記します。

Google Pixel 7 Pro
Android 13 TD1A.221105.001
SIM1(物理) NTT DOCOMO (MVNO イオンモバイル)
SIM2(eSIM) povo (povo2.0)

4G/4Gアンカーバンドで周波数が表示されない

5G接続している状態ではバンド情報としてキャリア名、接続中バンド、NRARFCN(EARFCN)、周波数が表示されますが、4G接続および4Gアンカーバンド接続では周波数が表示されません。

BandDictionaryTool.kt内でも周波数計算はnrarfcnに対してしか行っていないようです。

これは意図した仕様でしょうか?

A crash on superuser branch

いつもソースコードを拝見させていただき、ありがとうございます。
superuser branchにてPhysicalChannelConfigの情報を取得してみていますが、
下記ようなエラーが出ており、解決策などがありましたら、ぜひ提示していただきたいです。

試験端末:

  • A103SO(Android12) 非Root
  • Shizukuアプリのインストール(承認済み)済み。
java.lang.NoSuchMethodError: No interface method listenWithEventList(ZZILjava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;[IZ)V in class Lcom/android/internal/telephony/ITelephonyRegistry; or its super classes (declaration of 'com.android.internal.telephony.ITelephonyRegistry' appears in /system/framework/framework.jar!classes4.dex)
at io.github.takusan23.newradiosupporter.tool.ShizukuTool$collectPhysicalChannelConfigList$1.invokeSuspend(ShizukuTool.kt:145)
at io.github.takusan23.newradiosupporter.tool.ShizukuTool$collectPhysicalChannelConfigList$1.invoke(Unknown Source:8)
at io.github.takusan23.newradiosupporter.tool.ShizukuTool$collectPhysicalChannelConfigList$1.invoke(Unknown Source:4)
at kotlinx.coroutines.flow.ChannelFlowBuilder.collectTo$suspendImpl(Builders.kt:322)
at kotlinx.coroutines.flow.ChannelFlowBuilder.collectTo(Unknown Source:0)
at kotlinx.coroutines.flow.CallbackFlowBuilder.collectTo(Builders.kt:336)
at kotlinx.coroutines.flow.internal.ChannelFlow$collectToFun$1.invokeSuspend(ChannelFlow.kt:60)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
at androidx.compose.ui.platform.AndroidUiDispatcher.performTrampolineDispatch(AndroidUiDispatcher.android.kt:81)
at androidx.compose.ui.platform.AndroidUiDispatcher.access$performTrampolineDispatch(AndroidUiDispatcher.android.kt:41)
at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.run(AndroidUiDispatcher.android.kt:57)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7870)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
Suppressed: java.lang.NoSuchMethodError: No interface method listenWithEventList(ZZILjava/lang/String;Ljava/lang/String;Lcom/android/internal/telephony/IPhoneStateListener;[IZ)V in class Lcom/android/internal/telephony/ITelephonyRegistry; or its super classes (declaration of 'com.android.internal.telephony.ITelephonyRegistry' appears in /system/framework/framework.jar!classes4.dex)
	at io.github.takusan23.newradiosupporter.tool.ShizukuTool$collectCellInfoList$1.invokeSuspend(ShizukuTool.kt:189)
	at io.github.takusan23.newradiosupporter.tool.ShizukuTool$collectCellInfoList$1.invoke(Unknown Source:8)
	at io.github.takusan23.newradiosupporter.tool.ShizukuTool$collectCellInfoList$1.invoke(Unknown Source:4)
	... 17 more
Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [androidx.compose.ui.platform.MotionDurationScaleImpl@44b6adb, androidx.compose.runtime.BroadcastFrameClock@f0d6978, StandaloneCoroutine{Cancelling}@9a8a851, AndroidUiDispatcher@fbe88b6]
2023-06-06 19:44:12.398 10810-10810 Process       

> >

5Gの三1波以卜7一夕记接統中飞寸。
5G
5G
丰力1了名:MYCELCOM
接統中八>下:n257
NRARFCN(EARFCN): 2071671
八>下情報

  • > 徒量制(宁一夕通信量记制限)y卜万

一夕汇接統中下寸
徒量制力定額制力
廿一匕又の起動·終了

  • > - [x] 八以夕分亏方之下下5G本以卜勺一[](

_Originally posted by @kapitkapit in #10 (comment)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.