اندروید 5 اجازه نوشتن نقشه. به روز رسانی به Android Lollipop و ویژگی های کار با کارت حافظه خارجی. حذف محافظ microSD از طریق دستگاه تلفن همراه

با به‌روزرسانی، کاربران محدودیت‌هایی را برای استفاده از کارت‌های SD دریافت کردند. تا همین اواخر، این مشکل را می‌توان با استفاده از میان‌افزار سفارشی یا بازگشت به سیستم عامل دیگر حل کرد نسخه اولیهسیستم عامل اکنون می توان به فرصت های قبلی بازگشت اندروید 4.4 کیت کت. برای اطلاع از نحوه انجام این کار به ادامه مطلب مراجعه کنید.

اول از همه، شما باید خود را روت کنید اندرویددستگاه ها دومین شرط مهم کاربرد است SDFix. دانلود برنامه در اندرویدبه صورت رایگان می توانید مستقیماً از . برای این کار از لینک زیر استفاده کنید.

نصب کردن SDFixبه تنهایی اندروید، قابلیت های قبلی خود را با چند ضربه بازیابی خواهید کرد. اصل عملکرد برنامه این است که SDFixگروه Android UNIX "media_rw" را به آن اضافه می کند WRITE_EXTERNAL_STORAGEبنابراین در اندروید 4.4 کیت کت XMLفایل به platform.xml. این ایجاد می کند نسخه پشتیبانراه اندازی اولیه platform.xml.original-pre-sdfix، که می تواند برای بازگرداندن محدودیت ها استفاده شود. برای بازگرداندن سیستم به انبار، باید از اکسپلورری استفاده کنید که از دسترسی ریشه پشتیبانی می کند و platform.xml را با platform.xml.original-pre-sdfix جایگزین کنید.

به طور جداگانه، لازم به ذکر است که برنامه هایی که از SD استفاده می کنند، بیشتر دریافت خواهند کرد سطح پایینامنیت. همچنین این واقعیت مهم است که SDFixمنجر به تغییرات دائمی می شود، به این معنی که پس از بازیابی مجوزهای قدیمی، برنامه را می توان حذف کرد.

یک شگفتی نسبتا ناخوشایند در سیستم عامل Android 4.4 KitKat وجود دارد، آن است برنامه های شخص ثالثنمی تواند به نوشتن و خواندن روی کارت حافظه دسترسی داشته باشد.

گوگل یک ویژگی/اشکال/سورپرایز بسیار ناخوشایند ایجاد کرده است - کاملاً تمام دستگاه‌های دارای Android 4.4 که می‌توانید در آن‌ها کارت حافظه نصب کنید، نمی‌توانند به طور کامل با کارت حافظه کار کنند، تنها استثنای این قانون دستگاه‌های Nexus هستند، زیرا آنها اسلات ندارند. برای کارت SD این به چه معناست کاربر معمولی? به عنوان مثال، مدیر فایل قادر به ایجاد/باز کردن پوشه یا فایل نخواهد بود.

برای رفع مشکل خواندن و نوشتن روی کارت حافظه در کیت کت، به حقوق ریشه نیاز دارید

روش 1 (گزینه ساده)

بعد از شما گوشی هوشمند اندروید e یا تبلت روت نصب می شود، به فروشگاه برنامه بروید گوگل پلیو دانلود کنید SDFix: KitKat قابل نوشتن MicroSD(رایگان). پس از نصب، به برنامه SDFix بروید و روی دکمه "ادامه" کلیک کنید

سپس چند ثانیه صبر کنید تا خطا تصحیح شود. SDFix را ببندید و اندروید را ریستارت کنید تا تغییرات اعمال شوند! همه!

روش 2 (ساده، گزینه برای کسانی که می خواهند بیشتر بدانند)

