1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

MIUI-Settings.apk ändern

Dieses Thema im Forum "Android OS Entwicklung / Customize" wurde erstellt von sandimann, 31.01.2011.

  1. sandimann, 31.01.2011 #1
    sandimann

    sandimann Threadstarter Android-Experte

    Beiträge:
    852
    Erhaltene Danke:
    505
    Registriert seit:
    30.12.2009
    Hallo Leute,

    zunächst: Ich hoffe ich bin hier im richtigen Forum gelandet. Ansonsten bitte verschieben @mods ;)

    Also: Ich bin blutiger Anfänger in Sachen Android-Entwicklung oder Customizing. Mein erstes Vorhaben ist das Anpassen der Settings.apk.

    Folgende Ausgangssituation: Ich nutze derzeit auf meinem Motorola Milestone die MIUI-Rom in der Version 1.1.28. In den Einstellungen (Settings.apk) gibt es den Menüpunkt "Tethering & Hotspot". Die hier hinter liegenden Einstellungen funktionieren jedoch nicht, wodurch das Stock-Tethering nicht möglich ist. Hierfür habe ich eine kleine aber feine App namens "3G Mobile Hotspot". Diese App lautet auf den namen com.motorola.mynet.apk.

    Nun kam ich auf die Idee, diese einfach in diesen Menüpunkt in der Settings.apk einzubinden. Wenn ich also auf "Tethering & Hotspot" drücke, soll besagte APK gestartet werden.

    Die com.motorola.mynet.apk liegt im übrigen in /system/app.


    Soviel zur Ausgangsituation. Frisch ans Werk.

    Ich bin zunächst wie folgt vorgegangen:

    Ich habe zunächst die settings.apk mit apktool decompiled. ("apktool if framework-res.apk" und dann "apktool d Settings.apk")

    Dann habe ich in der system_settings.xml den Punkt
    Code:
            <PreferenceScreen android:title="@string/network_share_settings_title" android:image="@drawable/ic_settings_share">
                <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.android.settings.TetherSettings" />
            </PreferenceScreen>
    in
    Code:
            <PreferenceScreen android:title="@string/network_share_settings_title" android:image="@drawable/ic_settings_share">
                <intent android:targetPackage="com.motorola.mynet" android:action="android.intent.action.MAIN" android:targetClass="com.motorola.mynet.MyNet" />
            </PreferenceScreen>
    geändert. (.MyNet ist laut AndroidManifest.xml der com.motorola.mynet.apk die Hauptklasse)

    Nun habe ich die settings.apk wieder mit apktool compiled ("apktool b Settings").

    Anschliessend habe ich mir aus der fertigen settings.apk die system_settings.xml rausgenommen, und in die aktuelle apk aus dem system mittels winrar eingefügt (in winrar nur "speichern" ausgewählt). Dann habe ich die settings.apk ausgetauscht, permissions gesetzt und neu gestartet.

    In die Einstellungen komme ich noch, das ist kein Thema, aber wenn ich dann auf "Tethering & Hotspot" drücke, kommt n FC.

    Hiernach habe ich mir einen anderen, bestehenden Menüpunkt in den Einstellungen angeschaut, der bereits eine andere Anwendung öffnet. Habe mir dann die xmls mal angeschaut, und festgestellt, das in der AndroidManifest.xml zu diesem Menüpunkt kein Eintrag existiert. Also habe ich aus AndroidManifest.xml den Eintrag für die TetheringSettings mal rausgelöscht. Nach einem neustart wollten die Einstellungen gar nicht mehr starten.

    Ich gehe mal davon aus, das meine Änderung in der system_settings.xml soweit richtig sind. Woran kann es aber dann liegen, das das nicht funktioniert? Kann es daran liegen, das diese "smali"-Dateien für die tetheringSettings noch vorhanden sind? Müssen die auch raus? oder mache ich etwas anderes falsch?

    Danke schonmal für eure Hilfe :)

    MFG
     

Diese Seite empfehlen