Как на Android 13 (и новее) установить PaintCAD Mobile и другие APK для старых версий Android

Ответить
Аватара пользователя
blackstrip
Админ
Сообщения: 1349
Зарегистрирован: Ср янв 02, 2008 1:42 pm
Откуда: Подольск
Контактная информация:

Как на Android 13 (и новее) установить PaintCAD Mobile и другие APK для старых версий Android

Сообщение blackstrip » Пт авг 07, 2026 12:15 am

После тренировок установки старых apk на Samsung Galaxy S23 интереснее всего показалось ставить старые apk на Xiaomi Poco X7 (потому что на самсунге меньше вылезало всяких окон и предупреждений). Поэтому этот гайд отснят на Poco X7.
Если скачать PaintCAD.apk (или любое другое приложение, которое работает на андроидах старых версий) и попытаться установить его на новый телефон с современным андроидом (13 и выше), то телефон увидит что PaintCAD работает аж на андроиде 2.2 и выше - и испугается что на нем работать не будет такое приложение, работающее на древних андроидах.

Вот так это будет выглядеть:

1) лежит свежескачанный apk-файл:

Изображение

2) тыкаем на apk-файл - вылезает стандартное окно про установку приложения:

Изображение

3) после нажатия на "Установить" вылезет предупреждение что все плохо - приложение старое какое-то. Надо нажать внизу "Подробнее":

Изображение

4) окно развернется - там про угрозу. И маленькая строчка "Все равно установить" - жмем на эту строчку - на самом деле это кнопка!

Изображение

5) после этого андроид проверит для насколько старых андроидов это приложение - и откажется его устанавливать:

Изображение

"Приложение не установлено, так как оно несовместимо с вашим телефоном" ?

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

Но есть способ это обойти и спокойно ставить на современный смартфон любые старые игры/приложения. Для этого нужно:

1) иметь кабель, соединяющий компьютер и ваш смартфон, не просто зарядный, а передающий данные кабель, по которому обычно можно скинуть со смартфона на комп снятые фотки или еще что-то.

2) скачать и распаковать на компьютер Platform Tools для Android: https://developer.android.com/tools/rel ... ools?hl=ru

Там в середине текста есть ссылки на скачивание чисто маленькой легковесной platform tools, без полного пакета SDK для разработчиков:

Изображение

Качаем для Windows по ссылке "Скачать SDK Platform-Tools для Windows". Там архив в виде zip-файла. Внутри папка platform-tools. Внутри нее десяток файлов включая вот этот adb.exe:

Изображение

Это Android Debug Bridge - "андроидовский отладочный мост" - программа, позволяющая, в частности, по кабелю ставить apk с компьютера внутрь телефона.

Распаковываем файлы из папки platform tools, например, в c:\pt\. Так чтобы по адресу c:\pt\adb.exe можно было запустить этот adb.exe.

3) скачать apk файл нужной программы и положить в эту же папку c:\pt, чтоб не указывать в командах длинные пути, а только имена файлов. Я скачал PaintCAD Mobile и положил как paintcad.apk в папку c:\pt.
Кстати, у кого стоит на компьютере андроидовский sdk (software development kit, т.е. набор софта для разработки android-приложений) - там тоже есть platform tools. Вот мой старенький adb.exe валяется внутри sdk. Если его запустить - то он покажет все свои кучу команд, которыми им можно управлять:

Изображение
Запускаем adb и смотрим что он работает

4) Теперь надо запустить командную строку cmd, похожую на дос - это нажать Windows+R, ввести cmd и нажать Enter. Откроется терминал как на скрине выше.
Если windows у вас старая и cmd в ней нет, то попробуйте запустить command, он тоже выполняет все нижеуказанные команды, но работает с bat-файлами
5) Внутри cmd ввести команду смены текущего диска на c:, на всякий случай, и нажать Enter:
c:
6) Дальше перейти в папку, где лежит adb.exe (тоже ввести то, что написано, и нажать Enter. cd - это команда change directory, по-русски "перейти в указанную папку"):
cd c:\pt
7) Чтобы проверить что все ок и мы в той папке, в какой нужно - запустить adb и посмотреть что он работает (ввести adb и нажать Enter):
adb
В терминале появится длинная колбаса из всех команд adb.exe - у меня вылезла вот такая:
c:\pt>adb
Android Debug Bridge version 1.0.41
Version 37.0.0-14910828
Installed as c:\pt\adb.exe
Running on Windows 10.0.26200