روشی که در بالا توضیح داده شد خودکار است، اما می توانید آن را به صورت دستی تعمیر کنید، به خصوص که اصلاً دشوار نیست! برای انجام این کار، پس از دادن دسترسی ریشه به پارتیشن سیستم، باید یک برنامه مدیریت فایل، به عنوان مثال ES Explorer را نصب کنید.

با فایل منیجر به پارتیشن سیستم بروید:

/system/etc/permissionsو فایلی به نام: platform.xml

سپس آن را با توکار باز کنید ویرایشگر متنهادی ES

خط را پیدا کنید:

پارامتر دیگری را درست در زیر اضافه کنید

گوشی هوشمند یا تبلت اندرویدی خود را مجددا راه اندازی کنید تا تغییرات اعمال شوند! مشکل دسترسی به کارت حافظه حل شد!

این هیچ رازی نیست که سیستم عامل اندرویددر دنیای موبایل گسترده شده است.

چنین استفاده گسترده ای از زاییده فکر گوگلباعث افزایش تعداد حملات هکرها می شود این پلت فرم. به منظور مقابله با این وضعیت ناخوشایند، غول فناوری اطلاعات در تلاش است تا عملکردهای جدیدی را با هدف افزایش ایمنیدارندگان دستگاه های دارای سیستم اندروید، اما برخی از این عملکردها ممکن است باعث ناراحتی اضافی شود. نحوه از بین بردن یکی از این ناراحتی ها در زیر مورد بحث قرار خواهد گرفت.

محدود کردن دسترسی به کارت حافظه

در مورد موضوع حافظه در اندروید. تمام بخش های حافظه دستگاه های اندرویدیما قبلاً به موضوع حافظه تلفن همراه پرداخته ایم سیستم عامل. بسیاری از کاربران گوشی های هوشمند بر اساس نسخه اندروید 4.4و بزرگترها با موقعیتی مواجه می شوند که برنامه های توسعه دهندگان شخص ثالث به ریشه کارت حافظه دسترسی ندارند. علاوه بر این، به وجود می آید این مشکلو برای کسانی که قبلاً یک دستگاه جدید خریداری کرده اند اندروید کیت کتو بالاتر در هیئت مدیره، و برای کسانی که به ارتقاء سیستم جدیدپس از خرید

چرا برنامه های اندروید نمی توانند به ریشه کارت SD دسترسی پیدا کنند؟
حقیقت این هست که دسترسی باز به ریشه درایو یک حفره امنیتی بزرگ در کل سیستم عامل است. گوگل در تلاش برای محافظت از کاربران در برابر مزاحمان، اقدامی مانند محدود کردن دسترسی به کارت حافظه را انجام داده است.

به زبان ساده، در بسیاری از سیستم عامل ها روشن است مبتنی بر اندروید 4.4 و بالاتر، برنامه های شخص ثالث دیگر نمی توانند داده ها را در ریشه کارت حافظه بنویسند. توانایی نوشتن در فهرست های موجود در فلش کارت حفظ می شود. وضعیت با این واقعیت تشدید می‌شود که این محدودیت بر همه برنامه‌ها بدون استثنا، از جمله مدیران فایل تأثیر گذاشته است.

همه از این وضعیت راضی نیستند، بنابراین در زیر راهی برای بازگشت بررسی خواهیم کرد برنامه های شخص ثالثدسترسی به ریشه کارت حافظه

تمام شد! تبلت، یعنی Asus MeMO Pad 7، که من جایگزین زحمتکش صادق خود شدم، به روز رسانی اندروید 5.0.1 دریافت کرد. حالا من یک دستگاه با آبنبات چوبی یا به قول اینترنت با آبنبات چوبی دارم.

به روز رسانی تا حدودی غیر منتظره رسید. صادقانه بگویم، در ماه آوریل منتظر یک سیستم عامل جدید برای تلفن (Asus ZenFone 5) بودم - حداقل وعده داده شده بود. هیچ کس در مورد تبلت چیزی نگفته است، و اینجا به شما بستگی دارد، آن را دریافت کنید و برای آن امضا کنید.

