Android + ãã¼ã¿å°ç¨ SIM ã§「ç·æ¥éå ±ã®ã¿」ãæ¶ã
ããããã®。 |
※æ¢ã«ããããã¡ã¤ã«å ã§èªååå¦çãå ¥ã£ã¦ã¾ã。
ãã¼ã¿éä¿¡å°ç¨ SIM ã§ã¯å®éã«ã¯è©¦ãã¦ãªããã©æããç·æ¥éå ±ã§ããªãã®ã ãããã「ç·æ¥éå ±ã®ã¿」ãæ¶ãã¦ãã¾ã£ã¦ããã®ã§ã¯ãªãã、ã¨ãããã¨ã§æ¶ãæ¹ã«é¢ãã話。
触ããã¡ã¤ã«ã¯「Android + b-mobile ãã¼ã¿å°ç¨ SIM ã§é»ç強度ã表示ãã」ã®æã¨ä¸ç·ã§ com\android\internal\telephony\gsm\GsmServiceStateTracker.smali ã«ãªã。åºæ¬çãªæµãã大ä½ä¸ç·ãªã®ã§æ¹å¤ããç®æã«é¢ãã¦ã ãæ¸ãã¦ããã¾ã。
ç¡å¹åæ¹æ³ã«ã¤ãã¦æ¸ãã¾ããèªå·±è²¬ä»»ã§ãé¡ããã¾ã。
ããããªããã¨ãããã°èããã«ãèªåã§ã調ã¹ãã ãã。ç§ã«ããããã¾ãã。
å ã½ã¼ã¹ã§è¦ãã¨ä»¥ä¸ã®ç®æããã¤ã³ã。
GsmServiceStateTracker.java#L590
if (regState == 10 || regState == 12 || regState == 13 || regState == 14) { mEmergencyOnly = true; } else { mEmergencyOnly = false; }regState ã 10, 12, 13, 14 ã®æ「ç·æ¥éå ±ã®ã¿」ã®ã¢ã¼ãã true ã«ãªãã®ã§、ããã false ã«å¤ãããã¨ã§、ã©ããªæã§ã「ç·æ¥éå ±ã®ã¿」ãç¡å¹åã§ããã¯ã。
smali ãã¡ã¤ã«ã§ã¯ã¾ã「Lcom/android/internal/telephony/gsm/GsmServiceStateTracker;->regCodeToServiceState(I)I」ã§æ¤ç´¢ãã¦ã¿ãã¨、ãã®æç¹ã§æãã2件ãããããã¯ã。
ããããå ã以ä¸ã®ããã«ãªã£ã¦ããæ¹ãç®çã®ç®æ(ä¾ã«ãã£ã¦ç°å¢ã«ããç´°ããæ°åé¡ã¯ç°ãªãã¨æã)。
invoke-direct {v0, v1}, Lcom/android/internal/telephony/gsm/GsmServiceStateTracker;->regCodeToServiceState(I)I move-result v15 invoke-virtual {v14, v15}, Landroid/telephony/ServiceState;->setState(I)V .line 684 const/16 v14, 0xa if-eq v10, v14, :cond_166 const/16 v14, 0xc if-eq v10, v14, :cond_166 const/16 v14, 0xd if-eq v10, v14, :cond_166 const/16 v14, 0xe if-ne v10, v14, :cond_1a4 .line 685 :cond_166 const/4 v14, 0x1 ← ããã 0x0 ã«æ¸ãæãããã®å¤æ´ã ãã§、「ç·æ¥éå ±ã®ã¿」ã¯å¸¸ã«ç¡å¹ã«ãªã£ã¦ãã£ãªã¢åãåºãããã«ãªãã¨æãã¾ã。
å ¨ã¦ã®ç°å¢ã§ä¸æããããã¯ç¸å¤ããããããã¾ããã、ä¸æããã£ããããã£ããã¨ãããã¨ã§。
ãã¨、ããã§ç¡å¹åãã¦ãã¾ãã¨æ¬å½ã«「ç·æ¥éå ±ã®ã¿」ã®ç¶æ ã«ãªã£ãæã«ããããªããªã£ã¦ãã¾ãã®ã§、ãã¼ã¿éä¿¡å°ç¨ã§ã¯ãªã SIM ã使ãå ´åã¯ã¡ããã¨å ã«æ»ããæ¹ãããã¨æãã¾ã。
「『ç·æ¥éå ±ã®ã¿』ãæ¶ã=ãã¼ã¿éä¿¡å°ç¨è¡¨ç¤ºã«ãªã」ã¨ããããã§ã¯ãªãã¨æãã®ã§、ç¹ã«ãããã¨ããããã©ããã¯ãããã¾ãã。