Удаление предустановленного программного обеспечения в Android без получения прав суперпользователя

Очень часто можно услышать о том, что для удаления предустановленного программного обеспечения на устройствах под управлением Android необходимо получения прав суперпользователя. Но получение прав суперпользователя требует выполнения действий, из-за которых производитель устройства может отказать в гарантии, а в некоторых случаях наличие этих прав может быть просто вредным. Так, например, Сбербанк Онлайн существенно ограничивает возможности при запуске на такой системе. Как же поступить, если производитель напичкал устройство большим количеством ненужного ПО, root-овать устройство не хочется, а почистить - хочется?

Если на Вашем устройстве есть возможность войти в DFU Mode, то решение этой проблемы на столько очевидно, что возникает вопрос - а зачем вообще root-овать устройство и подвергать себя лишнему риску?

Так, например, для перевода планшета MegaFon Login 3 в DFU Mode необходимо:

Выключите планшет. Нажав и одновременно удерживая кнопки "Громкость +" и "Громкость -" подключить планшет к компьютеру. Планшет дважды провибрирует, моргнет, загорится зеленый светодиод, экран "черный".

После подключения устройство видно как USB носитель, и после этого обычно следуют слова, про применение какой-то уличной магии для выполнения каких либо действий в Windows. А что будет, если в таком режиме подключить планшет к компьютеру под управлением какой нибудь более подходящей операционной системы, например, Debian?

То на полученном диске видно обычную GPT таблицу разделов:

root@debian:/# partx -s /dev/sda
NR   START     END SECTORS SIZE NAME     UUID
 1  131072  262143  131072  64M modem    20e95fc4-6bc2-e5db-09fb-c4fae90e776a
 2  262144  263167    1024 512K sbl1     8ab70858-e39a-802b-ce06-406d863b16cc
 3  263168  264191    1024 512K sbl1bak  0fd9e06f-9b00-03dd-79e3-a7a0fc325799
 4  264192  264447     256 128K sdi      a7b4c2ba-d71e-0f5c-3068-b77fe9d3208b
 5  393216  393279      64  32K DDR      67869330-6d4d-eb32-aebb-977dbc9411f1
 6  524288  525311    1024 512K aboot    6d99b942-3472-0136-297f-831f6fd363ef
 7  525312  526335    1024 512K abootbak c91e2b9e-7e08-a391-f16a-26da3b64b1cc
 8  526336  527335    1000 500K rpm      af5b0b73-7ef0-1754-a6b4-67c847a4b517
 9  527336  528335    1000 500K rpmbak   358eca71-a040-173f-ab8b-7a128af9355d
10  655360  688127   32768  16M boot     23d201e7-9f67-059e-56d0-6a745fb8552c
11  786432  787431    1000 500K tz       9aac374b-544d-c1dc-78fb-1041ed5a445d
12  787432  788431    1000 500K tzbak    08fbf3c8-c2cd-cd0d-b05d-5f3d9595f7ac
13  788432  790479    2048   1M pad      a998b380-3b04-f182-4dda-966af979eea1
14  790480  793551    3072 1.5M modemst1 0b4decbe-92a6-65a0-5342-d73cef7b91f0
15  793552  796623    3072 1.5M modemst2 992955c8-110f-c520-263c-ba241956f681
16  917504  950271   32768  16M recovery b8849d34-9423-8358-e46d-08e31fa42155
17 1048576 1050623    2048   1M misc     76bb3d58-584f-bc5f-541c-8e58ee5cfc85
18 1179648 1182719    3072 1.5M fsg      491be353-28ff-cf1e-9398-720de8cbc3e5
19 1310720 1310721       2   1K fsc      fc71ac3c-faa0-42f1-4322-9c6399cd8ffb
20 1310722 1310737      16   8K ssd      cb92cc4e-f1ba-3c47-5ee0-752a22baa3ee
21 1310738 1331217   20480  10M splash   a4ac4fd2-afa5-e7c9-1a8c-fed125271068
22 1441792 3538943 2097152   1G system   269be991-8126-8b2f-8bb1-19f329ab2ade
23 3538944 3604479   65536  32M persist  50fe81b3-3819-10c2-187c-53d5ee8ac181
24 3604480 3809279  204800 100M cache    3691812d-2808-c823-8766-ad7c37de3959
25 3809280 7733214 3923935 1.9G userdata 6d381398-653a-4923-60d2-828239f35070

А если смонтировать монтирующийся в /system 22-й раздел с обычной файловой системой EXT4:

root@debian:/# mount /dev/sda22 /mnt

То можно увидеть доступное на запись святая-святых Android:

root@debian:/# ls /mnt
app         build.prop.bakforspec  framework   media     usr
bin         etc                    lib         priv-app  vendor
build.prop  fonts                  lost+found  tts       xbin

И, например, удалить неиспользуемые приложения:

root@debian:/mnt# rm \
priv-app/appstore-android.apk \
priv-app/MediaProvider.odex \
app/Keep.apk \
app/Books.apk \
app/CloudPrint.apk \
app/com.applicaster.smotriplus-1.apk \
app/Drive.apk \
app/GenieWidget.apk \
app/Hangouts.apk \
app/Magazines.apk \
app/MegaDisk_v1.1.58.1478_30.04.2014.apk \
app/MegaFonnavigation.apk \
app/MegafonVisa-release1.apk \
app/mobileyandex-all-release.apk \
app/Music2.apk \
app/PlayGames.apk \
app/PlusOne.apk \
app/RBT_megalabs_2.4.signed_3.apk \
app/talkback.apk \
app/touchin.trava-1.apk \
app/Translate.apk \
app/Videos.apk \
app/yandexbrowser-android.apk \
media/apks/Catalog.apk \
media/apks/CleanMaster-2010001593_0_1403606992.apk \
media/apks/com.megalabs.megafon.tv-1.apk \
media/apks/KISA_Megafon_11.3.24.61.apk \
media/apks/com.google.zxing.client.android.apk \
app/CalendarGoogle.apk \
app/CalendarWidget.apk \
app/CalendarLocalAccount.apk \
app/CalendarWidget.odex \
app/CalendarLocalAccount.odex \
app/Email.apk \
app/Email.odex

В зависимости от версии прошивки имена файлов могут немного отличаться, но найти отличия не составляет труда. Все эти файлы можно удалить без последствий для работы и с сохранением работоспособности обновлений "по-воздуху".

Перед отключением планшета будет полезным размонтировать файловую систему:

root@debian:/# umount /mnt

После чего можно возвращать планшет в нормальную работу. Если до проведения чистки планшет уже обновил какие-то из удалённых приложений, то будет достаточно "удалить обновления", после чего эти приложения окончательно исчезнут из списка.

И всё это без установки какого-то непонятного ПО на компьютер и не самой элементарной процедуры получения прав суперпользователя на планшете.