2013-09-19

ADB Lock v3 ! [en / fr]

[English version below]
-----

Le développement d'ADB Lock se fait sur mon temps libre et la priorité est donnée aux apps qui font rentrer la monnaie. ADB Lock est "financée" par le don, qui à ma grande surprise, fonctionne plutôt bien selon mes critères.

La précédente version, d'octobre 2012, toujours compatible avec Android 4.3, méritait quelques modifications :
  • Android 2.3 et inférieurs (plus suivis par Google) resteront sur la version 1. Le maintien des layout et une partie du code ne se justifie plus.
  • Suppression de la permission Internet et du mécanisme (jamais activé) de publicité via AdMob.
  • Abandon de la bibliothèque RootTools et réecriture des commandes pour ne plus dépendre de busybox.
  • Support des tablettes 10" et 7" (grâce à GenyMotion).
  • Quelques modifications cosmétiques comme l’icône du launcher, suppression des paradigmes d'ordinateurs tels que la fermeture des fenêtres par un click sur une croix et une meilleure harmonie visuelle (padding/margin).
  • La barre du haut initialement occupée par l’icône de l'app, est remplacée par une (fausse et c'est pas bien !) ActionBar qui pointe vers mes profils Twitter, Google+ et ce blog. 
Si vous ne l'utilisez pas encore, installez le SuperUser de koush, qui offre de biens meilleures performances, plus d'options et une plus grande fiabilité que le SuperUser de ChainsDD ou SuperSU de chainfire.

Notez que si vous utilisez Superuser de ChainsDD, il est possible, qu' en arrière plan, ADB Lock ne puisse éteindre adbd car SuperUser demande une confirmation alors que l'écran est éteint.

---

I used to code "ADB Lock" on my spare time, and I must confess the money I do with, is a criterium to prioritize my apps's developpement. Surprisingly, the donation model of this app runs better than I though when I chose this monetization.

The last holo version of ADB-Lock, published a year ago, is still fully compatible with brand new Android 4.3 security models, but it needs a lot of improvements.
  • Android 2.3 and below (not maintained by Google) terminals stay with ADB Lock v1.
    ADB Lock v3 will aims Android 4 and above.
  • The Internet permission is definitively removed. AdMob (never activated) is also removed.
  • RootTools and busybox are no longer needed. They are removed too.
  • Android 10" and 7" are supported. Thanks to GenyMotion !
  • some cosmetic changes concerning launcher icon, computer paradigms (like corner cross to quit) and more efficient visual repartition of widgets (mainly margin & padding stuff)
  • 3 social network icons : Twitter / Google Plus / Blogger to see on what I'm working on. In French.
I can't enough recomand you to use koush's SuperUser instead of chainsDD's SuperUser or chainfire's SuperSU. Koush's has better performances, better options and higher reliability.

For example, ChainsDD's sometimes forgets it has previously (and permanently) allowed ADB Lock and blocks adbd stop mechanism, waiting for another allowance while screen is… off.

2013-09-09

Łǎ łōčǎłé zz_ZZ, ł'ǎűţŕé ƒǎçōи ďé ƒǎìŕé śōи ł33ţ



Tantôt en Anglais, tantôt en Français, je change la langue par défaut de mon terminal assez régulièrement.  Et c'est au cours d'un changement que je suis tombé sur une locale étrange "[Developer] Accented English", que j'ai bien évidemment validé. Je suis curieux.

Probablement qu'un jour ça me perdra, en attendant ça m'amuse.

