Apsaugokite duomenis pakeisdami standžiojo disko sistemos skaidinį. Kas yra „Magisk“ arba kaip paslėpti šaknį „Android“.

Kas yra rezervuotas skaidinys arba kodėl „Windows“ slepia dalį disko?

Pirmą kartą diegiant Windows 7, Windows 8 ir kt. į tuščią arba suformatuotą diską (o ankstesnėse sistemos versijose tokio tomo nebuvo), pirmas dalykas, kurį Windows daro, yra sukurti tam tikrą skaidinį pačioje standžiojo disko pradžioje. Jis vadinamas sistemos rezervuotu skaidiniu (sistemos rezervuotas skaidinys arba sistemos skaidinys). Sistema aktyviai naudoja skaidinį, kad įdiegtų ir įkeltų pagrindinį langų korpusą – tai, ką mes matome kaip pačią operacinę sistemą.

Kai atidarote aplanką Mano kompiuteris arba tik Kompiuteris, sistemos skaidinio nematysite. Jai nėra priskirtas joks pavadinimas ir jis nepasiekiamas „Windows Explorer“. Norėdami jį pamatyti, turite atidaryti kompiuterio valdymo pultą (paieškos juostoje esanti komanda diskmgmt.msc) skiltyje Disko valdymas:

Kodėl jums reikia rezervuoto skaidinio?

Šiame sistemos skaidinyje yra įkrovos duomenys, įkrovos tvarkyklės kodas (programa, leidžianti pasirinkti aktyvų disko skaidinį, iš kurio bus paleistas Windows). Taip pat bus „Windows“ atkūrimo aplinka dėl sistemos gedimo. Jei sistemoje „Windows“ naudojate integruotą „BitLocker“ šifravimo funkciją, „BitLocker“ disko šifravimo funkcijos įkrovos duomenys taip pat bus ten.

Kiekvienai sistemos versijai disko dydis taip pat jau paruoštas. 100 MB Windows 7, 350 MB Windows 8/8.1 ir galiausiai 500 MB Windows 10. Ir, beje, kartais šios vietos neužtenka, o vartotojas po kitos paketo atnaujinimų gauna klaidos pranešimą.

Kaip pažvelgti į rezervuotą skyrių?

Jei norite pažvelgti į šio skyriaus turinį, tiesiog suteikite skyriui pavadinimą. Kaip visada, lotyniškos raidės forma. Kai „Windows Explorer“ pasirodys naujas skaidinys, suaktyvinkite paslėptų aplankų ir failų, taip pat sistemos failų rodymą. Leiskite jums priminti, kad tai daroma per Valdymo skydą elemente Aplanko parinktys.

Jei negalite to padaryti naudodami „Windows“ konsolę, bet tokie failai kaip , BOOTSECT.bak ir įkrovos, atkūrimo aplankai, taip pat sistemos apimties informacija, $RECYCLE BIN tampa matomi be tokių manipuliacijų, jūs ne pirmas, su kuriuo dirbate jūsų kietasis diskas. Be disko Rezervuota sistemos disko šifravimo bus tiesiog neįmanoma išlaikyti. Ir kadangi išpirkos reikalaujanti programa yra paruošta veikti visose naujausiose „Windows“ versijose, ši skiltis taip pat visada bus rodoma.

Sistemos skaidinio nebėra...

Ar galima ištrinti rezervuotą skaidinį?

Neįsivaizduoju, kam tau to gali prireikti. Labai rekomenduoju to nedaryti, kai veikia „Windows“.. Taip dėl bet kokios priežasties. Priešingu atveju beveik garantuotai susidursite su įkėlimo klaida. Be to, kai bandysite vėliau pataisyti „Windows“ įkėlimą, kai ji atsisako paleisti (jei taip atsitiks, žinoma), sistema natūraliai parodys jums problemą kaip trūkstamą elementą. Kompiuterio trikčių šalinimas. Ir jūs turėsite naudoti „Windows“.

Ar jokiu būdu negalima jo atsikratyti?

Apsvarstykite tai dar kartą – šis skyrius yra labai naudingas ir gali būti naudingas. Tačiau jei manote, kad jis tik trukdo, apsvarstykite tai.

  • Prieš diegdami Windows

Čia viskas paprasta. Jei nenorite matyti šio skyriaus ateityje, naudokite įmontuotą programą Diskpart. Jis įtrauktas į „Windows“ diegimo diską.

  • Diegdami sistemą paspauskite Shift + F10, iškviesdami cmd konsolę
  • paleisti disko dalis ir patikrinkite fizinių diskų skaičių naudodami komandą sąrašo diskas(numeracija prasideda nuo 0)
  • komanda pasirinkite jums reikalingą pasirinkite diską 0
  • ir su komanda sukurkite paruoštą naudoti tomą sukurti pagrindinį skaidinį

Tęsiame Windows diegimą, nukreipdami į šį diską (Windows nesukurs rezervuoto skaidinio)

  • Skyrius jau yra

