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

[Developer] MIUI Entwickler-Thread

Dieses Thema im Forum "Custom-ROMs für Motorola Milestone" 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

    EDIT v. eybee1970 (01.02.11)
    :

    Ich möchte Euch bitten, in diesem Thread Eure ambitionierte und wichtige Entwicklerarbeit für MIUI fortzusetzen! :)

    Danke Euch!:winki:

    ________________________________________________________________________________________________________________________


    Kann mir mal jemand eine gescheite anleitung für apktool schreiben? also vom decompile, über recompile und signieren? was ich beachten muss?
     
    Zuletzt von einem Moderator bearbeitet: 01.02.2011
  2. eybee1970, 31.01.2011 #2
    eybee1970

    eybee1970 Android-Ikone

    Beiträge:
    5,390
    Erhaltene Danke:
    4,990
    Registriert seit:
    19.01.2010
    Phone:
    HTC One M9
    Hab dir eben was geschickt...is allerdings für apkmanager...hab ich mal von alf gekriegt, aber nie selber intensiv dran gearbeitet...
     
    sandimann bedankt sich.
  3. sandimann, 31.01.2011 #3
    sandimann

    sandimann Threadstarter Android-Experte

    Beiträge:
    852
    Erhaltene Danke:
    505
    Registriert seit:
    30.12.2009
    Danke :) das hilft mir erstmal weiter ;)
     
  4. sandimann, 31.01.2011 #4
    sandimann

    sandimann Threadstarter Android-Experte

    Beiträge:
    852
    Erhaltene Danke:
    505
    Registriert seit:
    30.12.2009
    Hmm.. habe mal gerade versucht, den Hotspot in den einstellungen zu "verdrahten".

    Bin mal wie folgt vorgegangen:

    Habe 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" />
            </PreferenceScreen>
    geändert.

    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 aus dem system 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 nun auf "Tethering & Hotspot" drücke, kommt n FC.

    Leider finde ich im Internet aber auch kaum wirklich verständliche Hilfe zu diesen XML-Tags. habe mir das mehr oder minder zusammen gereimt. Weiss hier vll jemand rat?
     
    Zuletzt bearbeitet: 31.01.2011
    moviecut bedankt sich.
  5. moviecut, 31.01.2011 #5
    moviecut

    moviecut Android-Experte

    Beiträge:
    858
    Erhaltene Danke:
    382
    Registriert seit:
    16.03.2010
    hey sandimann, finds saucool, dass du dich daran versuchst! soll ich jetzt noch den schritt zurück zu miui wagen? oder lieber morgen. wenn ich jetzt damit anfange, sitz ich hier wieder bis inne puppen am einrichten ;) aber irgendwie hab ich ja auch mal wieder bock auf was anderes...ach ist das alles schwer..
     
  6. invd, 31.01.2011 #6
    invd

    invd Android-Experte

    Beiträge:
    519
    Erhaltene Danke:
    86
    Registriert seit:
    23.02.2010
    eigentlich bist du m.e. schon auf einem guten weg. aber ich denke, du musst diese zeile so ändern, also nur den zweiten eintrag anpassen ... aber ich bin auch grade erst am lernen was android-programmierung betrifft:

    Code:
              <intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="[B]com.motorola.mynet-1[/B]" />
     
    Zuletzt bearbeitet: 31.01.2011
  7. sandimann, 31.01.2011 #7
    sandimann

    sandimann Threadstarter Android-Experte

    Beiträge:
    852
    Erhaltene Danke:
    505
    Registriert seit:
    30.12.2009
    nene.. android:targetPackage muss meiner Meinung nach auch auf die andere app zeigen, die ja geöffnet werden soll. Ich möchte ja das der die andere Hotspot-App startet, wenn ich auf diesen menüeintrag drücke. Also muss ich ihm ja auch das Ziel mitgeben ;)
    Die targetClass muss ich mir sicherlich aus der mynet.apk rausziehen. Das habe ich auch bereits getan und nochmal getstet. Immer noch FC.
     
    invd bedankt sich.
  8. w00kiee, 31.01.2011 #8
    w00kiee

    w00kiee Fortgeschrittenes Mitglied

    Beiträge:
    391
    Erhaltene Danke:
    81
    Registriert seit:
    12.03.2010
    Gibt es denn die Klasse "com.motorola.mynet" überhaupt in der apk? Wenn die anders heißt, dann ist es klar, dass du nen FC bekommst... Vielleicht solltest du dir mynet auch noch mal decompilen und dir den Code anschauen...

    EDIT: schau dir am besten auch noch mal den Code der Klasse "com.android.settings.TetherSettings" genau an, nicht dass du an der falschen Stelle ansetzt und erst eine "Ebene" tiefer die Änderungen vornehmen musst... Weil du ja geschrieben hast, dass bei dir sofort ein FC kommt, wenn du auf Tethering klickst... Ich würde den FC aber erst erwarten, wenn ich den Regler in dem Menü bei Wireless Tethering "umlege"...
     
    Zuletzt bearbeitet: 31.01.2011
  9. invd, 31.01.2011 #9
    invd

    invd Android-Experte

    Beiträge:
    519
    Erhaltene Danke:
    86
    Registriert seit:
    23.02.2010
    alles klar, ich drück mal die daumen :)
     
  10. sandimann, 31.01.2011 #10
    sandimann

    sandimann Threadstarter Android-Experte

    Beiträge:
    852
    Erhaltene Danke:
    505
    Registriert seit:
    30.12.2009
    w00kiee: habe ich getan. habe die com.motorola.mynet.apk (ja, ich habe das "-1" aus dem namen gelöscht ;)) auch schon in /system/app kopiert und versucht. ausserdem habe ich innerhalb der com.motorola.mynet.apk die Manifest.xml angeschaut. package-name = com.motorola.mynet

    ausserdem scheint die Hauptklasse MyNet zu sein. Daher habe ich auch bereits das hier versucht:
    android:targetClass="com.motorola.mynet.MyNet"

    kein Erfolg.
    Interessanterweise spinnt mein Stein durch diese kleine aber feine Änderung ein wenig. beispielsweise zeigt der in der Statuszeile nicht mehr den Akkustand in Prozent an, sondern zeigt nur noch ein batteriesymbol mit nem Fragezeichen. Wenn ich meine sicherungskopie der Settings.apk zurück spiele und neustarte, zeigt ders wieder normal an. kann sich jemand dieses verhalten erklären? Ich habe irgendwie das Gefühl, das ich entweder beim erstellen der xml, oder aber beim befüllen der richtigen Settings.apk irgendeinen Fehler mache.

    EDIT: kay.. werde mir TetherSettings mal genauer anschauen ;)
     
  11. sandimann, 31.01.2011 #11
    sandimann

    sandimann Threadstarter Android-Experte

    Beiträge:
    852
    Erhaltene Danke:
    505
    Registriert seit:
    30.12.2009
    So habe nochmal weiter geschaut. Unter anderem habe ich mir mal nach einem bestehenden Menüpunkt in der Settings.apk gesucht, der eine andere Anwendung startet. Bin auch fündig geworden. Wenn man unter Persönlich auf Theme drückt, wird der ThemeManager gestartet. Also habe ich mir mal angeschaut, wie der in den xml's drin steht.

    In der personal_settings.xml steht dazu das hier:
    Code:
            <PreferenceScreen android:title="@string/customized_theme_title" android:image="@drawable/ic_settings_customized_theme">
                <intent android:targetPackage="com.android.thememanager" android:action="android.intent.action.MAIN" android:targetClass="com.android.thememanager.PersonalStyleSettings" />
            </PreferenceScreen>
    Laut Manifest.xml aus der ThemeManager.apk PersonalStyleSettings ist die Hauptklasse. Also bin ich mit meiner Annahme, das MyNet bei der HotSpot-app die hauptklasse ist schonmal richtig.

    Ausserdem weiss ich jetzt, das mein Eintrag
    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>
    in der system_settings.xml richtig sein muss.

    Anschliessend habe ich in der Manifest.xml der Settings.apk mal nach dem themeManager gesucht. Hierzu habe ich hier aber keinen Eintrag gefunden. Also habe ich mal versucht, den Eintrag für TetherSettings aus der Manifest.xml rauszulöschen.

    Aber hier nach wollte die Settings.apk gar nicht mehr starten. Wenn ich auf Einstellungen drücke, kommt kein FC. gar nichts. Es passiert rein gar nichts. Wenn ich den Eintrag in der Manifest.xml drin lasse, und den (meiner Meinung nach richtigen Eintrag) in der system_settings.xml drin lasse, bekomme ich wieder einen FC.

    Irgendwie will mich Android grad veräppeln :D

    EDIT: Oder meint ihr, das er sich vll. an den noch bestehenden smali-Dateien im "smali"-Ordner stören könnte?
     
    Zuletzt bearbeitet: 31.01.2011
  12. DAanDASja, 01.02.2011 #12
    DAanDASja

    DAanDASja Android-Hilfe.de Mitglied

    Beiträge:
    122
    Erhaltene Danke:
    23
    Registriert seit:
    03.04.2010
    Schonmal versucht zu debuggen? Dann wüsstest du wenigstens, was den FC verursacht.

    Gruss,
    DAan
     
  13. DAanDASja, 01.02.2011 #13
    DAanDASja

    DAanDASja Android-Hilfe.de Mitglied

    Beiträge:
    122
    Erhaltene Danke:
    23
    Registriert seit:
    03.04.2010
    Hast du die apk beim Kompilieren neu gesigned? Wenn nicht, wird das wohl der Grund sein warum sie gar nicht startet nachdem du die AndroidManifest.xml bearbeitet hast.

    EDIT: Ups. Sorry wegen Doppelpost
     
  14. sandimann, 01.02.2011 #14
    sandimann

    sandimann Threadstarter Android-Experte

    Beiträge:
    852
    Erhaltene Danke:
    505
    Registriert seit:
    30.12.2009
    och gott.. warum muss das so kompliziert sein? :D

    wie debuge ich das denn am besten im laufenden betrieb?
    zum signieren: wie geht denn das überhaupt? wenn ich die settings.apk veränder, muss ich die ja dann komplett neu signieren. aber wie geht das? zumal ich ja dann den schlüssel des ersten urhebers der settings.apk brauche, oder nicht?
     
  15. DAanDASja, 01.02.2011 #15
    DAanDASja

    DAanDASja Android-Hilfe.de Mitglied

    Beiträge:
    122
    Erhaltene Danke:
    23
    Registriert seit:
    03.04.2010
    Am bequemsten geht beides mit Eclipse und dem Android plugin.
    Ohne Eclipse kannst du mit Keytool und Jarsigner signen (gibts in der JDK).

    Zum Debuggen kommst du um einen Debugger nicht rum^^.
     
  16. sandimann, 01.02.2011 #16
    sandimann

    sandimann Threadstarter Android-Experte

    Beiträge:
    852
    Erhaltene Danke:
    505
    Registriert seit:
    30.12.2009
    hast du für das signieren evtl einen link zu einem tutorial oder sowas zu hand? :)
     
  17. invd, 01.02.2011 #17
    invd

    invd Android-Experte

    Beiträge:
    519
    Erhaltene Danke:
    86
    Registriert seit:
    23.02.2010
    hast du da evtl. einen link zu einem tutorial oder ein paar infos, wie man das am besten umsetzt?
     
  18. DAanDASja, 01.02.2011 #18
    DAanDASja

    DAanDASja Android-Hilfe.de Mitglied

    Beiträge:
    122
    Erhaltene Danke:
    23
    Registriert seit:
    03.04.2010
    sandimann und invd haben sich bedankt.
  19. Sakaschi, 01.02.2011 #19
    Sakaschi

    Sakaschi Android-Ikone

    Beiträge:
    7,008
    Erhaltene Danke:
    4,098
    Registriert seit:
    24.04.2010
    zauberwort: Apk_Manager_4.8

    kann signen decompilen, compilen und vieles mehr.

    einfach im xda dev in der suche den namen eingeben ;)

    lg.

    Sakaschi
     
  20. sandimann, 01.02.2011 #20
    sandimann

    sandimann Threadstarter Android-Experte

    Beiträge:
    852
    Erhaltene Danke:
    505
    Registriert seit:
    30.12.2009
    jo, habe den apk-manager inzwischen gefunden und ans laufen gebracht. allerdings steht da bei sign apk "dont do this if system apk".. jetzt bekomm ich wieder angst ^^

    heisst das, ich kann die settings.apk nicht signen? weil irgendwie müssen das die chinesen ja auch hinbekommen...
     

Diese Seite empfehlen