1. Möchtest Du unser Team im Android OS-Bereich unterstützen? Details dazu findest du hier!
  1. franc, 04.05.2012 #1
    franc

    franc Threadstarter Android-Lexikon

    Hallo
    Gibt es außer mit Titanium noch eine andere Möglichkeit eine App von Google Play (Market) zu trennen? So dass die App nicht mehr upgedatet werden will?

    Titanium macht das nämlich leider gar nicht mehr, seitdem die Schlaumeier von Google ihren Market in Play umbenannt haben und wohl auch sonst Dinge geändert haben.
    Insbesondere Wetter.com will sich immer updaten ist aber nach 1.3.3 nicht mehr zu gebrauchen.
    Franc
     
    Zuletzt bearbeitet: 19.07.2012
  2. franc, 20.02.2017 #2
    franc

    franc Threadstarter Android-Lexikon

  3. Rak, 20.02.2017 #3
    Rak

    Rak Foren-Inventar

  4. franc, 20.02.2017 #4
    franc

    franc Threadstarter Android-Lexikon

    Bei manchen Apps, z.B. Swype + Dragon, funktioniert das aber nicht. Fremd signiert, stürzt diese App sofort bei Benutzung ab.
    Daher die Titanium Lösung.
    Ich glaube übrigens nicht mal, dass diese Abstürze absichtlich verursacht werden, damit man sich vor den verschlimmbessernden Updates schützen kann, sondern es wird einfach ein weiterer Bug dieser App sein ;)
     
  5. franc, 23.02.2017 #5
    franc

    franc Threadstarter Android-Lexikon

    schmetty2 bedankt sich.
  6. franc, 10.03.2017 #6
    franc

    franc Threadstarter Android-Lexikon

    Auf Dauer war mir das aber dann doch zu nervig, wegen der ständigen Meldungen von Titanium im Info Bereich daher habe ich mich einer Tasker Lösung zugewandt, auch aus dem obigen Link.
    Ein Task, den ich jede Stunde ausführe per Profil mit Zeittrigger.
    Erst Google Play killen, dann drei db Befehle mit sqlite3, das ich von Titanium nehmen muss, weil ein direkter Aufruf diesen PIE Fehler wirft.
    In meinem Task hier wird die App Swype (com.nuance.swype.dtc) daran gehindert, von GP als aktualisierbar angezeigt zu werden. Man kann die SQL Abfrage natürlich für eine andere App anpassen oder auch Wildkarten definieren.
    Code:
    <TaskerData sr="" dvi="1" tv="4.9u4">
        <Task sr="task691">
            <cdate>1489133322403</cdate>
            <edate>1489137347014</edate>
            <id>691</id>
            <nme>GPDetach</nme>
            <pri>100</pri>
            <Action sr="act0" ve="7">
                <code>123</code>
                <se>false</se>
                <Str sr="arg0" ve="3">am force-stop com.android.vending</Str>
                <Int sr="arg1" val="0"/>
                <Int sr="arg2" val="1"/>
                <Str sr="arg3" ve="3">%output</Str>
                <Str sr="arg4" ve="3">%error</Str>
                <Str sr="arg5" ve="3"/>
            </Action>
            <Action sr="act1" ve="7">
                <code>548</code>
                <Str sr="arg0" ve="3">Output:
    %output</Str>
                <Int sr="arg1" val="1"/>
                <ConditionList sr="if">
                    <Condition sr="c0" ve="3">
                        <lhs>%output</lhs>
                        <op>12</op>
                        <rhs></rhs>
                    </Condition>
                </ConditionList>
            </Action>
            <Action sr="act10" ve="7">
                <code>548</code>
                <Str sr="arg0" ve="3">Output:
    %output</Str>
                <Int sr="arg1" val="1"/>
                <ConditionList sr="if">
                    <Condition sr="c0" ve="3">
                        <lhs>%output</lhs>
                        <op>12</op>
                        <rhs></rhs>
                    </Condition>
                </ConditionList>
            </Action>
            <Action sr="act11" ve="7">
                <code>548</code>
                <Str sr="arg0" ve="3">Error:
    %error</Str>
                <Int sr="arg1" val="1"/>
                <ConditionList sr="if">
                    <Condition sr="c0" ve="3">
                        <lhs>%error</lhs>
                        <op>12</op>
                        <rhs></rhs>
                    </Condition>
                </ConditionList>
            </Action>
            <Action sr="act2" ve="7">
                <code>548</code>
                <Str sr="arg0" ve="3">Error:
    %error</Str>
                <Int sr="arg1" val="1"/>
                <ConditionList sr="if">
                    <Condition sr="c0" ve="3">
                        <lhs>%error</lhs>
                        <op>12</op>
                        <rhs></rhs>
                    </Condition>
                </ConditionList>
            </Action>
            <Action sr="act3" ve="7">
                <code>123</code>
                <se>false</se>
                <Str sr="arg0" ve="3">/data/data/com.keramidas.TitaniumBackup/files/sqlite3 /data/data/com.android.vending/databases/library.db "DELETE from ownership where doc_id='com.nuance.swype.dtc'"</Str>
                <Int sr="arg1" val="0"/>
                <Int sr="arg2" val="1"/>
                <Str sr="arg3" ve="3">%output</Str>
                <Str sr="arg4" ve="3">%error</Str>
                <Str sr="arg5" ve="3"/>
            </Action>
            <Action sr="act4" ve="7">
                <code>548</code>
                <Str sr="arg0" ve="3">Output:
    %output</Str>
                <Int sr="arg1" val="1"/>
                <ConditionList sr="if">
                    <Condition sr="c0" ve="3">
                        <lhs>%output</lhs>
                        <op>12</op>
                        <rhs></rhs>
                    </Condition>
                </ConditionList>
            </Action>
            <Action sr="act5" ve="7">
                <code>548</code>
                <Str sr="arg0" ve="3">Error:
    %error</Str>
                <Int sr="arg1" val="1"/>
                <ConditionList sr="if">
                    <Condition sr="c0" ve="3">
                        <lhs>%error</lhs>
                        <op>12</op>
                        <rhs></rhs>
                    </Condition>
                </ConditionList>
            </Action>
            <Action sr="act6" ve="7">
                <code>123</code>
                <se>false</se>
                <Str sr="arg0" ve="3">/data/data/com.keramidas.TitaniumBackup/files/sqlite3 /data/data/com.android.vending/databases/localappstate.db "DELETE from appstate where package_name='com.nuance.swype.dtc'"</Str>
                <Int sr="arg1" val="0"/>
                <Int sr="arg2" val="1"/>
                <Str sr="arg3" ve="3">%output</Str>
                <Str sr="arg4" ve="3">%error</Str>
                <Str sr="arg5" ve="3"/>
            </Action>
            <Action sr="act7" ve="7">
                <code>548</code>
                <Str sr="arg0" ve="3">Output:
    %output</Str>
                <Int sr="arg1" val="1"/>
                <ConditionList sr="if">
                    <Condition sr="c0" ve="3">
                        <lhs>%output</lhs>
                        <op>12</op>
                        <rhs></rhs>
                    </Condition>
                </ConditionList>
            </Action>
            <Action sr="act8" ve="7">
                <code>548</code>
                <Str sr="arg0" ve="3">Error:
    %error</Str>
                <Int sr="arg1" val="1"/>
                <ConditionList sr="if">
                    <Condition sr="c0" ve="3">
                        <lhs>%error</lhs>
                        <op>12</op>
                        <rhs></rhs>
                    </Condition>
                </ConditionList>
            </Action>
            <Action sr="act9" ve="7">
                <code>123</code>
                <se>false</se>
                <Str sr="arg0" ve="3">/data/data/com.keramidas.TitaniumBackup/files/sqlite3 /data/data/com.android.vending/databases/package_verification.db "DELETE from verification_cache where package_name='com.nuance.swype.dtc'"</Str>
                <Int sr="arg1" val="0"/>
                <Int sr="arg2" val="1"/>
                <Str sr="arg3" ve="3">%output</Str>
                <Str sr="arg4" ve="3">%error</Str>
                <Str sr="arg5" ve="3"/>
            </Action>
        </Task>
    </TaskerData>
    
    Diesen XML Task speichert man als Datei und kann es dann in Tasker importieren. Wer Tasker hat wird es natürlich wissen wie das geht. Wer Tasker nicht kennt, dem würde ich eher davon abraten, diese Lösung hier zu wählen, es sei denn das Frickeln macht Spaß, es ist Zeit genug da und die paar Kröten für Tasker stören nicht.
    Bei Fehler sollte nach jeder Abfrage ein Popup kommen (per Action: Alert - Flash).
    Bei mir funktioniert das bisher gut, ich muss mich nicht mehr darum kümmern.

    Ich glaube bei einem Geräte Neustart synchronisiert Google Play jedes mal neu die App Datenbank, dann zeigt sich das Swype Update bis der Task gelaufen ist. Kann man natürlich auch bei Tasker sagen, dass der Task beim Booten ausgeführt werden soll usw.
     
    Zuletzt bearbeitet: 10.03.2017
    schmetty2 bedankt sich.
  7. schmetty2, 16.03.2017 #7
    schmetty2

    schmetty2 Android-Experte

    Hallo,

    lauft bei mir auf dem S7 nicht wegen 64bit. Was muß ich da ändern?

    mfg Screenshot_20170316-062138.png
     
  8. franc, 16.03.2017 #8
    franc

    franc Threadstarter Android-Lexikon

    Hm, ich hab kein 64 Bit System, kann das nicht testen.
    Gibt es keine SQLite App von der man dann das sqlite3 nehmen kann?
    Titanium ist ja nur eine Lösung für sqlite3.
     
  9. schmetty2, 16.03.2017 #9
    schmetty2

    schmetty2 Android-Experte

    Hab jetzt mal von SD Maid genommen. Selbes Ergebnis.
    Auf'm S3 lauft es ohne Fehler und hebt auch die Verbindung zum PS auf.
     
  10. franc, 17.03.2017 #10
    franc

    franc Threadstarter Android-Lexikon

    Hast du das gelesen?
    Google Groups
    Klingt sehr ähnlich und ist auch Tasker
    Also mit:
    Code:
    export LD_LIBRARY_PATH=/vendor/lib*:/system/lib* 
    
    Aber ich habe keine Ahnung mit 64 bit auf Android, vielleicht ist das auch was ganz anderes, dann Sorry
     
    schmetty2 bedankt sich.
  11. schmetty2, 18.03.2017 #11
    schmetty2

    schmetty2 Android-Experte

    Jepp das ist es!! :thumbsup:
    Danke
     
  12. rudolf

    rudolf Android-Lexikon

    Mit App Cloner kann man einen Klon seiner App erstellen der dann von Google in Ruhe gelaassen wird. Man kann so auch verschiedene Versionen einer App parallel nutzen.
    App Cloner