global options:
-a listen on all network interfaces, not just localhost
-d use USB device (error if multiple devices connected)
-e use TCP/IP device (error if multiple TCP/IP devices available)
-s SERIAL use device with given serial (overrides $ANDROID_SERIAL)
-t ID use device with given transport id
-H name of adb server host [default=localhost]
-P port of adb server [default=5037]
-L SOCKET listen on given socket for adb server [default=tcp:localhost:5037]
--one-device SERIAL|USB only allowed with 'start-server' or 'server nodaemon', server will only connect to one USB device, specified by a serial number or USB device address.
--exit-on-write-error exit if stdout is closed

general commands:
devices [-l] list connected devices (-l for long output)
help show this help message
version show version num

networking:
connect HOST[:PORT] connect to a device via TCP/IP [default port=5555]
disconnect [HOST[:PORT]]
disconnect from given TCP/IP device [default port=5555], or all
pair HOST[:PORT] [PAIRING CODE]
pair with a device for secure TCP/IP communication
forward --list list all forward socket connections
forward [--no-rebind] LOCAL REMOTE
forward socket connection using:
tcp:<port> (<local> may be "tcp:0" to pick any open port)
localabstract:<unix domain socket name>
localreserved:<unix domain socket name>
localfilesystem:<unix domain socket name>
dev:<character device name>
dev-raw:<character device name> (open device in raw mode)
jdwp:<process pid> (remote only)
vsock:<CID>:<port> (remote only)
acceptfd:<fd> (listen only)
forward --remove LOCAL remove specific forward socket connection
forward --remove-all remove all forward socket connections
reverse --list list all reverse socket connections from device
reverse [--no-rebind] REMOTE LOCAL
reverse socket connection using:
tcp:<port> (<remote> may be "tcp:0" to pick any open port)
localabstract:<unix domain socket name>
localreserved:<unix domain socket name>
localfilesystem:<unix domain socket name>
reverse --remove REMOTE remove specific reverse socket connection
reverse --remove-all remove all reverse socket connections from device
mdns check check if mdns discovery is available
mdns services list all discovered services

file transfer:
push [--sync] [-z ALGORITHM] [-Z] LOCAL... REMOTE
copy local files/directories to device
-n: dry run: push files to device without storing to the filesystem
-q: suppress progress messages
-Z: disable compression
-z: enable compression with a specified algorithm (any/none/brotli/lz4/zstd)
--sync: only push files that have different timestamps on the host than the device
pull [-a] [-z ALGORITHM] [-Z] REMOTE... LOCAL
copy files/dirs from device
-a: preserve file timestamp and mode
-q: suppress progress messages
-Z: disable compression
-z: enable compression with a specified algorithm (any/none/brotli/lz4/zstd)
sync [-l] [-z ALGORITHM] [-Z] [all|data|odm|oem|product|system|system_ext|vendor]
sync a local build from $ANDROID_PRODUCT_OUT to the device (default all)
-l: list files that would be copied, but don't copy them
-n: dry run: push files to device without storing to the filesystem
-q: suppress progress messages
-Z: disable compression
-z: enable compression with a specified algorithm (any/none/brotli/lz4/zstd)

shell:
shell [-e ESCAPE] [-n] [-Tt] [-x] [COMMAND...]
run remote shell command (interactive shell if no command given)
-e: choose escape character, or "none"; default '~'
-n: don't read from stdin
-T: disable pty allocation
-t: allocate a pty if on a tty (-tt: force pty allocation)
-x: disable remote exit codes and stdout/stderr separation
emu COMMAND run emulator console command

app installation (see also `adb shell cmd package help`):
install [-lrtsdg] [--instant] PACKAGE
push a single package to the device and install it
install-multiple [-lrtsdpg] [--instant] PACKAGE...
push multiple APKs to the device for a single package and install them
install-multi-package [-lrtsdpg] [--instant] PACKAGE...
push one or more packages to the device and install them atomically
-r: replace existing application
-t: allow test packages
-d: allow version code downgrade (debuggable packages only)
-p: partial application install (install-multiple only)
-g: grant all runtime permissions
--abi ABI: override platform's default ABI
--instant: cause the app to be installed as an ephemeral install app
--no-streaming: always push APK to device and invoke Package Manager as separate steps
--streaming: force streaming APK directly into Package Manager
--fastdeploy: use fast deploy
--no-fastdeploy: prevent use of fast deploy
--force-agent: force update of deployment agent when using fast deploy
--date-check-agent: update deployment agent when local version is newer and using fast deploy
--version-check-agent: update deployment agent when local version has different version code and using fast deploy
(See also `adb shell pm help` for more options.)
uninstall [-k] PACKAGE
remove this app package from the device
'-k': keep the data and cache directories