این در واقع من را دلسرد کرد (البته به روشی خوب) همچنین به این دلیل که تبلت را در دسامبر خریداری کردم و نسخه 4.3 داشت. یعنی این دومین به روز رسانی مهم سیستم عامل است (در واقع به روز رسانی های بیشتری وجود داشت اما تعداد نسخه های اندرویدتغییر نکرده است). سازنده قبلی دستگاه‌های من - سامسونگ - نمی‌توانست به چنین میزان آتشی ببالد، اگرچه آنها همچنین سیستم عامل را دو بار به روز کردند: از Android 3.2 به Android 4.1.2 (از طریق 4.0.1). اما برای این نسخه های جدید باید خیلی بیشتر منتظر می ماندیم.

خوب، زنده باد شگفتی ها! با دریافت اعلان در مورد انتشار نسخه جدید سیستم عامل، بلافاصله آن را که بیش از 700 متر است دانلود کردم و به روز رسانی را راه اندازی کردم. از آنجایی که من نه از طریق، بلکه از طریق تلفن همراه دانلود کردم، همه چیز کمی بیشتر طول کشید: از شروع بارگیری تا تکمیل به روز رسانی، حدود یک ساعت گذشت. خود به روز رسانی حدود بیست دقیقه طول کشید، اما احتمالاً ممکن است بیشتر طول بکشد - زیرا پس از نصب سیستم عامل، روند به روز رسانی به شرح زیر است. برنامه های نصب شده. شمارنده من تا 205 شمارش کرد. اما اکنون، این روند به پایان رسیده است و زمان آن است که ببینیم چه چیزی تغییر کرده است.

اولین چیزی که توجه من را جلب کرد گرافیک پیچیده تر هنگام باز کردن قفل دستگاه بود. دومی دست در ناحیه اعلان است. یکی دو روز تحملش کردم به این امید که اتفاقا جایی چیزی مرتبط با آن ببینم. من آن را ندیدم. سپس به طور هدفمند شروع به جستجو کردم و توضیحی برای آن در 4pda پیدا کردم. مشخص می شود که اعلان ها به دو دسته مهم و نه چندان مهم تقسیم می شوند و می توان مشخص کرد که می خواهید کدام نوتیفیکیشن را دریافت کنید. اگر گزینه را تنظیم کنید همیشه اطلاع رسانی کنید ، سپس در صورت گزینه، دست ناپدید می شود فقط هشدارهای مهم ، سپس دست ظاهر می شود. راستش چند بار دستم را برداشتم اما به دلایلی همیشه برمی گردد. چرا؟ من هنوز نمی دانم.

در واقع، در اینجا روش "حذف" این دست است:

روش ارائه شده در بالا به هیچ وجه پیچیده نیست. اما می‌توانید سریع‌تر و آسان‌تر به نتیجه برسید: یکی از دو دکمه کنترل صدا را فشار دهید - پنجره‌ای روی صفحه ظاهر می‌شود که به شما امکان می‌دهد سطح صدا را برای اجزای مختلف سیستم تغییر دهید، و همچنین توجه، کنترل حالت های هشدار . درست است، به دلایلی، این همان است حالت های هشدار همیشه به این سرعت نمایش داده نمی شوند. من هنوز الگویی پیدا نکرده ام، اما، صادقانه بگویم، واقعاً دنبال آن نبودم.

انتخاب کارت حافظه خارجی
و مورد دلخواه را از منو انتخاب کنید
احتمالاً فعلاً همین است.

بسیاری از صاحبان خوشحال دستگاه های دارای 4.4.2 "در هیئت مدیره" احتمالاً قبلاً با مشکل عدم توانایی اکثر برنامه های نصب شده روی دستگاه برای نوشتن داده ها در یک کارت فلش روبرو شده اند. به گفته گوگل، ساخته شده است تا سیستم عامل اندروید 4.4.2 کیت کت را به سیستمی امن تر تبدیل کند.