Negalite jos ištrinti paprastu pelės paspaudimu – sistema nėra sau priešas. Ir prieš ištrinant tomą, visi ten saugomi failai turi būti perkelti į kitą vietą. Tik tai skamba taip paprastai: šios manipuliacijos apima registro redagavimą, failų kopijavimą tarp tomų ir BCD įkrovos saugyklos keitimą. „Windows 8“ versijose taip pat turėsite įtraukti atkūrimo aplinką. Jei norite, galiu aprašyti keletą metodų, bet aš tiesiog nerekomenduoju to daryti. Be to, susidūriau su kai kuriomis programomis, kurios užtikrino, kad su jų pagalba duomenų perkėlimas iš atsarginio disko (o po to jų ištrynimas) vyks sklandžiai. Deja, iš tikrųjų problemų buvo daugiau, nei jie minėjo. Palikite kaip yra.

Skaityti: 20

Meniu Redaguoti(Redaguoti) programoje Regedt32 yra komandos, leidžiančios pridėti, keisti ir ištrinti skyrius ir svarbius registro elementus.

Norėdami pridėti naują skyrių prie bet kurio registro avilio, pasirinkite komandą Pridėti skyrių(Pridėti raktą) meniu Redaguoti. Kai vykdote šią komandą, būsite paraginti įvesti sekcijos pavadinimą ir klasę (šiuo atveju klasė nurodo duomenų tipą). Dialogo langas, skirtas įvesti šią informaciją, parodytas fig. 14.5. Šiame dialogo lange nėra sąrašo, iš kurio galėtumėte pasirinkti duomenų tipą, tačiau įvedant naują parametrą kaip sukurtos sekcijos dalį suteikiama galimybė sukurti skyrių ir nustatyti duomenų tipą.

Komanda Pridėti skyrių naudojamas svarbiems elementams pridėti prie registro raktų. Dialogo lange, kuris atsidaro vykdant šią komandą (14.6 pav.), yra sąrašas, leidžiantis pasirinkti reikšmingo elemento duomenų tipą: eilutės reikšmės (REG_SZ, REG_MULTI_SZ ir REG_EXPAND_SZ) arba dvejetainės reikšmės (REG_DWORD arba REG_BINARY). ).

Norėdami pašalinti skyrių ar reikšmingą elementą iš registro, pasirinkite objektą (sekciją arba reikšmingą elementą), kurį ketinate ištrinti, ir pasirinkite komandą Ištrinti(Ištrinti) meniu Redaguoti. Jūsų bus paprašyta patvirtinti savo ketinimą ištrinti pasirinktą skyrių ar reikšmingą elementą.

Pastaba

Kaip jau ne kartą buvo kartojama, registro rengyklės nepalaiko anuliavimo operacijų, todėl patvirtinę ištrynimo operaciją neturėsite kito būdo atkurti ištrintą informaciją, išskyrus atkūrimą iš anksčiau sukurtos atsarginės kopijos. Be to, registro rengyklė paragins patvirtinti ištrynimo operaciją, tik jei meniu Parinktys pasirinkta parinktis Patvirtinti ištrynus. Todėl, nuspręsdami ištrinti raktus iš registro, nepamirškite atsarginės kopijos (ir neieškokite sau nereikalingų užduočių su jau esamu sprendimu).

Jei netyčia ką nors ištrinate iš HKEY_LOCAL_MACHINE\System\CurrentControlSet registro rakto, atminkite, kad šio rakto turinį galite atkurti naudodami paskutinę sėkmingai įkeltą konfigūraciją (žr. 2 ir 8 skyrius). Norėdami atlikti šią operaciją, iš naujo paleiskite kompiuterį ir iškart po to, kai pasirodys įkrovos įkrovos meniu, paspauskite , tada derinimo meniu pasirinkite parinktį Paskutinis žinomas geras.

Be komandų, skirtų ištrinti registro elementus ir pridėti naujų skyrių bei parametrų į jo sudėtį, meniu Redaguoti Regedt32 redaktorius turi komandų rinkinį, skirtą esamiems registro įrašams redaguoti (ir reikia pažymėti, kad šis parinkčių rinkinys yra daug platesnis nei tas, kurias teikia naujesnė Regedit programa). Meniu Redaguoti Regedt32 registro rengyklėje yra komandos Dvejetainiai duomenys(dvejetainis) Linija(styga), Dvigubas žodis(DWORD) ir Multiline(Kelių stygų). Pasirinkus kiekvieną komandą, paleidžiamas atitinkamo tipo reikšmių rengyklė – pavyzdžiui, pasirinkite komanduoja dvejetainius duomenis paleidžia dvejetainį redaktorių - Binary Editor, pasirinkite komandą Dvigubas žodis- DWORD reikšmės redaktorius ir komandų pasirinkimas Line ir Multiline iškviečia atitinkamus eilučių ir kelių eilučių reikšmių redaktorius. Atminkite, kad tokių plačių galimybių Regedit redaktoriuje tiesiog nėra.

„Runet“ platybėse sunku rasti konstruktyvios ir gerai pateiktos informacijos apie „Android“ operacinės sistemos dizainą. Dažniausiai informacija yra fragmentiška ir neišsami, nėra įvadinės dalies su pagrindinėmis sąvokomis, todėl pradedantiesiems sunku suvokti ir suprasti. Neturint pagrindinių žinių apie įrenginį ir Android operacinės sistemos veikimo algoritmą, neįmanoma derinti ar tinkinti programinės aparatinės įrangos ar kurti Android OS. Būtent tai ir paskatino parašyti šį straipsnį, kuriame bandysiu įprasta ir suprantama kalba perteikti „sudėtingus“ dalykus.

Medžiaga pirmiausia skirta paprastiems vartotojams ir pateikiama kaip įvadinė ekskursija į Android operacinių sistemų pasaulį. Todėl čia bus pateikta glausta ir paviršutiniška informacija be techninių gelmių ir niuansų. Ši medžiaga bus naudinga visiems, kurie užsiima programinės aparatinės įrangos mirksėjimu ir pritaikymu, Android OS kūrimu, mobiliųjų kompiuterių sistemų taisymu ir paprastam vartotojui, kad geriau suprastų savo Android veikimo principus ir galimybes.

Android vidinės atminties skaidiniai

„Android“ įrenginio vidinė atmintis yra padalinta į kelis loginius diskus (skyrius). Čia yra klasikinis atminties išdėstymas:

Bootloader- čia yra programa (bootloader), kuri leidžia paleisti "Android" operacinę sistemą, atkūrimą ir kitus paslaugų režimus.

Atsigavimas- kaip rodo pavadinimas, čia įdiegtas inžinerijos atkūrimo meniu arba tiesiog atkūrimas.

Įkrovimas- Android OS širdis, čia yra branduolys, tvarkyklės ir procesoriaus bei atminties valdymo nustatymai.

Sistema- sistemos skaidinys, kuriame yra visi failai, reikalingi Android OS veikimui, tai yra kaip Windows aplankas jūsų C:\ diske (toliau mes jį susiesime su Windows OS)

Duomenys- programų diegimo ir jų duomenų saugojimo skyrius. (Programos failus)

Vartotojas- tai gerai žinoma sdcard arba, paprasčiau tariant, vartotojo failų vieta (Mano dokumentai). Čia esame priversti padaryti nukrypimą, nes Šio skyriaus išdėstymas turi keletą parinkčių:

  • Skyriaus nėra vidinėje atmintyje, o naudojamas išorinis diskas - populiariausias pasirinkimas. (1 pav.)
  • Įrenginiuose su didele vidine atmintimi ši sekcija laikoma sdcard, o išorinė atminties kortelė – sdcard2 arba extsd (gali būti ir kitų pavadinimo parinkčių). Paprastai randama įrenginiuose, kuriuose veikia „Android 3.2“. (2 pav. 1 parinktis)
  • Ši parinktis pakeitė ankstesnę versiją kartu su „Android 4.0“. Skyrius Vartotojas buvo pakeistas skiltyje „Duomenys“ esančiu medijos aplanku, kuris leido programoms diegti ir duomenims saugoti naudoti visą vartotojui skirtą atmintį, o ne tą, kurią mums skyrė gamintojas. Kitaip tariant, sdcard ir duomenys yra viena. (2 pav., 2 parinktis)

Dabar, kai žinome, kas yra kur, išsiaiškinkime, kodėl tai yra ir kuo ši informacija gali būti mums naudinga.

Pradėkime nuo Bootloader. Tai įkrovos įkroviklis, paleidžiantis „Android“, atkūrimą ir kt. Kai paspaudžiame maitinimo mygtuką, paleidžiama įkrovos programa ir, jei nėra papildomų komandų (paspaustų klavišų), pradeda įkelti įkrovą. Jei buvo paspaustas klavišų derinys (kiekvienas įrenginys turi savo), jis paleidžiamas, atsižvelgiant į komandą, atkūrimas, greitas įkrovimas arba apx. Toliau pateiktame paveikslėlyje aiškiai parodyta, kas veikia Bootloader ir kaip skyriai yra tarpusavyje sujungti.

Kaip matyti iš 3 paveikslo, atkūrimo skaidinys neturi įtakos Android OS įkėlimui, bet kam tada to reikia? Pabandykime tai išsiaiškinti.

Atkūrimas iš esmės yra nedidelė programa, pagrįsta „Linux“ branduoliu ir įkeliama nepriklausomai nuo „Android“. Jo standartinės funkcijos nėra turtingos: galite atkurti įrenginio gamyklinius nustatymus arba atnaujinti programinę-aparatinę įrangą (iš anksto atsisiųsta į SD kortelę). Tačiau liaudies meistrų dėka mes pakeitėme atkūrimą, per kurį galite įdiegti modifikuotą (tinkintą) programinę-aparatinę įrangą, konfigūruoti „Android“, kurti atsargines kopijas ir dar daugiau. Atkūrimo buvimas ar nebuvimas, taip pat jo versija neturi įtakos „Android“ OS veikimui (labai dažnas klausimas forumuose).

Ypač dėmesingi skaitytojai galėjo pastebėti tam tikrą „Fastboot“ 3 pav. Tai sąsaja, skirta tiesiogiai dirbti su vidinės atminties skaidiniais naudojant komandinę eilutę. Per jį galite atkurti atkūrimą, branduolį ar naują programinės įrangos versiją arba formatuoti (ištrinti visą informaciją) vieną ar kitą skaidinį.

Kadangi kalbame apie sąsajas, noriu pakalbėti apie kitą gana gerai žinomą – adb (android debugbridge). Tai vadinamasis derinimo režimas ir taip pavadintas ne veltui – per jį galima stebėti tiek visos sistemos, tiek atskirų programų veikimą. Tačiau tai dar ne viskas, naudodami adb galite gauti visišką prieigą prie įrenginio failų sistemos ir pakeisti sistemos failus arba gauti svarbią informaciją, kai įrenginys užstringa. Visų derinimo režimo funkcijų neaprašysiu, nes... Mano tikslas yra perteikti bendrą informaciją, o ne išsamią konkretaus režimo funkcijų apžvalgą.

Supratę teoriją, paleiskite „Android“ OS.

Paspaudžiame maitinimo mygtuką - paleidžiamas Bootloader, kuris įkelia branduolį (boot), kuris savo ruožtu paleidžia sistemą (System), na, ir jau įkelia programas (duomenis) ir vartotojo erdvę (vartotoją). (3 pav.)

Dabar eikime į šakninį katalogą ir pažvelkime į pačios Android OS vidų:

Šioje diagramoje pateikėme tik nuorodas būtinus katalogus. Tiesą sakant, jų yra daug daugiau, o norint peržiūrėti tik vieną Sistemos aplanką, reikėtų viso straipsnio.

Ir taip, duomenų aplankas. Kaip rodo pavadinimas, tai turi kažką bendro su duomenimis, bet kokia? Taip, beveik visi tai apima sinchronizavimą ir paskyros duomenis, „Wi-Fi“ prieigos taškų slaptažodžius ir VPN nustatymus ir pan. Be kita ko, čia galite rasti programėlę, duomenis ir dalvik talpyklos aplankus – pažiūrėkime į jų paskirtį:

  • programėlė – čia įdiegtos programos ir žaidimai.
  • duomenys – čia saugomi programų duomenys, jų nustatymai, žaidimų įrašai ir kita informacija.
  • dalvik-cache yra programinės įrangos talpyklos sritis, skirta Dalvik programai. Dalvik yra „Java“ virtuali mašina, kuri yra pagrindas paleisti programas, turinčias *.apk plėtinį.
  • Kad programos būtų paleistos greičiau, sukuriama jų talpykla.

Sistemos aplanke saugomi sistemos duomenys ir viskas, kas reikalinga OS darbui. Pažvelkime į kai kuriuos iš šių aplankų:

  • programėlė – čia yra sistemos programos (SMS, telefonas, kalendorius, nustatymai ir kt.), taip pat įrenginio gamintojo įdiegtos programos (firminiai valdikliai, gyvi tapetai ir kt.).
  • šriftai – sisteminiai šriftai
  • laikmena - yra standartiniai skambėjimo tonai, pranešimai, aliarmai ir sąsajos garsai, taip pat įkrovos animacija (bootanimacija)
  • build.prop – šis failas beveik pirmasis paminėtas pokalbiuose ir straipsniuose apie sistemos tobulinimą. Jame yra daugybė nustatymų, tokių kaip ekrano tankis, artumo jutiklio delsos laikas, wifi valdymas, įrenginio pavadinimas ir gamintojas bei daugelis kitų parametrų.

„Android“ OS šakninio vartotojo teisės

Kaip ir bet kurioje „Linux“ tipo sistemoje, „Android“ operacinėje sistemoje prieiga prie sistemos failų ir katalogų suteikiama „Root“ supervartotojo teisėmis. Šiame skyriuje nusprendėme apsvarstyti supervartotojo teisių veikimo principą Android OS, galimybę redaguoti sistemos failus arba loginius failų erdvės skaidinius, jei turite Root supervartotojo teises.

— Gerai žinoti, kas kokiame aplanke yra, bet ar galima ką nors padaryti?

- Taip! Bet jums reikia supervartotojo teisių (root) arba, jei palyginsime su Windows, administratoriaus teisių. Iš pradžių visi Android įrenginiai ateina be root teisių galutiniam vartotojui, t.y. Pirkdami įrenginį nesame pilnaverčiai jo savininkai. Tai daroma tiek siekiant apsisaugoti nuo kenkėjiškų programų, tiek nuo paties vartotojo - juk netinkamose rankose visiška prieiga prie sistemos gali lemti operacinės sistemos „mirtį“, o vėliau prireikus įjungti įrenginį.

„Na, kokia nauda iš tokio pavojingo daikto?- Jūs klausiate.

Dabar mes jums pasakysime:

  • Galimybė kurti atsargines duomenų kopijas ir atkurti juos po mirksėjimo arba atsitiktinio ištrynimo.
  • Tikslus sistemos derinimas rankiniu būdu arba naudojant specialias programas.
  • Sistemos programų, skambėjimo tonų, fono paveikslėlių ir kt. pašalinimas.
  • OS išvaizdos keitimas (pavyzdžiui, akumuliatoriaus įkrovos rodymas procentais)
  • Funkcijų pridėjimas (pavyzdžiui, specialiųjų tinklų palaikymas)

Šį sąrašą galima tęsti ilgą laiką, bet manau, kad šių pavyzdžių pakaks, kad susidarytumėte supratimą apie root teisių galimybes ir taikymo sritį.

- Visa tai puiku, bet dabar bet kuri programa galės pasiekti operacinės sistemos „širdį“ ir mano duomenis?