debugging:
bugreport [PATH]
write bugreport to given PATH [default=bugreport.zip];
if PATH is a directory, the bug report is saved in that directory.
devices that don't support zipped bug reports output to stdout.
jdwp list pids of processes hosting a JDWP transport
logcat show device log (logcat --help for more)

security:
disable-verity disable dm-verity checking on userdebug builds
enable-verity re-enable dm-verity checking on userdebug builds
keygen FILE
generate adb public/private key; private key stored in FILE,

scripting:
wait-for[-TRANSPORT]-STATE...
wait for device to be in a given state
STATE: device, recovery, rescue, sideload, bootloader, or disconnect
TRANSPORT: usb, local, or any [default=any]
get-state print offline | bootloader | device
get-serialno print <serial-number>
get-devpath print <device-path>
remount [-R]
remount partitions read-write. if a reboot is required, -R will
will automatically reboot the device.
reboot [bootloader|recovery|sideload|sideload-auto-reboot]
reboot the device; defaults to booting system image but
supports bootloader and recovery too. sideload reboots
into recovery and automatically starts sideload mode,
sideload-auto-reboot is the same but reboots after sideloading.
sideload OTAPACKAGE sideload the given full OTA package
root restart adbd with root permissions
unroot restart adbd without root permissions
usb restart adbd listening on USB
tcpip PORT restart adbd listening on TCP on PORT

internal debugging:
start-server ensure that there is a server running
kill-server kill the server if it is running
reconnect kick connection from host side to force reconnect
reconnect device kick connection from device side to force reconnect
reconnect offline reset offline/unauthorized devices to force reconnect

usb:
attach attach a detached USB device
detach detach from a USB device to allow use by other processes
environment variables:
$ADB_TRACE
comma/space separated list of debug info to log:
all,adb,sockets,packets,rwx,usb,sync,sysdeps,transport,jdwp,services,auth,fdevent,shell,incremental
$ADB_VENDOR_KEYS colon-separated list of keys (files or directories)
$ANDROID_SERIAL serial number to connect to (see -s)
$ANDROID_LOG_TAGS tags to be used by logcat (see logcat --help)
$ADB_LOCAL_TRANSPORT_MAX_PORT max emulator scan port (default 5585, 16 emus)
$ADB_MDNS_AUTO_CONNECT comma-separated list of mdns services to allow auto-connect (default adb-tls-connect)

Online documentation: https://android.googlesource.com/platfo ... r/adb.1.md
Включаем на смартфоне разрешение на подключение к компу через USB для установки APK по кабелю

8) На смартфоне залезаем в настройки, в информацию о телефоне и андроиде. И много раз жмем информацию о версии прошивки (раз десять). Когда нажмем первые 5 раз - внизу появится надпись "Еще 5 раз и вы станете разработчиком", "Еще 4 раза и вы станете разработчиком" и т.д. до последнего нажатия:

Изображение

9) Теперь в расширенных настройках или просто в меню настроек внизу (зависит от модели смартфона и андроида) появилось меню "Для разработчиков". Заходим в него. На Poco X7 это вот тут:

Изображение

10) Проматываем меню для разработчиков вниз пока не увидим пункт "Отладка по USB" - включаем его:

Изображение

11) Появляется страшное предупреждение. Ставим внизу галочку и ждем 10 секунд (до этого кнопку ОК нажать не получится):

Изображение

12) Теперь кнопка ОК активна - нажимаем ее:

Изображение

Запускаем ADB и проверяем что он видит подключенный к компу по кабелю смартфон