Attention, ce mode rend votre terminal instable éи ρłűś ďé łé ŕéиďŕé ď샃ìčìłéɱéиţ łìśìƃłé !



        Comme vous pouvez le voir sur la vignette ci-contre, cette locale est la locale par défaut, du moins le contenu du texte, sauf que les lettres sont piochées dans les alphabets d'un peu tout le monde.


    Vous reconnaissez le i cyrillique en minuscule (и), le tréma, le circonflexe, le caron, la cédille … et encore plein d'autres cas de la diacritique latine.


    Codons !


    Je n'ai trouvé aucune explication sur cette locale dans la documentation Android, probablement que les cas concrets d'utilisation sont explicités dans les sources.

    En attendant de lui trouver un sens, faisons-en un easter-egg :  si un autre développeur utilise mon app en Accented English, autant lui être agréable et être raccord avec le reste de son terminal.

    Le code de la locale est zz_ZZ (pays région) il convient de créer "values-zz" et d'y placer le bon fichier "strings.xml", fidèle reflet de values/strings.xml !

     En attendant de mettre la main sur la table de conversion, je vous propose celle-ci :
    'a' : "ǎ", 'b' : "ƃ", 'c' : "č", 'd' : "ď", 'e' : "é",
    'f' : "ƒ", 'g' : "ǧ", 'h' : "ℏ", 'i' : "ì", 'j' : "ĵ", 'k' : "ķ", 'l' : "ł",
    'm' : "ɱ", 'n' : "и", 'o' : "ō", 'p' : "ρ", 'q' : "ʠ", 'r' : "ŕ", 's' : "ś",
    't' : "ţ", 'u' : "ű", 'v' : "ʋ", 'w' : "ŵ", 'x' : "ẍ", 'y' : "ẏ", 'z' : "ž",
    
    'A' : "Â", 'B' : "Ɓ", 'C' : "Ç", 'D' : "Ð", 'E' : "Ë", 'F' : "Ƒ", 'G' : "Ǧ",
    'H' : "Ȟ", 'I' : "Í", 'J' : "Ĵ", 'K' : "Ķ", 'L' : "Ł", 'M' : "Ḿ", 'N' : "Ň",
    'O' : "Ô", 'P' : "Ƥ", 'Q' : "Q", 'R' : "Ŕ", 'S' : "Ş", 'T' : "Ť", 'U' : "Ü",
    'V' : "℣", 'W' : "₩", 'X' : "Ẋ", 'Y' : "¥", 'Z' : "Ż"

    Le visuel est cohérent avec les choix faits pour Android.

    Même si la conversion est en fait triviale, il est possible de l'automatiser avec quelques lignes de python :
    Utilisation : ./script.py input.xml output.xml
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*- 
    
    '''
    __author__ = "Cekage"
    __copyright__ = "Copyleft 2013, Cekage Studio"
    __credits__ = ["cekage", "fileformat"]
    __license__ = "WTFPL"
    __version__ = "1"
    __maintainer__ = "cekage"
    __email__ = "android.dev@cekage.net"
    __status__ = "ƤŔÔÐÜÇŤÍÔŇ"
    
    # Ǧŕééţž ţō http://www.fileformat.info/info/unicode/category/Ll/list.htm
    # Ǧŕééţž ţō http://www.fileformat.info/info/unicode/category/Lu/list.htm
    '''
    
    import sys
    import getopt
    import os
    from xml.etree import ElementTree
    
    convert_table = { 'a' : "ǎ", 'b' : "ƃ", 'c' : "č", 'd' : "ď", 'e' : "é",
    'f' : "ƒ", 'g' : "ǧ", 'h' : "ℏ", 'i' : "ì", 'j' : "ĵ", 'k' : "ķ", 'l' : "ł",
    'm' : "ɱ", 'n' : "и", 'o' : "ō", 'p' : "ρ", 'q' : "ʠ", 'r' : "ŕ", 's' : "ś",
    't' : "ţ", 'u' : "ű", 'v' : "ʋ", 'w' : "ŵ", 'x' : "ẍ", 'y' : "ẏ", 'z' : "ž",
    
    'A' : "Â", 'B' : "Ɓ", 'C' : "Ç", 'D' : "Ð", 'E' : "Ë", 'F' : "Ƒ", 'G' : "Ǧ",
    'H' : "Ȟ", 'I' : "Í", 'J' : "Ĵ", 'K' : "Ķ", 'L' : "Ł", 'M' : "Ḿ", 'N' : "Ň",
    'O' : "Ô", 'P' : "Ƥ", 'Q' : "Q", 'R' : "Ŕ", 'S' : "Ş", 'T' : "Ť", 'U' : "Ü",
    'V' : "℣", 'W' : "₩", 'X' : "Ẋ", 'Y' : "¥", 'Z' : "Ż"}
    
    def accentualize(text):
        ''' returns text with all known chars replaced by accented one '''
        
        accentualized=""
        for char in list(text):
            if char in convert_table.keys():
                accentualized += convert_table[char]
            else:
                accentualized += char
        return accentualized
    
    def convertXML(xmlfrom,toxml):
        ''' reads xmlfrom, loads <string>, accentualizes the text and finally writes to toxml '''
        
        document = ElementTree.parse(xmlfrom)
        resroot = document.getroot()
        
        for string in resroot.findall('string'):
            string.text =  accentualize(string.text)
            
        document.write(toxml,encoding='UTF-8',xml_declaration=True)
    
    def main():
        if len(sys.argv) < 3:
            sys.exit('Üśǎǧé: %s ìиρűţ.ẍɱł ōűţρűţ.ẍɱł' % sys.argv[0])
    
        if not os.path.exists(sys.argv[1]):
           sys.exit('ËŔŔÔŔ: %s ŵǎś иōţ ƒōűиď!' % sys.argv[1])
        
        convertXML(sys.argv[1],sys.argv[2])
    
    if __name__ == "__main__":
        main()
    
    Voilà ce que ça donne :

    Quelques limites à cette locale.

    Passer à cette locale va rendre votre terminal instable le temps son utilisation, si vous avez besoin de stabilité ne l'utilisez pas en permanence.

    Voici deux briques de base du système android qui vont tôt ou tard vous poser problème :
    • Settings.apk ( l'application Parametres )
     
    • Google Search




    Enjoy :-)