Android 5-ը քարտեզ գրելու թույլտվություն: Թարմացրեք Android Lollipop-ին և արտաքին հիշողության քարտի հետ աշխատելու առանձնահատկությունները: Հեռացնելով microSD պաշտպանությունը բջջային սարքի միջոցով

Թարմացումով օգտատերերը ստացել են մի շարք սահմանափակումներ SD քարտերի օգտագործման վերաբերյալ: Մինչև վերջերս այս խնդիրը կարող էր լուծվել հատուկ որոնվածի միջոցով կամ վերադառնալով ավելին վաղ տարբերակըՕՀ. Այժմ կարելի է վերադարձնել նախկին հնարավորություններին Android 4.4 KitKat. Կարդացեք, պարզելու համար, թե ինչպես դա անել:

Առաջին հերթին, դուք պետք է արմատավորեք ձեր Androidսարքեր. Երկրորդ կարևոր պայմանը կիրառումն է SDFix. Ներբեռնեք դիմումը հետևյալ հասցեով Androidանվճար կարող եք անմիջապես . Դա անելու համար օգտագործեք ստորև նշված հղումը:

Տեղադրվելով SDFixինքնուրույն Android, մի քանի հպումով կվերականգնեք ձեր նախկին հնարավորությունները։ Հավելվածի գործարկման սկզբունքն այն է SDFixավելացնում է Android UNIX «media_rw» խումբը WRITE_EXTERNAL_STORAGEայսպիսով օգտագործվում է Android 4.4 KitKat XMLֆայլը փոխվում է platform.xml. Սա ստեղծում է պահուստային պատճեննախնական կարգավորում platform.xml.original-pre-sdfix, որը կարող է օգտագործվել սահմանափակումները վերականգնելու համար։ Համակարգը պահեստում վերադարձնելու համար դուք պետք է օգտագործեք հետազոտող, որն աջակցում է արմատային հասանելիությանը և փոխարինեք platform.xml-ով platform.xml.original-pre-sdfix-ով:

Առանձին-առանձին պետք է նշել, որ այն հավելվածները, որոնք օգտագործում են SD-ն, ավելի շատ կստանան ցածր մակարդականվտանգություն։ Կարևոր է նաև այն փաստը, որ SDFixհանգեցնում է մշտական ​​փոփոխությունների, ինչը նշանակում է, որ երբ հին թույլտվությունները վերականգնվեն, հավելվածը կարող է ջնջվել:

Android 4.4 KitKat օպերացիոն համակարգում բավականին տհաճ անակնկալ կա, դա այն է երրորդ կողմի դիմումներըչի կարող մուտք գործել հիշողության քարտի վրա գրելը և կարդալը:

Google-ը ստեղծել է շատ տհաճ հատկություն/վրիպակ/անակնկալ. Android 4.4-ով բացարձակապես բոլոր սարքերը, որոնցում կարելի է տեղադրել հիշաքարտը, չեն կարող լիովին աշխատել հիշաքարտի հետ, կանոնից միակ բացառությունը Nexus սարքերն են, քանի որ դրանք բնիկ չունեն: SD ՔԱՐՏԻ համար: Ինչի համար է սա նշանակում կանոնավոր օգտագործող? Օրինակ, ֆայլերի կառավարիչը չի կարողանա ստեղծել/բացել թղթապանակ կամ ֆայլ:

KitKat-ում հիշողության քարտի վրա կարդալն ու գրելը շտկելու համար ձեզ հարկավոր են Root իրավունքները

Մեթոդ 1 (պարզ տարբերակ)

Ձեր հետո Android սմարթֆոնե կամ պլանշետը կտեղադրվի Root, գնացեք հավելվածների խանութ Google Playև ներբեռնել SDFix: KitKat գրավոր MicroSD(անվճար). Տեղադրվելուց հետո անցեք SDFix հավելված և սեղմեք «Շարունակել» կոճակը

Այնուհետև սպասեք մի քանի վայրկյան, մինչև սխալն ուղղվի: Փակեք SDFix-ը և վերագործարկեք Android-ը, որպեսզի փոփոխություններն ուժի մեջ մտնեն: Բոլորը!

Մեթոդ 2 (պարզ, տարբերակ նրանց համար, ովքեր ցանկանում են ավելին իմանալ)

Հենց վերևում նկարագրված մեթոդը ավտոմատացված է, բայց դուք կարող եք այն շտկել ձեռքով, հատկապես, որ դա ամենևին էլ դժվար չէ: Դա անելու համար ձեզ հարկավոր է տեղադրել ֆայլերի կառավարիչ հավելված, օրինակ ES Explorer-ը, այն բանից հետո, երբ նրան արմատային հասանելիություն տրամադրեք համակարգի բաժանմանը:

Անցեք համակարգի բաժանմանը ֆայլերի կառավարչի հետ.

/ system/etc/ թույլտվություններԵվ գտեք ֆայլը, որը կոչվում է. platform.xml

Այնուհետև բացեք այն ներկառուցվածով տեքստի խմբագիր ES դիրիժոր

Գտեք գիծը.

Ավելացրեք ևս մեկ պարամետր հենց ներքևում

Վերագործարկեք ձեր Android սմարթֆոնը կամ պլանշետը, որպեսզի փոփոխություններն ուժի մեջ մտնեն: Հիշողության քարտ մուտք գործելու խնդիրը լուծված է:

Գաղտնիք չէ, որ օպերացիոն համակարգը Androidտարածված է բջջային աշխարհում:

Նման համատարած օգտագործումը ուղեղի Googleհրահրում է հաքերային հարձակումների թվի աճ այս հարթակը. Այս տհաճ իրավիճակի դեմ պայքարելու համար ՏՏ հսկան փորձում է ներդնել նոր գործառույթներ՝ ուղղված. անվտանգության բարձրացում Android համակարգով սարքերի սեփականատերերը, սակայն այս գործառույթներից մի քանիսը կարող են լրացուցիչ անհարմարություններ առաջացնել: Ինչպես վերացնել այս անհարմարություններից մեկը, կքննարկվի ստորև:

Հիշողության քարտի մուտքի սահմանափակում

Թեմայի շուրջ Հիշողություն Android-ում. Android սարքերի բոլոր հիշողության բաժիններըմենք արդեն անդրադարձել ենք բջջային հիշողության խնդրին օպերացիոն համակարգ. Սմարթֆոնների շատ օգտվողներ, որոնք հիմնված են Android տարբերակները 4.4իսկ մեծերը բախվում են մի իրավիճակի, որտեղ երրորդ կողմի մշակողների ծրագրերը մուտք չունեն հիշողության քարտի արմատին. Ավելին, առաջանում է այս խնդիրըև նրանց համար, ովքեր արդեն նոր սարք են գնել Android KitKatև ավելի բարձր նավի վրա, և նրանց համար, ովքեր արդիականացրել են նոր համակարգգնումից հետո։

Ինչու՞ Android ծրագրերը չեն կարող մուտք գործել SD քարտի արմատ:
Փաստն այն է, որ բաց մուտքը դեպի սկավառակի արմատը անվտանգության մեծ անցք է ամբողջ օպերացիոն համակարգում. Փորձելով պաշտպանել օգտատերերին ներխուժողներից՝ Google-ը նման քայլի է դիմել՝ սահմանափակելով մուտքը դեպի հիշողության քարտ:

Պարզ բառերով, շատ որոնվածում միացված է Android-ի վրա հիմնված 4.4 և ավելի բարձր, երրորդ կողմի ծրագրերն այլևս չեն կարող տվյալներ գրել հիշողության քարտի արմատին: Պահպանվում է ֆլեշ քարտի վրա տեղադրված գրացուցակներում գրելու հնարավորությունը: Իրավիճակը սրվում է նրանով, որ այս սահմանափակումը ազդել է առանց բացառության բոլոր հավելվածների, այդ թվում՝ ֆայլերի կառավարիչների վրա։

