Wie kann ich den Screenshot Sound deaktivieren?

  • 8 Antworten
  • Letztes Antwortdatum
lje

lje

Ambitioniertes Mitglied
34
Wenn man per Home+Power einen Screenshot anfertigt, kommt das nervige Auslösegeräusch. Dieses würde ich gerne per "App Settings" abstellen, die App also stumm machen.
Weiß jemand, wie diese App heißt? Die normale Kamera-App scheint es nicht zu sein.
 
Wenn du Root Zugriff hast, kannst du in system\media\audio\ui\ einfach die entsprechende Ton Datei löschen.
 
Eigentlich möchte ich nichts löschen.

Daher hatte ich mir heute erst mal ein XPosed-Modul geschrieben, welches mir für jede Notification den Paketnamen loggt. Ergebnis: das ist gar keine App sondern com.android.systemui.

Hachja, das macht's nicht leichter. Ein bischen Google hat mich zu https://android.googlesource.com/pl...oid/systemui/screenshot/GlobalScreenshot.java geführt.

Ich schätze ich werde nun ein XPosed Moduls schreiben, welches com.android.systemui hookt und dort android.media.MediaActionSound.play mit einem NOP überschreibt.
 
So, der gefundene Screenshot-Code war leider nicht das, was Samsung verwendet. Ich habe letztendlich das SystemUI.odex decompiliert, um zu sehen, was passiert.

Ich habe es nun geschafft, den Shutter-Ton per XPosed abzuklemmen. Falls jemand interessiert ist:
Code:
    public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {

        if (lpparam.packageName.equals("com.android.systemui")) {
            findAndHookMethod("com.android.systemui.screenshot.ScreenshotCaptureSound", lpparam.classLoader, "play", int.class, XC_MethodReplacement.DO_NOTHING);
        }

    }
 
Interessant...... und wo genau muss man das in der SystemUI verändern wenn man es ohne ein Xposed machen möchte?
 
Entweder genau an der Stelle, die ich über XPosed stillege:

Paket com.android.systemui.screenshot
Klasse ScreenshotCaptureSound
Methode play

Diese Methode einfach durch eine leere Methode ersetzen (das wäre exakt das, was ich derzeit über XPosed mache).

Oder Du könntest evtl. auch noch einen Sprung eher ansetzen:

Paket com.android.systemui.screenshot
Klasse GlobalScreenshot
Methode playCaptureSound

durch eine leere Methode ersetzen.
 
Danke für den Tip *gg* aber ich verstehe grade nur Bahnhof :lol:

Ich merke in das Thema Xposed muss ich mich noch einlesen.

Ich bin eher der Typ der die APK decompiliert und dort die x.xml etc ändert.
 
Das sind Änderungen direkt am JAVA/SMALI-Code.

Du müsstest die SystemUI.dex/odex nach SMALI konvertieren, dort editierst Du dann:

com\android\systemui\screenshot\ScreenshotCaptureSound.smali

In der SMALI suchst Du nach

".method public declared-synchronized play(I)V"

und ersetzt alles zwischen dieser Zeile und dem nächsten ".end method" durch folgenden Code:
Code:
.method public declared-synchronized play(I)V
    .registers 11
    .param p1, "soundName"    # I

    .prologue
    .line 60
    return-void
.end method
Damit ist die Methode nun leer (enthält keinen Code mehr). Ich hoffe, ich hab mich bei der Smali-Syntax nicht vertan, da ich es wie gesagt nicht auf diesem Wege gemacht habe.
Danach müsste aus dem Smali-Verzeichnis wieder die DEX/ODEX gebaut werden.


Für mich ist das viel mehr Aufwand als XPosed...

XPosed hat halt den Vorteil, dass man damit sehr schnell und relativ gefahrlos Änderungen machen kann.
Man muss (sofern XPosed einmal installiert ist) nur noch eine "normale" App bauen und installieren - ein sogenanntes XPosed-Modul, um fast beliebige Änderungen am System durchführen zu können. In dieser App schreibt man Code, welcher eine normale Methode in einer normalen Klasse zur Laufzeit ersetzt. Man kann sich dabei in beliebige andere User- oder Systemapps einklinken.
Und wenn man mal was richtig falsch macht und eine Bootloop schafft, flasht man einfach das vom XPosed-Installer angelegte Zip, welches das gesamte XPosed deaktiviert, und schon ist alles wieder gut.
Wobei ich einfachere Änderungen eh immer vorher in Bluestacks und/oder Genymotion teste. Mit Samsung-spezifischen Sachen geht das natürlich nicht, aber solange man Vanilla-Android Sachen ändert, kann man damit gut testen.
Aber mit einem eigenen Image geht das halt schon gar nicht... auch hier ist XPosed im Vorteil.
 
es gibt ne schöne app heist - Note 2 Hidden Settings

da kann man alle möglichen sounds deaktiviren
man braucht aber root dafür :)

ist zwar fürs Note 2 aber beim S4A gehts auch
 

Anhänge

  • Screenshot_2014-09-26-20-42-46.png
    Screenshot_2014-09-26-20-42-46.png
    73,5 KB · Aufrufe: 501
Zuletzt bearbeitet:

Ähnliche Themen

M
Antworten
2
Aufrufe
1.867
PrinzPoldi007
PrinzPoldi007
B
Antworten
0
Aufrufe
999
basediver
B
D@ve
Antworten
28
Aufrufe
31.720
Blade Runner
B
Zurück
Oben Unten