Därför bör du roota din Android

Det finns många myter kring jailbreak och root. Som t ex att det bara är intressant för pirater, att det är extremt svårt, riskabelt och omoraliskt.

Det främsta syftet med att jailbreaka en iPhone är att man får tillgång till appar som Apple av någon anledning bedömt vara omoraliska. Som t ex iBlackList för att ha en brandvägg för oönskade samtal och sms. När det gäller Android är det lätt att tro att root är onödigt då Android har friare marknad för appar. Men Android-telefoner har ofta en hel del förinstallerad bloatware som ligger och drar kraft i bakgrunden, och som det inte går att göra något åt utan root. Det går verken att avinstallera eller inaktivera autostart, vilket är en självklarhet på en dator. Om all bloatware hade varit aktiverat när man köpte telefonen har jag svårt att tänka mig att någon telefon skulle få bättre användarbetyg än 2/5, om ens det. Men allt eftersom tiden går blir bloatwaren mer och mer glupsk på systemresurser. Android har en hel del hooks för påtvingad start av program, vilket både ofrivilligt och frivilligt installerade program utnyttjar hej vilt.

Det går att jämföra det med att koka en groda. Eftersom försämringen går relativt långsamt accepterar man det, och så kanske man köper en ny telefon efter ett halvår eller så.

Om man däremot rootar telefonen finns möjligheten att vägra ställa upp på inbyggt åldrande, och är fri att använda sin telefon som man själv vill. Dessutom är det bra för miljön – fördubblad livslängd på prylar halverar miljöpåverkan. Skuldsättningen minskar, vilket gör att ekonomin står sig starkare mot svackor.

Du rootar din Android genom att koppla den till datorn med usb och sen kör du SuperOneClick på datorn. USB-felsökning behöver aktiveras. När root är klar installerar du Gemini App Manager från Play Butik. Starta Gemini och tryck på menyknappen (den med två fyrkanter på bl a LG Optimus 2X), välj ”mer” och sedan ”expert mode”.

Oftast räcker det att inaktivera autoruns, och om det inte räcker får man frysa appen (Block App root). Det är riskfritt, till skillnad mot att avinstallera, då det kan vara knepigt att återställa ifall man råkat ta bort fel app.

Länkar:

 

Dagens citat

”When you see that in order to produce, you need to obtain permission from men who produce nothing – When you see that money is flowing to those who deal, not in goods, but in favors – When you see that men get richer by graft and by pull than by work, and your laws don’t protect you against them, but protect them against you – When you see corruption being rewarded and honesty becoming a self-sacrifice – You may know that your society is doomed.”
— Ayn Rand, ”Atlas Shrugged”, 1957

Var försiktig med TYPO3 4.7

Det har egentligen aldrig varit några konstigheter med att uppgradera TYPO3. Först SSH och några kommandon för att ladda ner sourcen och uppdatera symlänken. Sedan en koll i Install Tool. Har man vanan går det på högst 15 minuter.

Men 4.7 är en helt annan sak. Har man kört utf-8 sen tidigare (kan inte komma på att jag kört något annat på någon sajt jag byggt de senaste fem åren eller så) så åker man på dubbelenkodning, så att åäö blir hentaitecken. Det går dock att lösa från SSH: blog.hno3.org/2010/04/22/fixing-double-encoded-utf-8-data-in-mysql/

Nästa fälla är att om man inte har senaste TemplaVoila så blir det php-fel i backend: Fatal error: Call to undefined method noDoc::getDynTabMenuJScode() in xxx/typo3conf/ext/templavoila/mod1/index.php on line 481

Visst är det bra att uppgradera tillägg, men då man råkat ut för att man tappat mappningar när man uppgraderat TemplaVoila så drar man sig ju för det. Men en uppgradering av TemplaVoila fixar det.

En mer subtil fälla är förändringarna i den html-kod som genereras av typoscript. Så om man lagt in kod för att ändra html-koden för hur bilder mm visas, så får man räkna med mystiska fel. Archive.org är din vän…

En del innehållstyper funkar inte öht, t ex sektionsindex. Men med följande typoscript fick jag det att funka:

tt_content.menu.20 {
        # "Section index (pagecontent w/Index checked - liststyle)"
        3 < styles.content.get
        3 {
            wrap = <ul>|</ul>
            select.andWhere = sectionIndex!=0
            select.pidInList.override.field = pages
            renderObj = TEXT
            renderObj {
                fieldRequired = header
                trim = 1
                field = header
                htmlSpecialChars = 1
                noBlur = 1
                wrap = <li>|</li>
                typolink.parameter.field = pid
                typolink.section.field = uid
            }
        }
}

Mitt tips är att köra med gamla goda 4.5 tills vidare, och vänta minst sex månader till att uppgradera till 4.7. Då kan man iaf hoppas på att buggarna är fixade och de värsta fällorna är dokumenterade.

Det angivna nätverksnamnet är inte längre tillgängligt

Helt plötsligt slutar en mappad nätverksenhet att funka. Givetvis är allt det där vanliga rätt: IP, användarnamn och lösenord. Datorn som delar ut är igång, och det går t o m att nå webbservern på den. Och vad än konstigare är att anslutningen ser ut att funka, och man t om kan se hur många % av enheten som används. Men när man klickar på den står det ”det angivna nätverksnamnet är inte längre tillgängligt”. Kanske går det t o m att bläddra runt på enheten från cmd.exe, men inte från utforskaren?

Nej, det behöver inte vara något fel på din Windows-installation.

Om datorn som delar ut kör Linux (som t ex Bubba) så kan förklaringen vara att rotpartitionen är full. När det gäller Bubba är hårddisken partitionerad från början, fördelat ca 1:100 mellan rotpartition och enhet för lagring. Enklast är att logga in med ssh och köra kommandot df. Nedan är ett exempel på hur det ska se ut.

user@bubba:~$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1              9621848   1458880   7674192  16% /
tmpfs                   127900         0    127900   0% /lib/init/rw
udev                     10240        24     10216   1% /dev
tmpfs                   127900         4    127896   1% /dev/shm
/dev/mapper/bubba-storage   950669364 738847996 163530144  82% /home

Om den enhet som är mountad på ”/” har 100% use är den full eller nästan full. Då behöver den rensas. För att se vad som tar upp utrymme så kör man kommandot du | sort -r -n > du.txt & som root.

När kommandot är klart kan du granska filen med kommandot head -n 30 du.txt

Efter att jag tömt den felande mappen funkar allt som det ska.

Objektorientering i JS

Som i princip alla moderna språk stödjer JavaScript objektorientering. Enligt min mening ska man objektifiera så mycket som möjligt. Det är egentligen inte svårare att köra med objekt än utan, snarare blir koden lättare att överskåda och framförallt lättare att fortsätta utveckla senare. Här är ett grundexempel som t ex kan vara en del av ett program för att generera avatarer, innehållandes objekt för ”body” och ”bone”:

function Body() {
    this.parent = false;
    this.type = 'body';
    this.add_bone = function() {
        bone = new Bone();
        bone.parent = this;
        return bone;
    }
}
function Bone() {
    this.type = 'bone'
    this.add_bone = function() {
        bone = new Bone();
        bone.parent = this;
        return bone;
    }
}

Ovanstående är givetvis inget komplett exempel, utan visar bara hur man deklarerar variabler och funktioner inuti objekt. Varje ben kan ha flera barnobjekt, och man kommer enkelt åt ovanstående objekt med variabeln ”parent”.