13) На компьютере запускаем adb в режиме сервера - вводим в cmd команду adb start-server, жмем Enter и видим вот это:
c:\pt>adb start-server
* daemon not running; starting now at tcp:5037
* daemon started successfully
13) Подключаем смартфон к кабелю, а кабель к компьютеру. Проверим что комп видит ваш подключенный смартфон - вводим в cmd команду adb devices и видим вот это (код из страшных букв и цифр - разный для разных смартфонов, у меня для Xiaomi Poco X7 вот такой появился):
c:\pt>adb devices
List of devices attached
7XIZ59VK9H4LL7IJ unauthorized
Комп видит смартфон, но смартфон unauthorized - не авторизован.

14) Чтобы его авторизовать - смотрим на экран смартфона. На смартфоне появляется запрос на соединение с компом - ставим галку что доверять компу и жмем ОК:

Изображение

15) Теперь еще раз на компе в cmd введем adb devices чтобы проверить удачно ли смартфон авторизовался - и видим вот это:
c:\pt>adb devices
List of devices attached
7XIZ59VK9H4LL7IJ device
Слово device - означает что это подключено к компу "устройство", а не просто неавторизованный непонятно кто.

16) Теперь еще разрешаем установку APK-приложений через кабель - включаем на смартфоне эту галку. Оказалось, что если в телефоне нет сим-карты, то этот пункт включить не получится. Вот это защита) Ну если симка есть - то пункт включится:

Изображение

Устанавливаем paintcad.apk на смартфон по кабелю с обходом проверки на старость

17) На компьютере в cmd вводим команду установки APK-файла на смартфон через кабель с обходом проверки на старость APK-файла флажком --bypass-low-target-sdk-block (можно эту длинную команду скопировать по Ctrl+C и вставить в cmd по Ctrl+V чтобы не вводить, в Windows 11 вставилось на ура):
adb install --bypass-low-target-sdk-block paintcad.apk
Если забыть разрешить установку APK по USB-кабелю (в 16-м пункте выше), то adb будет ругаться:
Performing Streamed Install
adb.exe: failed to install paintcad.apk: Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]
А если не забыть - то apk-приложение закачается по кабелю в смартфон и установится, а в cmd на компе появится надпись Success (что значит "Успех").

Теперь в ваш смартфон установлено приложение, предназначенное для старых андроидов, и которое "несовместимо с вашим телефоном" +) И оно отлично работает. Значок появится либо на рабочем столе, либо в меню приложений (зависит от версии андроида и интерфейса смартфона).

Так можно ставить любые старые APK.

Устанавливаем любые другие APK на смартфон по кабелю с обходом проверки на старость

Любые другие apk-файлы ставить еще быстрее, т.к. уже все разрешения получены после проделанного выше:

1) кидаем нужный имя_файла.apk в папку c:\pt

2) запускаем cmd по Windows+R, вводим cmd жмем enter. Дальше в cmd вводим команды по очереди
c:
cd c:\pt
adb start-server
adb devices
adb install --bypass-low-target-sdk-block имя_файла.apk
Автоматизация для тех, кому лень вводить команды вручную

Для тех, кто любит bat-файлы или cmd-файлы, вообще можно записать эти команды в 2 файла:

1) Подключаем телефон к компу и запускаем первый cmd-файл или bat-файл, который запускает adb и показывает что видит подключенный к компу смартфон. Текст первого cmd-файла:
c:
cd c:\pt
adb start-server
adb devices
pause
2) Второй cmd-файл или bat-файл чисто на установку выбранного apk-файла на подключенный смартфон. Его текст:
c:
cd c:\pt
adb install --bypass-low-target-sdk-block %1
pause
Создайте для второго cmd-файла или bat-файла ярлык и вырежьте этот ярлык по Ctrl+X.

Затем нажмите Windows+R, введите shell:sendto и нажмите Enter.

В открывшейся папке нажмите Ctrl+V и вставьте ярлык.

Теперь жмите по любому APK правой кнопкой мыши, выбирайте "Отправить" и в вылезшем меню жмите на ваш ярлык на второй cmd-файл или bat-файл, и этот APK сам поедет устанавливаться на ваш смартфон по кабелю.

p.s. если путь к apk будет с длинными именами папок и с пробелами, то можно еще попробовать заключить %1 в кавычки, тогда будет adb install --bypass-low-target-sdk-block "%1" (но это надо проверить, может adb и без кавычек соображает что всё в командной строке что после ключей - это путь и имя файла, смотря как adb написан)

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей