Ist es möglich, das Funksignal in einem Telefon ohne SIM-Karte vollständig zu deaktivieren?

Ich habe ein Samsung Galaxy S4 Mini, powered by CyanogenMod 13 (Android Marshmallow 6.0.1) , das ich nur als Wi-Fi verwende, da es ohne SIM-Karte ist.

Die Antenne des Geräts scheint jedoch ständig mit einem Mobilfunkmast verbunden zu sein, sodass ich befürchte, dass dies zu einem (wenn auch geringfügigen) erhöhten Batterieverbrauch führen kann. Außerdem möchte ich nicht, dass meine Position aufgrund dieses Verhaltens trianguliert wird.

Einfach *#*#4636#*#* zu wählen und die Antenne von dort aus zu deaktivieren, scheint zu genügen, aber die Änderung bleibt zwischen Neustarts nicht bestehen, und jedes Mal den gesamten Vorgang zu wiederholen, ist lästig.

Was ich mir wünsche, ist eine Möglichkeit, die oben genannte Änderung dauerhaft zu machen, ohne dass eine ganze App erforderlich ist, die ich für eine so einfache Aufgabe für übertrieben halte . Noch besser, ich bevorzuge eine Lösung, die das eingebaute Terminal verwendet , sei es ein einzelner Befehl oder eine Funktion, und ich bin offen für Lösungen, die Root-Zugriff erfordern .

Gibt es eine solche Möglichkeit, dies zu erreichen?

Antworten (2)

Verwenden Sie den Flugmodus, um das Mobilfunknetz zu deaktivieren. Dies ist einfach und erfordert keine App, die Verwendung eines Terminals oder Root-Zugriff.

Natürlich wird es funktionieren, aber dann müsste ich das WLAN manuell einschalten, oder?
Um sicherzugehen, habe ich es nur getestet: Wenn Sie den Flugzeugmodus aktivieren, bleibt die Keine SIM-Karte in der Benachrichtigungsleiste und das Flugzeugsymbol wird offensichtlich platziert . Das geht natürlich, hat aber seine Schattenseiten. Danke für die Antwort!

Ab sofort habe ich einen Weg gefunden, um das zu erreichen, was die Frage stellt. Diese Lösung wurde auf CyanogenMod 12.1 und 13 getestet .


Vom Terminal

RIL deaktivieren

Wenn die Operation nicht häufig ausgeführt werden soll, reicht eine einzige Codezeile aus:

su -c "setprop persist.radio.noril 1"

. Dadurch ignoriert das Telefon die Funkschnittstellenschicht und ignoriert somit das Vorhandensein der Antenne. Ein Neustart ist erforderlich, damit die Änderung wirksam wird, und sie bleibt bei Neustarts bestehen.

Außerdem lässt das Deaktivieren von RIL auch das Symbol „ Keine SIM-Karte“ verschwinden.

RIL aktivieren

Das erneute Aktivieren von RIL ist nur eine Frage der Flags. Wie aus dem folgenden Beispiel ersichtlich ist:

su -c "setprop persist.radio.noril 0"

, der Befehl ist äquivalent, außer für a 0statt a 1. Wie zuvor ist ein Neustart erforderlich.


Als benutzerdefinierte Funktion

Ich habe auch zwei Funktionen entwickelt, die der Datei /system/etc/mkshrc hinzugefügt werden sollen . Natürlich ist es normalerweise erforderlich, die /system- Partition als Lese-/Schreibzugriff neu zu mounten, aber das Verfahren wird in dieser Antwort nicht behandelt.

Diese Datei kümmert sich um verschiedene Umgebungsvariablen und Aliase, die vom Terminal geladen werden, sobald es gestartet wird, daher wird oft davon abgeraten, damit herumzuspielen. Wir können jedoch unsere persönlichen Funktionen und Anpassungen direkt vor der Zeile hinzufügen, die lautet:

: place customisations above this line

. Ich möchte daran erinnern, dass es :sich um eine spezielle eingebaute Shell handelt , die daher unberührt bleiben muss.

RIL deaktivieren

Hier definieren wir eine benutzerdefinierte Funktion radiooff, die als nächstes nach Belieben vom Terminal aus aufgerufen werden kann. Der Code lautet wie folgt:

# This function detaches a device from the cellular network
# Upon execution, a reboot must be performed
function radiooff {
 if [ "$(whoami)" != "root" ]; then
  echo "Error: must be executed as root."
  return 1
 fi

 if [ "$(getprop persist.radio.noril)" == "1" ]; then
  echo "Radio is already disabled."
  return 1
 fi

 setprop persist.radio.noril 1

 if [ "$(getprop persist.radio.noril)" == "1" ]; then
  echo "Radio is now disabled. Please reboot."
  return 0
 else
  echo "Error: unable to disable radio."
  return 1
 fi
}

. Ich möchte daran erinnern, dass es wichtig ist, diesen Code am Ende der Datei zu platzieren, aber über der Zeile, die am Anfang dieses Abschnitts erwähnt wurde.

RIL aktivieren

Diese Funktion ist, wie die Kommentare erklären, die Umkehrung der radiooffFunktion:

# This function connects a device back on the cellular network
# Upon execution, a reboot must be performed
function radioon {
 if [ "$(whoami)" != "root" ]; then
  echo "Error: must be executed as root."
  return 1
 fi

 if [ "$(getprop persist.radio.noril)" == "0" ]; then
  echo "Radio is already enabled."
  return 1
 fi

 setprop persist.radio.noril 0

 if [ "$(getprop persist.radio.noril)" == "0" ]; then
  echo "Radio is now enabled. Please reboot."
  return 0
 else
  echo "Error: unable to enable radio."
  return 1
 fi
}

. Nach dem Speichern der Änderungen werden die Funktionen radioonund zur Verwendung verfügbar, nachdem die CyanogenMod Terminal- Anwendung gestartet oder neu gestartet wurde. Um sie zu verwenden, geben Sie einfach den Namen der benötigten Funktion ein und geben Sie ein.radiooff

Es mag offensichtlich sein, aber die zweite Lösung funktioniert nicht, wenn der Benutzer ein Terminal verwendet, das nicht von CyanogenMod stammt.