– Ne. Jūs nuspręsite, ar leisti tai ar kitai programai gauti root prieigą, ar ne. Tam yra programa Superuser arba jos pažangi sesuo SuperSU. Be šios ar panašios programos negalima naudoti root.

Kaip matote, „Android“ nėra tokia sudėtinga operacinė sistema, kurią vartotojas gali suprasti. Jei turite ankstesnės patirties su Linux panašiomis operacinėmis sistemomis, rasite daug panašumų su Android sistemomis ir šie panašumai yra pagrįsti. „Android“ sistema yra sukurta ir sukurta „Linux“ branduolyje. Tikiuosi, kad perskaitę straipsnį sužinojote ką nors naujo arba gavote atsakymą į seniai jus dominantį klausimą.

Sveiki, Habr!

Prieš keletą metų, kai pirmą kartą susipažinau su Android, iš kolegos išgirdau, kad Android suteikia galimybę įdiegti modifikuotą ar savadarbę programinę-aparatinę įrangą. Atvirai pasakius, tada buvau toli nuo to. O dar prieš pusmetį tokiais dalykais beveik nesidomėjau. Giliai širdyje buvau tikras, kad tai, ką daro gamintojas, jau yra skirta įprastam naudojimui.

Įsivaizduokite mano nusivylimą, kai įsigijau telefoną iš Kinijos, kur gamykliniai nustatymai draudė naudotis Google, Skype, Facebook ir kitomis programomis. Iš principo į kai kuriuos dalykus buvo galima užmerkti akis, bet kai mano telefone nereikėjo naudotis Google paskyra, daviau pažadus, kad tikrai tai išsiaiškinsiu, kad ir kas man nutiktų.

Praėjo pusė metų ir mano pritaikyta programinė įranga sėkmingai naudojama visame pasaulyje.

Šioje straipsnių serijoje bus aptariama, kaip atlikti atvirkštinį „Android“ programavimą, įdiegti pataisas, pataisymus ir modifikacijas.

Preambulė

Taigi! Pirmiausia apibrėžkime sąvokas, kurios bus naudojamos duota straipsnis. Tačiau jūsų įprastas supratimas gali būti labai skirtingas.

Pleistras- esamo programos kodo keitimas arba pakeitimas, siekiant modifikuoti programos algoritmą.
Maud- kaip taisyklė, esamo programos kodo papildymas papildomomis funkcijomis, nekeičiant algoritmo.
Keisti- programos funkcionalumo tobulinimas, siekiant palengvinti prieigą prie sistemos parametrų.

Taip pat noriu pažymėti, kad visi pavyzdžiai bus paimti HTC telefonui, tačiau tai nereiškia, kad ši informacija negali būti naudojama kituose telefonuose.

Aplinkos paruošimas

Galiu išsiversti be išsamių instrukcijų, kaip naudoti tą ar kitą programinę įrangą. Jei domitės šiuo straipsniu ir perskaitėte iki šiol, tikiuosi, kad jau esate patyręs vartotojas ir turite patirties naudojant ar bent jau eksperimentuoti šioje srityje. Viešoje erdvėje yra daugybė instrukcijų, straipsnių ir bandymų rezultatų, kaip ir Habré. Taip pat neaprašysiu kai kurių terminų, kitaip straipsnis pasirodys labai ilgas ir varginantis. Rašysime tik iki esmės. Esu tikras, kad trečiadienį jau seniai. Jei ne, siūlau jį atsisiųsti ir įdiegti.

1 . Android SDK. Tai programų kūrimo aplinka, skirta „Android“. Norėdami atlikti pakeitimus, būtinai turėsime patikrinti savo programos kodą. Kūrimo aplinka yra geriausia, kokią galime naudoti.
2 . Android virtuvė. Ši programa leis jums dirbti su oficialios ar neoficialios programinės įrangos sistemos skaidinių vaizdais.
3 . JD-GUI. Java kodo dekompiliatorius. Iš karto norėčiau pažymėti, kad tai yra geriausias dekompiliatorius naudojimo paprastumo požiūriu.
4 . DJ Java Decompiler. Kitas Java kalbos programos kodo dekompiliatorius arba disassembler, kaip kai kas mėgsta tai vadinti. Tai nėra patogu naudoti, tačiau ji analizuoja kodą, kurio JD-GUI kartais nesupranta.
5 . smali. Dar vienas disassembleris, bet šį kartą dalvik kodas. smali reikalingas išardymui, o backsmali kodo surinkimui.
6 . dex2jar. Dalvik kodo vykdomųjų failų konvertavimo įrankis.

Firmware konvertavimas

Žinoma, gamintojo programinė įranga, kurią turite telefone, yra optimizuota siekiant sumažinti energijos suvartojimą. Kad programinė įranga būtų modifikuota, ji turi būti konvertuota į formatą, leidžiantį keisti kodą. Tam naudojama „Android Kitchen“. Žinoma, galite tai padaryti savo rankomis, kaip aš dariau anksčiau, kol radau šią „virtuvę“. Internete galite pasiskaityti, kaip pašalinti sistemos sritį iš telefono, įdiegti aplinką ir pasidaryti DEODEX programinę įrangą. Jei jau nieko nesuprantate, manau, verta atidėti šio straipsnio skaitymą, kol įgysite pakankamai patirties.