Ոչ բոլորն են գոհ իրերի այս վիճակից, ուստի ստորև մենք կանդրադառնանք վերադառնալու ճանապարհին երրորդ կողմի ծրագրերմուտք դեպի հիշողության քարտի արմատ:

Ավարտված է։ Պլանշետը, մասնավորապես Asus MeMO Pad 7-ը, որը ես փոխարինեցի իմ ազնիվ աշխատասեր աշխատակցին, ստացավ Android 5.0.1 թարմացում: Հիմա ես սարք ունեմ Lollipop-ով, կամ, ինչպես ինտերնետում են ասում, Lollipop-ով:

Թարմացումը տեղ հասավ անսպասելիորեն: Անկեղծ ասած, ես ապրիլին սպասում էի հեռախոսի նոր որոնվածի (Asus ZenFone 5) - համենայնդեպս, դա խոստացված էր: Ոչ ոք ոչինչ չի ասել պլանշետի մասին, և ահա դա ձեզն է, վերցրեք այն և ստորագրեք դրա համար:

Սա, փաստորեն, հուսահատեցրեց ինձ (իհարկե, լավ իմաստով), նաև այն պատճառով, որ ես գնել եմ պլանշետը դեկտեմբերին, և այն ուներ 4.3 տարբերակ։ Այսինքն՝ սա օպերացիոն համակարգի երկրորդ նշանակալի թարմացումն է (իրականում թարմացումներն ավելի շատ են եղել, բայց թիվը Android տարբերակներըչի փոխվել): Իմ սարքերի նախորդ արտադրողը՝ Samsung-ը, չէր կարող պարծենալ կրակի նման արագությամբ, թեև նրանք նաև երկու անգամ թարմացրել են օպերացիոն համակարգը՝ Android 3.2-ից մինչև Android 4.1.2 (4.0.1-ի միջոցով): Բայց մենք պետք է շատ ավելի երկար սպասեինք այս նոր տարբերակներին:

Դե ինչ, կեցցեն անակնկալները։ Ստանալով ծանուցում նոր որոնվածի տարբերակի թողարկման մասին, ես անմիջապես ներբեռնեցի այն, որն ավելի քան 700 մետր է, և գործարկեցի թարմացումը: Քանի որ ես ներբեռնեցի ոչ թե , այլ բջջային հեռախոսի միջոցով, ամեն ինչ մի փոքր ավելի շատ ժամանակ պահանջեց՝ ներբեռնման սկզբից մինչև թարմացման ավարտը մոտ մեկ ժամ է անցել։ Թարմացումը ինքնին տևեց մոտ քսան րոպե, բայց պոտենցիալ կարող է ավելի երկար տևել, քանի որ օպերացիոն համակարգը տեղադրելուց հետո թարմացման գործընթացը հետևում է: տեղադրված ծրագրեր. Իմ հաշվիչը հաշվեց մինչև 205: Բայց հիմա գործընթացն ավարտված է, և ժամանակն է տեսնելու, թե ինչ է փոխվել:

Առաջին բանը, որ գրավեց իմ ուշադրությունը, սարքն ապակողպելիս ավելի բարդ գրաֆիկան էր: Երկրորդը ծանուցման տարածքում գտնվող ձեռքն է: Մի երկու օր համբերեցի՝ հուսալով, որ պատահաբար ինչ-որ տեղ դրա հետ կապված ինչ-որ բան կտեսնեմ։ Ես դա չտեսա։ Հետո սկսեցի նպատակային փնտրել ու դրա բացատրությունը գտա 4pda-ում։ Պարզվում է, որ ծանուցումները բաժանվում են կարևոր և ոչ այնքան կարևոր, և հնարավոր է նշել, թե որ ծանուցումները եք ցանկանում ստանալ։ Եթե ​​դուք սահմանել եք տարբերակը Միշտ տեղեկացնել , ապա ձեռքը անհետանում է, եթե տարբերակը Միայն կարևոր ահազանգեր , ապա ձեռքը հայտնվում է. Անկեղծ ասած, մի քանի անգամ ձեռքս հանեցի, բայց ինչ-ինչ պատճառներով այն միշտ հետ է գալիս։ Ինչո՞ւ։ Ես դեռ չգիտեմ։