محدودیت های نوشتن روی فلش کارت عمدتاً برای برنامه های نصب شده از منابع شخص ثالث اعمال می شود. و مهمتر از همه، Android 4.4.2 KitKat اصلاح فایل هایی را که مستقیماً به برنامه هایی که می خواهند این اصلاح را انجام دهند مرتبط نیستند، ممنوع می کند. از این رو امکان ضبط روی کارت SD وجود ندارد.

در عمل، این محدودیت به معنای واقعی کلمه به این معناست: از پیام رسان های استاندارد، ویرایشگرهای عکس، مدیر فایل استفاده کنید! زیرا اگر توسعه‌دهنده نرم‌افزار شما نتواند به‌موقع پاسخ دهد و به‌روزرسانی به ویرایشگر عکس شما اضافه کند، برای مثال، تمام عکس‌های ویرایش‌شده شما «زنده» خواهند بود در حالی که ویرایشگر عکس در حال اجرا است - دیگر نمی‌توانید بنویسید. عکس های ویرایش شده شما به کارت!

کاربران پیشرفته‌تری که دائماً داده‌ها را از یک درایو فلش به رایانه کپی می‌کنند ممکن است با مشکل زیر روبرو شوند: رایانه شما را شناسایی می‌کند، فایل‌ها را می‌بیند، اما نمی‌تواند کاری با آنها انجام دهد - دسترسی ممنوع است! این مشکل را می توان با نصب برنامه ای بر روی دستگاه خود که امکان دسترسی به آن را می دهد، اصلاح کرد.اما این برنامه فقط روی دستگاه های ROOT کار می کند.

SDFix: KitKat Writable به سادگی کار می کند: پس از نصب و راه اندازی برنامه، بر روی Continue کلیک کرده، با شرایط موافقت می کنید و دوباره روی Continue کلیک می کنید. اگر برنامه Superuser از قبل بر روی دستگاه شما نصب شده است، باید به SDFix اجازه دسترسی به دایرکتوری های ROOT موجود در آن را بدهید.


SDFix KitKat Writable MicroSD در حین کار فایل /system/etc/permissions/platform.xml را تغییر می دهد که در آن مجوز نوشتن و اصلاح فایل ها توسط برنامه هایی که دارای مجوز WRITE_EXTERNAL_STORAGE هستند را می دهد. می توانید فایل MicroSD قابل نوشتن SDFix: KitKat اصلاح شده اصلی را با نام 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 را پیدا کنید و خطوط کد زیر را در این بخش‌ها اضافه کنید:

پس از آن، فایل اصلاح شده را در ویرایشگر ذخیره کنید.

پس از راه اندازی مجدد دستگاه، تمام مشکلات ناخوشایند مربوط به عدم توانایی در نوشتن و تغییر فایل ها بر روی فلش کارت حل خواهد شد.

هنگام توسعه یک برنامه رقابتی، با مشکل ذخیره سازی پایگاه داده مواجه شدم. مشکل این بود که چگونه کارت حافظه خارجی را شناسایی کنم. در کل جستجو در اینترنت جواب دقیقی نداد. بنابراین، با ترکیب تمام نتایج یافت شده، کلاس خود را جمع کردم. اگر کسی علاقه مند است، به زیر برش نگاه کند.

بنابراین، اجازه دهید با تئوری شروع کنیم.

واژه شناسی