Pakeitus programinę-aparatinę įrangą iš optimizuotos versijos (ODEX – optimizuotas dalvik vykdomasis kodas, jei mano atmintis man netinka) į DEODEX (ty NĖRA optimizuota), visi vykdomieji failai yra paruošti modifikavimui.

Tiesioginės modifikacijos

Pleistrų kūrimas
Kaip jau sakiau, iš pradžių mano telefonui buvo uždrausta naudotis „Google“. Na, nesvarbu, jūs negalite eiti į „Playstore“, negalite susikurti paskyros, telefonų knyga tikrai nesinchronizuojama. Kam tau reikalingas toks Android? Ilgai gilinantis į paties įrenginio logcat, radau įrašų, kuriuose buvo rašoma, kad Google naudotis draudžiama. Nepatogiausias dalykas „Android“ yra tai, kad matote žurnalą, bet nežinote, kuri sistemos programa jį sukuria. Norėdamas sužinoti, iš kur kyla mano kojos, turėjau išardyti visas sistemos programas, kad būtų išardytas „Java“ kodas. Tai užtruko daug laiko, bet aš vis dar naudoju savo darbą analizuodamas ir ieškodamas tinkamo kodo. Tokių įrankių įsigijimo veiksmai yra tokie:
1 . Padarykite DEODEX iš visos programinės įrangos
2 . Naują DEODEX programinę-aparatinę įrangą reikės surinkti ir įkelti į telefoną. Kaip tai daroma, yra kito straipsnio tema.
3 . Iš kiekvieno failo, esančio /system/framework, išskleiskite classes.dex failą ir konvertuokite jį į JAR naudodami dex2jar.
4 . Atidarykite kiekvieną gautą JAR JD-GUI ir iš naujo išsaugokite jį šaltinio kode
5 . Išpakuokite šaltinio kodą iš archyvo.

Galų gale aš gavau tiek aplankų, kiek buvo JAR failų /system/framework, ir kiekvienas aplankas turėjo Java šaltinio kodo struktūrą.
Atlikdamas paprastas manipuliacijas, greitai radau vietą, kurioje buvo sukurti įrašai logcat.

Nenagrinėsime visos draudimo logikos, nes kiekvienas atvejis yra atskira istorija. Teko sugaišti porą valandų, kol radau, kur atliekami patikrinimai, galvoje susidėliojau algoritmo blokinę schemą ir supratau, kur reikia eiti, kad šiek tiek „sugadinčiau“ algoritmą.

Tai pasirodė paprasta. Yra paprogramė, kuri, remdamasi iš anksto nustatytomis konstantomis, susisiekus atsakydavo, ar telefonas priklauso Kinijai, ar ne.

Kodas buvo faile HTCExtension.jar, o klasėje, kurioje buvo ši paprogramė, buvo

Originalaus failo išpakavimas ir analizė
1 . Pirmiausia turime paimti originalų DEODEX JAR failą, kuris yra atsakingas už mums reikalingą kodo dalį. Mūsų atveju HTCExtension.jar.
2 . Atidarykite naudodami bet kurį archyvatorių ir iš ten ištraukite classes.dex
3 . Norėdami konvertuoti jį į JAR failą, naudokite dex2jar keitiklį. Komanda: dex2jar.bat classes.dex
4 . Atidarykite gautą failą classes_dex2jar.jar JD-GUI.
5 . Taip, dažniausiai JD-GUI dekompiliuoja kodą ne taip, kaip atrodo originale, tai suprantama, bet gana įskaitoma. Šaltinio kode matome, kad paprogramė tikrina projekto parametrus ir programinės įrangos kalbos vėliavėlę. Mūsų apgailėtinu atveju grąžinama TRUE.
viešoji statinė loginė isChina() ( if ((HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_Flag.Bt =() _flag == 1) && (2 == HtcBuildFlag.Htc_LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) grąžinti teisingą; grąžinti klaidingą; )
6 . Norėdami sukurti pataisą, turime išardyti patį Dalvik kodą. Tam naudojame baksmalį. Patogiausias būdas yra sukurti atskirą aplanką ir įdėti tris failus kartu: HTCExtension.jar, smali.jar Ir baksmali.jar. Duokite komandą java -Xmx512m -jar baksmali.jar -a -d -o HTCExtension -x HTCExtension.jar

Tai jūsų „Android“ versijos API. JB tai 16
- aplankas, kuriame yra visos programinės įrangos sistemos.

Mano atveju tai buvo komanda
java -Xmx512m -jar baksmali.jar -a 16 -d S:\dev\Android\Android-Kitchen\WORKING_JB_15\system\framework -o HTCExtension -x HTCExtension.jar
7 . Mūsų naujai sukurtame aplanke atsirado aplankas HTCExtension ir jame mūsų failai su Dalvik kodu.
8 . Failo radimas kelyje \com\htc\util\contacts\BuildUtils$Customization.java ir pažiūrėk kodą:
.method public static isChina()Z .registers 3 .prologue const/4 v0, 0x1 .line 276 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S v2,-qx1 , v2, :cond_13 sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0xda if-eq v1, v2, :cond_13 sget-comjavaflag/htc „ Htc_PROJECT_flag:S if-ne v1, v0, :cond_1d .line 285 const/4 v1, 0x2 sget-short v2, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_LANGUAGE_flag:S if-e, v. q3 291:cond_1d sget-short v1, Lcom/htc/htcjavaflag/HtcBuildFlag;->Htc_PROJECT_flag:S const/16 v2, 0x1b if-eq v1, v2, :cond_13 .line 2907 v3: 0/4 const. metodas
9 . Baisu, ar ne? Nieko neaišku. Bet tai yra ištaisoma problema. Sukūrę keletą savo pataisų ir taip įgiję patirties, galite lengvai modifikuoti kodą be trečiųjų šalių įrankių. Mūsų atveju šiame kode
.prologue const/4 v0, 0x1 priskiria kintamajam v0 reikšmę 1, ty TRUE. Tada yra visokių patikrinimų, o jei telefonas ne kiniškas, tai keičiasi kintamojo reikšmė:
.line 297 const/4 v0, 0x0 goto:goto_13
10 . Lengviausias būdas išgelbėti Rusijos demokratijos tėvą yra pakeisti kodą į tokį:
.prologue const/4 v0, 0x0 , tai yra pakeisti kintamojo reikšmę nuo 1 iki 0. Tai yra, kad ir kaip būtų, vertė FALSE visada būtų grąžinama ir JD-GUI kodas atrodytų kaip viešas statinis loginis isChina() ( if (( HtcBuildFlag.Htc_PROJECT_flag == 216) || (HtcBuildFlag.Htc_PROJECT_flag == 218) || (HtcBuildFlag.Htc_PROJECT_flag); whileJ == 1) && ( 2 == HtcBuildFlag.Htc _LANGUAGE_flag)) || (HtcBuildFlag.Htc_PROJECT_flag == 27)) grąžinti klaidingą; grąžinti klaidingą; )
11 . Taip, metodas veiks. Bet mes neieškome lengvų kelių – šį kartą. Antra, tai ne visai gražu. Norėčiau koduoti kažką panašaus
vieša statinė loginė isChina() (grąžinti klaidingą; )
12 . Kaip galime gauti šio šaltinio kodo Dalvik kodą? Pradedantiesiems padarysime nedidelę gudrybę.