Ահա, փաստորեն, այս ձեռքը «հեռացնելու» կարգը.

Վերոհիշյալ մեթոդը ամենևին էլ բարդ չէ: Բայց դուք կարող եք արդյունքի հասնել նույնիսկ ավելի արագ և հեշտ. սեղմեք ձայնի վերահսկման երկու կոճակներից մեկը - էկրանին կհայտնվի պատուհան, որը թույլ է տալիս փոխել համակարգի տարբեր բաղադրիչների ձայնի մակարդակը, ինչպես նաև ուշադրություն, կառավարում: Զգուշացման ռեժիմներ . Ճիշտ է, չգիտես ինչու, սրանք նույնն են Զգուշացման ռեժիմներ միշտ չէ, որ ցուցադրվում են այդքան արագ: Ես դեռ չեմ գտել օրինաչափություն, բայց, ճիշտն ասած, ես իսկապես չեմ փնտրել այն:

Արտաքին հիշողության քարտ ընտրելը
և ընտրացանկից ընտրեք ցանկալի տարրը
Առայժմ, հավանաբար, այսքանն է:

4.4.2 «բորտ» ունեցող սարքերի շատ երջանիկ տերեր, հավանաբար, արդեն բախվել են սարքի վրա տեղադրված հավելվածների մեծ մասի անկարողության հետ՝ տվյալները ֆլեշ քարտի վրա գրելու: Պատրաստված է, ըստ Google-ի, Android 4.4.2 KitKat ՕՀ-ն ավելի անվտանգ համակարգ դարձնելու համար:

Ֆլեշ քարտին գրելու սահմանափակումները հիմնականում վերաբերում են երրորդ կողմի աղբյուրներից տեղադրված հավելվածներին: Եվ, ամենակարևորը, Android 4.4.2 KitKat-ն արգելում է փոփոխել ֆայլերը, որոնք ուղղակիորեն կապված չեն այն հավելվածների հետ, որոնք ցանկանում են կատարել այս փոփոխությունը: Ուստի SD քարտի վրա ձայնագրելու անկարողությունը:

Գործնականում այս սահմանափակումը բառացիորեն նշանակում է հետևյալը. օգտագործեք ստանդարտ մեսենջերներ, լուսանկարների խմբագրիչներ, ֆայլերի կառավարիչներ: Քանի որ, եթե ձեր ծրագրաշարի մշակողը չկարողացավ ժամանակին պատասխանել և թարմացումներ ավելացնել ձեր լուսանկարների խմբագրիչին, օրինակ, ապա ձեր բոլոր խմբագրված լուսանկարները «կենդանի» կլինեն, քանի դեռ ֆոտոխմբագիրն աշխատում է, դուք այլևս չեք կարողանա գրել: ձեր խմբագրած լուսանկարները քարտին:

Ավելի առաջադեմ օգտվողները, ովքեր անընդհատ պատճենում են տվյալները ֆլեշ կրիչից համակարգիչ և ետ, կարող են հանդիպել հետևյալ խնդրին. համակարգիչը հայտնաբերում է ձեր « »-ը, տեսնում է ֆայլերը, բայց չի կարող որևէ բան անել դրանց հետ. Այս խնդիրը կարող է շտկվել՝ ձեր սարքում տեղադրելով հավելված, որը թույլ կտա մուտք գործել: Բայց այս հավելվածը կաշխատի միայն ROOT սարքերում:

SDFix. KitKat Writable-ն աշխատում է պարզապես. հավելվածը տեղադրելուց և գործարկելուց հետո սեղմում եք Շարունակել, համաձայնում եք պայմաններին և կրկին սեղմում Շարունակել: Եթե ​​Superuser հավելվածն արդեն տեղադրված է ձեր սարքում, ապա դուք պետք է թույլատրեք SDFix-ին մուտք գործել դրանում գտնվող ROOT դիրեկտորիաներ:


SDFix KitKat Writable MicroSD-ն իր աշխատանքի ընթացքում կփոխի /system/etc/permissions/platform.xml ֆայլը, որում կգրի թույլտվություն՝ WRITE_EXTERNAL_STORAGE թույլտվություն ունեցող հավելվածների կողմից ֆայլերը գրելու և փոփոխելու համար: Դուք կարող եք գտնել բնօրինակ փոփոխված SDFix: KitKat Writable MicroSD ֆայլը platform.xml.original-pre-sdfix անունով: Հետագայում, դուք միշտ կարող եք վերականգնել բնօրինակ ֆայլը:

Առավել «հարմար» օգտատերերի համար, ովքեր ունեն ROOT մուտք իրենց սարքում, կա տարբերակ՝ ուղղումներ անելու ցանկալի ֆայլում՝ առանց SDFix-ի օգնության՝ KitKat Writable MicroSD-ի օգնությանը դիմելու:

Դա անելու համար գործարկեք ֆայլերի կառավարիչ, որը կարող է խմբագրել ֆայլերը, գտնել platform.xml ֆայլը /system/etc/permissions/ հասցեում և բացել այն՝ օգտագործելով ներկառուցված խմբագրիչը:


Դրանից հետո գտեք android.permission.WRITE_MEDIA_STORAGE և android.permission.WRITE_EXTERNAL_STORAGE բաժինները և ավելացրեք կոդերի հետևյալ տողերը այս բաժիններում.

Դրանից հետո փոփոխված ֆայլը պահեք խմբագրում։

Սարքը վերագործարկելուց հետո կլուծվեն բոլոր տհաճ խնդիրները, որոնք կապված են ֆլեշ քարտի վրա ֆայլեր գրելու և փոփոխելու անկարողության հետ:

Մրցութային հավելված մշակելիս ես հանդիպեցի տվյալների բազայի պահպանման խնդրին։ Խնդիրն այն էր, թե ինչպես կարող եմ նույնականացնել արտաքին հիշողության քարտը: Ընդհանուր առմամբ, համացանցում որոնումը ստույգ պատասխան չտվեց։ Ուստի, համատեղելով բոլոր գտած արդյունքները, ես հավաքեցի իմ դասարանը: Եթե ​​որևէ մեկին հետաքրքրում է, նայեք կտրվածքի տակ:

Այսպիսով, եկեք սկսենք տեսությունից:

Տերմինաբանություն

Google-ը մեզ ասում է, որ կան հետևյալ հասկացությունները.
  1. Ներքին ( ներքին) հիշողությունը հեռախոսի մեջ ներկառուցված հիշաքարտի մի մասն է: Լռելյայն օգտագործելու դեպքում հավելվածի պանակը պաշտպանված է այլ հավելվածների մուտքից (օգտագործելով ներքին պահեստը):
  2. Արտաքին ( արտաքին) հիշողությունը ընդհանուր «արտաքին պահեստ» է, այսինքն. սա կարող է լինել կամ ներկառուցված հիշողության մի մասը կամ սարք, որը կարելի է հեռացնել: Սովորաբար սա ներկառուցված հիշողության մի մասն է, վերջին անգամ ես տեսա, որ սարքը հեռացվում է Android 2.2-ում, որտեղ ներկառուցված հիշողությունը մոտ 2 ԳԲ էր, իսկ միացված հիշողությունը դարձավ արտաքին (օգտագործելով արտաքին պահոցը):
  3. Ջնջված է ( շարժական) հիշողություն՝ ամբողջ պահեստը, որը կարելի է հեռացնել սարքից առանց «վիրահատական» միջամտությունների:

Մինչև KitKat 4.4-ը API-ն չի տրամադրել ֆունկցիոնալություն՝ դեպի երթուղիները գտնելու համար արտաքին հիշողություն. Սկսած այս տարբերակից (API 19), հայտնվեց հանրային վերացական File ֆունկցիան getExternalFilesDirs(String type), որը վերադարձնում է տողերի զանգված՝ ներքին և արտաքին հիշողության ուղիներով: Բայց ինչ վերաբերում է մեր SD քարտին, որը տեղադրված է բնիկի մեջ: Մենք կրկին չենք կարողանում հասնել դրան:

որոնման արդյունքները

Հարցին պատասխանելու համար դիմեցի ամենագետ Google-ին։ Բայց նա էլ ինձ հստակ պատասխան չտվեց. Դիտարկվել են սահմանման բազմաթիվ տարբերակներ՝ սկսած ստանդարտ գործառույթների օգտագործումից, որոնք հանգեցնում են արտաքին հիշողության, բայց դրանք կապ չունեն պահեստավորման սարքերի հեռացման հետ, մինչև սարքի տեղադրման կանոնների մշակումը (Android-ն աշխատում է Linux միջուկի վրա): Վերջին դեպքերում օգտագործվել են մոնտաժված սարքերով թղթապանակ տանող «կապված» ուղիներ (այս գրացուցակը տարբեր է տարբեր տարբերակներում): Մի մոռացեք, որ մոնտաժման կանոնները փոխվում են տարբերակից տարբերակ:

Ի վերջո, ես որոշեցի համատեղել իմ ստացած ողջ գիտելիքները և գրել իմ դասը, որը կարող է վերադարձնել արտաքին և ջնջված սարքերի ուղիները:

Կոդի նկարագրությունը

Ստեղծվել է դասարան MountDevice, որը պարունակում է սարքի ուղին, սարքի տեսակը և հեշը:
Կան երկու տեսակի սարքեր (ես չեմ դիպչել ներքին հիշողությանը, քանի որ դրան կարելի է մուտք գործել համակարգի API-ի միջոցով):

Հանրային թվարկում MountDeviceType (EXTERNAL_SD_CARD, REMOVABLE_SD_CARD)
Եվ դասարանը ստեղծվեց StorageHelper, որը փնտրում է հասանելի հիշողության քարտեր:

StorageHelper դասը իրականացնում է որոնման երկու մեթոդ՝ համակարգի միջավայրի միջոցով ( Շրջակա միջավայր) և օգտագործելով Linux կոմունալ ծառայություններ լեռը, Ա ավելի ճշգրիտ, քան արդյունքըդրա իրականացումը։

Մեթոդ առաջին - Շրջակա միջավայր
Շրջակա միջավայրի հետ աշխատելիս ես օգտագործում եմ ստանդարտ getExternalStorageDirectory() ֆունկցիան՝ արտաքին հիշողության մասին տեղեկատվություն ստանալու համար։ Ջնջվող հիշողության մասին տեղեկատվություն ստանալու համար ես օգտագործում եմ շրջակա միջավայրի փոփոխականը: SECONDARY_STORAGE".

Պաշտոնական կայքերում ես չգտա Android-ի պաշտոնական թարմացումներ (մեր տարածաշրջանի համար):

Ես ֆորումներում գտա տեղեկատվություն, որ Google-ը թողարկել է որոնվածը Ռուսաստանի համար 2015 թվականի հունվարին: Բայց այն շատ դանդաղ է իրականացվում հաճախորդների սարքերում:

Այս կերպ ես կարող եմ սպասել, մինչև իմ սարքը հաղորդագրություն ստանա, որ կա ծրագրային ապահովման թարմացում: Դրանից հետո ես կարող եմ թարմացնել Android-ը։