گوگل به ما می گوید که مفاهیم زیر وجود دارد:
  1. درونی؛ داخلی ( درونی؛ داخلی) حافظه بخشی از کارت حافظه است که در گوشی تعبیه شده است. هنگامی که به طور پیش فرض استفاده می شود، پوشه برنامه از دسترسی سایر برنامه ها محافظت می شود (با استفاده از حافظه داخلی).
  2. خارجی ( خارجی) حافظه "ذخیره خارجی" کلی است، یعنی. این می تواند بخشی از حافظه داخلی یا دستگاهی باشد که می تواند حذف شود. معمولاً این بخشی از حافظه داخلی است، آخرین باری که دیدم دستگاهی در حال برداشتن است در اندروید 2.2 بود که حافظه داخلی آن حدود 2 گیگابایت بود و حافظه متصل خارجی شد (استفاده از حافظه خارجی).
  3. حذف شده ( قابل جابجایی) حافظه - تمام فضای ذخیره سازی که می تواند بدون مداخلات "جراحی" از دستگاه حذف شود.

قبل از KitKat 4.4، API عملکردی برای بازیابی مسیرها ارائه نمی کرد. حافظه خارجی. با شروع این نسخه (API 19)، تابع فایل انتزاعی عمومی ظاهر شد getExternalFilesDirs(نوع رشته)، که آرایه ای از رشته ها را با مسیرهایی به حافظه داخلی و خارجی برمی گرداند. اما در مورد کارت SD ما که در اسلات قرار داده شده است، چطور؟ ما باز هم نمی توانیم مسیر آن را پیدا کنیم.

نتایج جستجو

برای پاسخ به سوال به گوگل دانا مراجعه کردم. اما او هم پاسخ روشنی به من نداد. بسیاری از گزینه‌های تعریف، از استفاده از توابع استاندارد که منجر به حافظه خارجی می‌شوند، اما هیچ ارتباطی با حذف دستگاه‌های ذخیره‌سازی ندارند تا پردازش قوانین نصب دستگاه (اندروید روی هسته لینوکس اجرا می‌شود) در نظر گرفته شد. در موارد دوم، از مسیرهای "سیم سخت" به پوشه با دستگاه های نصب شده استفاده شد (این دایرکتوری در نسخه های مختلف متفاوت است). فراموش نکنید که قوانین نصب از نسخه ای به نسخه دیگر تغییر می کند.

در نهایت، تصمیم گرفتم تمام دانشی را که به دست آورده بودم ترکیب کنم و کلاس خودم را نوشتم، که می تواند مسیرها را به دستگاه های خارجی و حذف شده بازگرداند.

توضیحات کد

یک کلاس ایجاد شده است MountDevice، که شامل مسیر دستگاه، نوع دستگاه و هش است.
دو نوع دستگاه وجود دارد (من به حافظه داخلی دست نزدم، زیرا از طریق API سیستم قابل دسترسی است).

فهرست عمومی MountDeviceType (EXTERNAL_SD_CARD، REMOVABLE_SD_CARD)
و کلاس ایجاد شد StorageHelper، که کارت های حافظه موجود را جستجو می کند.

کلاس StorageHelper دو روش جستجو را پیاده سازی می کند - از طریق محیط سیستم ( محیط) و با استفاده از ابزارهای لینوکس کوه، آ دقیق تر از نتیجهاجرای آن

روش اول - محیط زیست
هنگام کار با محیط، از تابع استاندارد getExternalStorageDirectory() برای به دست آوردن اطلاعات در مورد حافظه خارجی استفاده می کنم. برای دریافت اطلاعات در مورد حافظه در حال حذف، از متغیر محیطی استفاده می کنم. SECONDARY_STORAGE".

هیچ به‌روزرسانی رسمی اندروید (برای منطقه ما) در وب‌سایت‌های رسمی پیدا نکردم.

من اطلاعاتی را در انجمن‌ها پیدا کردم که گوگل در ژانویه 2015 نسخه سیستم‌افزاری را برای روسیه منتشر کرد. اما به کندی روی دستگاه‌های مشتری پیاده‌سازی می‌شود.

به این ترتیب، می توانم صبر کنم تا دستگاه من پیامی مبنی بر وجود به روز رسانی نرم افزار دریافت کند. بعد از آن می توانم اندروید را آپدیت کنم.