Dalvik kodo kūrimas
1 . Atidarykite Android SDK.
2 . Sukuriame naują projektą ir parašome šį kodą vienintelėje mūsų bandymo klasėje
paketas ru.habrahabr.test; viešosios klasės testas (viešas statinis loginis isChina() (grąžinti klaidingą; ) )
3 . Mes sudarome savo projektą ir tada paimame surinktą programą iš darbo srities.
4 . Surinktą programą įdėjome į aplanką, kuriame išdarinėjame JAR failą.
5 . Duokite komandą java -Xmx512m -jar baksmali.jar -a -d -o test -x test .apk
6 . Mes išardėme naujai sukurtą programą į Dalvik kodą.
7 . Atidarykite failą test.smali ir pamatykite ten esantį kodą
.method public static isChina()Z .registers 1 .prologue .line 7 const/4 v0, 0x0 return v0 .end metodas
8 . Tai viskas, pataisymo kodas yra paruoštas.
Pleistro ridenimas
1 . Dalvik kodas yra nusėtas žymenimis, nurodančiomis kodo eilutę pradiniame šaltinio faile. Tai būtina, kai programoje rodomos klaidos, jei tokių yra. Kodas taip pat gerai veikia nenurodydamas eilučių.
2 . Ištriname eilutes su eilučių numeracija, nukopijuojame ir pakeičiame metodą (paprogramę) mūsų \com\htc\util\contacts\BuildUtils$Customization.java failą.
.method public static isChina()Z .registers 1 .prologue const/4 v0, 0x0 return v0 .end metodas
3 . Išsaugokite failą. Taip, pamiršau pasakyti, jums reikia įprasto redaktoriaus, pavyzdžiui, Notepad++ arba EditPlus. Kuris kam patinka?
Pataisyto JAR failo kompiliavimas ir kūrimas
1 . Naudodami backsmali išardėme savo JAR failą ir dabar turime jį vėl sudėti.
2 . Duokite komandą java -Xmx512m -jar smali.jar -a 16 HTCExtension -o classes.dex
3 . Failas classes.dex pasirodo mūsų aplanke
4 . Vėl atidaroma HTCExtension.jar failą su archyvatoriumi ir pakeisti jame esamą klases.dexį mūsų ką tik sukurtą.
5 . Tai tiek, mūsų HTCExtension.jar yra pakeistas programos kodas.
Pradinio failo pakeitimas pataisytu
Paprastai paprastiems vartotojams sukuriami specialūs scenarijai, kurie pakeičiami atkūrimo būdu. Bet mums tai neįdomu. Pirma, tai ilgas ir nuobodus, antra, esame patyrę vartotojai ir galime sau leisti tam tikras subtilybes.

1 . Dabartinį darbinį failą galite pakeisti šiomis komandomis, jei jau turite DEODEX programinę įrangą ir turite root prieigą:

Adb push HTCExtension.jar /sdcard/HTCExtension.jar adb apvalkalas su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar of=/system/framework/HTCExtension.jar.back dd if=/sdcard /HTCExtension.jar of=/system/framework/HTCExtension.jar chmod 644 /system/framework/HTCExtension.jar rm /data/dalvik-cache/system@ [apsaugotas el. paštas]@classes.dex paleiskite iš naujo

Pirmoji komanda įkelia pataisytą failą į „flash drive“.
2-oji komanda atidaro apvalkalą
3 komanda suteikia root prieigą
4-oji komanda prijungia sistemą skaitymo / rašymo režimu
5-oji komanda sukuria atsarginę failo kopiją
6-oji komanda perrašo esamą failą nauju pataisytu.
7-oji komanda sukonfigūruoja leidimus
8 komanda ištrina talpyklą
9-oji komanda paleidžia įrenginį iš naujo.

2 . Ačiū, kad perskaitėte iki šio taško, liko nedaug.
3 . Po perkrovimo įsigalios naujas pataisytas kodas.
4 . Jei kodas neveikia arba įvyksta klaida, naudodami paprastus derinius galite grąžinti atsarginę kopiją.
adb shell su mount -o remount -rw /system dd if=/system/framework/HTCExtension.jar.back of=/system/framework/HTCExtension.jar rm /data/dalvik-cache/system@ [apsaugotas el. paštas]@classes.dex paleiskite iš naujo

Epilogas

Taip, kai kurie manė, kad šis straipsnis yra per konkretus, kai kuriems buvo sunku suprasti, o kai kuriems pasirodė, kad jis nenaudingas. Sąmoningai vengiau gilių detalių ir iliustracijų, kaip visa tai atrodo gyvai ir praktiškai. Pirma, šis darbas bus nedėkingas ir sukels tik dar daugiau klausimų. Antra, nenoriu matyti daugybės vartotojų forumuose, besiskundžiančių, kad nužudė savo telefoną.

Kitame straipsnyje aš jums pasakysiu, kaip padaryti „Tweeks“. Bus pateiktas automatinio telefono skambučių įrašymo naudojant vietinius telefono įrankius pavyzdys. Ačiū už dėmesį.

P.S. Jei kas neaišku ar painu, užduokite klausimus – visada mielai atsakysiu ir paaiškinsiu.

Problemos formulavimas

Informacijos saugojimas kompiuteryje yra susijęs su atsitiktinio ar tyčinio atskleidimo rizika, todėl jai apsaugoti naudojami įvairūs metodai ir priemonės. Dažniausiai kaip pagrindinė priemonė, neleidžianti laisvai prieiti prie informacijos elektronine forma, naudoti šifravimą, kuris yra įdiegtas aparatinėje arba programinėje įrangoje. Kriptografinės apsaugos objektai yra atskiri failai, failų grupės, katalogai ir galiausiai loginiai diskai. Šifravimo rezultatas yra failų archyvai, esantys elektroninės žiniasklaidos priemonės. Įvairių kriptografinių algoritmų įgyvendinimo detalės, galima pastebėti, kad šiuo atveju GKU taip pat reikia išspręsti problemas, susijusias su garantuotu pradinio sunaikinimu. nešifruota informacija užkirsti kelią jo atsigavimui.

Faktas yra tas, kad visų naudojamų failų sistemų funkcija ( FAT, NTFS ir kt.). Neįmanoma perrašyti informacijos failo grupėse, kol nepastebėta, kad failas ištrintas. Tai yra, failo šifravimo metu šifruota jo kopija įrašoma ne vietoj pradinio failo, o į laisvas elektroninės laikmenos grupes ir tik pasibaigus šifravimo procesui nešifruotas failas ištrinamas, nebent tai numatyta algoritmas.

Taigi galima atkurti ištrintą nešifruotą informaciją, kurią sėkmingai atlieka tokie programinės įrangos produktai kaip Failų atkūrimas, „Back2Life“, „R-Studio“, „GetDataBack“, skirtas NTFS, ir kt.

Jei neatsižvelgsite į su jais susijusias rekomendacijas fizinis elektroninių laikmenų sunaikinimas, tada tai padaryti neįmanoma tik pakartotinai perrašant tas magnetinių diskų grupes, kuriose anksčiau buvo saugoma konfidenciali informacija. Pavyzdžiui, Amerikos nacionalinis Gynybos departamento standartas DOD 5220.22-M (E) apima atsitiktinių skaičių įrašymą pirmuoju važiavimu, skaičiais, papildančiais įrašytus ankstesniame važiavime, antrame ir atsitiktinių skaičių trečiajame. Garsiajame Peterio Gutmanno algoritme, kuris laikomas vienu iš patikimiausias , vietoje sunaikintų duomenų paeiliui rašomi visi žinomi skaitmenų deriniai (iš viso atliekami 35 važiavimai). — informacijos naikinimo metodai palaiko amerikietiškus standartus DOD 5220.22-M, armija AR380-19, NCSC-TG-025, oro pajėgos 5020, NAVSO P-5239-26, HMG IS5, Vokietijos VSITR, Kanados OPS-II ir Rusijos GOST P50739-95 ir kt. Taigi, šifravimas atliekamas loginio disko viduje, visada kelia riziką, kad pradinė informacija bus visiškai sunaikinta, todėl reikia kitokio požiūrio į šią problemą.

mob_info