- Что google считает internal storage
- То, что пользователи считают internal storage
- Beaglebone black — usb device gadget — ethernet, serial, mass storage
- Cloud file backup and storage — dropbox
- Configuration
- Configuring the ethernet interface on the target
- Contacts and more
- Creating and mounting the file system
- Device tree bindings and customization
- G_cdc — composite ethernet serial gadget
- G_hid — human interface device (hid) gadget
- G_ncm — usb cdc ncm subclass ethernet gadget
- G_serial — serial device gadget
- G_webcam — composite usb audio and video class gadget
- Installation
- Internal storage
- Iomux configuration
- Opening a console shell via usb serial
- Platform driver mapping
- Settings and apps
- Unloading the ethernet gadget
- Unloading the mass-storage gadget
- Unloading the serial gadget
- Usb file storage gadget
- Вопросы без ответов. синхронизация контактов. часть 2. — android.
- Где хранится internal storage … иногда
- Где хранится internal storage … остальное время
- Должен ли я делать файлы во внутреннем хранилище world-readable или world-writeable?
- Исследуем internal storage
- Как запретить пользователям rooted устройств доступ к моим файлам во внутреннем хранилище?
- Ограничения внутреннего хранилища
- Usb device enabling and definition
- Definition of the usb device
Что google считает internal storage
Увы, то, что видят пользователи это не то же самое, что Android SDK считает «внутренним хранилищем», что приводит к некоторой путанице. Если вы читали документацию на Android по внутреннему хранилищу, то это описание … как минимум туманно (прим. текст изменился со времени написания статьи):
Вы можете сохранять файлы непосредственно во внутренней памяти устройства. По умолчанию файлы, сохраненные во внутреннем хранилище, являются приватными для вашего приложения, и другие приложения не могут получить к ним доступ (также как и пользователь). Когда пользователь удаляет приложение, эти файлы удаляются.
По правде говоря, Android SDK определяет «внутреннее хранилище» как особый каталог, уникальный для вашего приложения, где ваше приложение может размещать файлы. Как было предложено в документации, эти файлы по умолчанию предназначены для чтения и записи для вашего приложения и запрещены для любого другого приложения (исключение: пользователи, работающие с файловыми менеджерами с привилегиями суперпользователя на rooted устройствах могут получить доступ ко всему).
В Context есть несколько базовых методов, которые предоставляют вам доступ к внутреннему хранилищу, в том числе:
Другие методы будут опираться на них, такие как openOrCreateDatabase(). Другие классы также будут полагаться на них, такие как SQLiteOpenHelper и SharedPreferences.
То, что пользователи считают internal storage
В зависимости от модели вашего устройства пользователи в конечном итоге придут в «Настройки» —> «Хранилище на этом устройстве» (Settings —> Storage on their device) или в эквивалентном месте, и могут видеть экран, который описывает «Внутреннее хранилище».
Пользователь думает, что вся встроенная флешка — это «внутреннее хранилище» (Internal Storage). К счастью, Google начал менять этот термин с Android 8.0, перейдя к «general storage» вместо «internal storage».
Тем не менее, пользователи могут по-прежнему видеть «внутреннее хранилище» в таких местах, как окно проводника в Windows, когда их устройство подключено через USB.
Beaglebone black — usb device gadget — ethernet, serial, mass storage
Как вы уже заметили из заголовка сегодня мы будем использовать USB Device свойства МП AM3359. Вообще на самом деле оба порта USB могут работать в режиме OTG, но для упрощения схемотехники один из них сделан так чтобы работать в режиме Device, а второй в режиме Host. Если с режимом Host в ОС Linux всё более или менее понятно, то с режимом Device есть некоторые особенности.
Введение
Как уже я рассказывал в статье про загрузку МП AM3359, при подключении USB кабеля устройство эмулирует сетевую карту. Так вот существует возможность подобной эмуляции и для ОС Linux. Как отмечалось выше USB может работать в двух режимах:
в режиме Host драйвер USB ожидает подключения, и в соответствии с идентификатором подключённого устройства выбирает драйвер;
в режиме Device в зависимости от выбранного драйвера, USB блок определяется под соответствующим идентификатором и работает в определённом режиме приёма-передачи. Я не буду вдаваться глубоко в теорию, об этом вам расскажет оригинальный мануал на МП, а также вводная информация о протоколе, откуда вы можете подчерпнуть полезны ссылок на документацию. Вместо этого я лишь коротко опишу основные положения касательно практической части применения USB Device для платы BeagleBone Black.
Настройка ядра
Для того чтобы воспользоватся подобным функционалом его необходимо включить в ядре Linux. Поэтому перейдём к настройкам ядра:
# cd kernel/kernel; make -j9 ARCH=arm CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- menuconfig
После в появившемся меню необходимо активировать следующие пункты:
Symbol: USB_GADGET [=y]
Prompt: USB Gadget Support
Defined at drivers/usb/gadget/Kconfig:16
Depends on: USB_SUPPORT
Location:
-> Kernel configuration
-> Device Drivers
-> USB support (USB_SUPPORT [=y])
Для поддержки USB Gadget, без которого собственно у нас ничего не заработает.
Prompt: Driver Mode
Defined at drivers/usb/musb/Kconfig:68
Depends on: USB_SUPPORT && USB_MUSB_HDRC
Location:
-> Kernel configuration
-> Device Drivers
-> USB support (USB_SUPPORT [=y])
-> Inventra Highspeed Dual Role Controller (TI, ADI, …)
Для поддержки 2 режимного контроллера в ядре Linux.
Symbol: USB_G_MASS_STORAGE_CDC [=m]
Prompt: CDC ACM Mass Storage configuration
Defined at drivers/usb/gadget/Kconfig:814
Depends on: <choice> && BLOCK
Location:
-> Kernel configuration
-> Device Drivers
-> USB support (USB_SUPPORT [=y])
-> USB Gadget Support (USB_GADGET [=y])
-> USB Gadget Drivers (<choice> [=m])
-> USB Gadget Drivers (<choice> [=m])
Выбрать для поддержки CDC и Mass Storage профиля.
Symbol: USB_ETH [=m]
Prompt: Ethernet Gadget (with CDC Ethernet support)
Defined at drivers/usb/gadget/Kconfig:628
Depends on: <choice> && NET
Location:
-> Kernel configuration
-> Device Drivers
-> USB support (USB_SUPPORT [=y])
-> USB Gadget Support (USB_GADGET [=y])
-> USB Gadget Drivers (<choice> [=m])
А это для поддержки Ethernet соединения
Symbol: USB_G_SERIAL [=m]
Type : tristate
Prompt: Serial Gadget (with CDC ACM and CDC OBEX support)
Defined at drivers/usb/gadget/Kconfig:751
Depends on: <choice>
Location:
-> Device Drivers
-> USB support (USB_SUPPORT [=y])
-> USB Gadget Support (USB_GADGET [=y])
-> USB Gadget Drivers (<choice> [=m])
Selects: USB_LIBCOMPOSITE [=m]
Для поддержки последовательного порта
Также можно добавить и другие профили которые находятся в том же меню конфигурации.
После вышеуказанных настроек необходимо собрать ядро Linux и установить его в соответствии со статьей про установку ядра, а также не забыть установить модули ядра (это отмечалось в статье про установку базовой системы). Итак ядро готово к использованию USB Device режима, теперь можно рассмотреть всё это с практической части.
Модуль g_serial.ko
Модуль отвечающий за последовательный порт. Информация о модуле:
# modinfo g_serial
filename: /lib/modules/3.8.13-00715-g836d639/kernel/drivers/usb/gadget/g_serial.ko
license: GPL
author: David Brownell
author: Al Borchers
description: Gadget Serial v2.4
license: GPL
author: Felipe Balbi
srcversion: A7058FBDCF3A5E10C147597
depends: libcomposite
intree: Y
vermagic: 3.8.13-00715-g836d639 SMP mod_unload modversions ARMv7 thumb2 p2v8
parm: idVendor:USB Vendor ID (ushort)
parm: idProduct:USB Product ID (ushort)
parm: bcdDevice:USB Device version (BCD) (ushort)
parm: iSerialNumber:SerialNumber string (charp)
parm: iManufacturer:USB Manufacturer string (charp)
parm: iProduct:USB Product string (charp)
parm: use_acm:Use CDC ACM, default=yes (bool)
parm: use_obex:Use CDC OBEX, default=no (bool)
parm: n_ports:number of ports to create, default=1 (uint)
Модуль прост в использовании:
# modprobe g_serial
После подключения модуля в списке USB устройств ПК появится последовательный порт:
$ lsusb
…
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 011: ID 0525:a4a7 Netchip Technology, Inc. Linux-USB Serial Gadget (CDC ACM mode)
Bus 002 Device 005: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC
…
Также появится сообщение о его подключении в dmesg:
[ 8056.520011] usb 2-1.1: New USB device found, idVendor=0525, idProduct=a4a7
[ 8056.520014] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 8056.520017] usb 2-1.1: Product: Gadget Serial v2.4
[ 8056.520020] usb 2-1.1: Manufacturer: Linux 3.8.13-00715-g836d639 with musb-hdrc
[ 8056.520211] usb 2-1.1: usb_probe_device
[ 8056.520215] usb 2-1.1: configuration #2 chosen from 1 choice
[ 8056.520539] usb 2-1.1: adding 2-1.1:2.0 (config #2, interface 0)
[ 8056.520703] cdc_acm 2-1.1:2.0: usb_probe_interface
[ 8056.520709] cdc_acm 2-1.1:2.0: usb_probe_interface — got id
[ 8056.520713] cdc_acm 2-1.1:2.0: This device cannot do calls on its own. It is not a modem.
[ 8056.520761] cdc_acm 2-1.1:2.0: ttyACM0: USB ACM device
[ 8056.521129] usb 2-1.1: adding 2-1.1:2.1 (config #2, interface 1)
К порту можно подключится. Также будет сообщение и от ядра Linux в BeagleBone Black:
[ 1391.712610] gadget: high-speed config #2: CDC ACM config
[ 1391.712634] gadget: activate acm ttyGS0
Видео примера работы этого гаджета:
Модуль g_mass_storage.ko
Модуль отвечающий за Mass Storage, или по русски за класс USB — накопитель.
Вот информация о модуле:
Модуль чуть сложнее в использовании (для примера возьмём первый раздел нашей карты памяти, где находится U-Boot и MLO):
# modprobe g_mass_storage file=/dev/mmcblk0p1
Аргумент file служит для указания файла, устройства. При подключении в списках устройств появится носитель:
А также будет сообщение в dmesg:
Устройство будет доступно как обыкновенный диск, также будет сообщение в BeagleBone Black:
Видео:
Модуль g_ether.ko
Этот модуль отвечает за эмуляцию RNDIS/Ethernet устройств. Вот информация по этому модулю:
Использование аналогично g_serial:
# modprobe g_ether
При подключении будет отображён тип и класс устройства:
…
В dmesg, будет же сообщение о новом сетевом интерфейсе, который можно использовать:
В утилите ifconfig ПК можно будет обнаружить новое сетевое устройство (на логе оно уже настроено):
Это также относится и к BeagleBone Black в dmesg который будет отображено сообщение о сетевом устройстве:
ifconfig также показывает новое сетевое соединение (на логе оно ещё не настроено):
Активируем соединение:
# ifconfig usb0 192.168.7.2 up
После чего можно проверить с ПК как плата отвечает на запросы (ping):
Так и в обратном направлении с платы на ПК:
Cloud file backup and storage — dropbox
Whether you’re trying to back up an image collection, a large video, a CAD file or entire folders you can store all your important files safely in your Dropbox account. With access to your Dropbox files from any device, operating system, or platform, you can work and collaborate on projects with ease.
No internet connection? No problem. With Dropbox, you can work on files while offline, from your desktop computer, Android, iPhone, or iPad. Once you get back online, your files and folders will automatically sync with any edits you made when you weren’t connected.
Configuration
Here you can see module-specific configuration.
Configuring the ethernet interface on the target
Give the network interface usb0 an IP address, for example:
Target device
# ifconfig usb0 192.168.44.30 netmask 255.255.255.0
Contacts and more
Google also makes it very easy to customize all your contacts using the company’s own cloud services. Follow the instructions below to ensure you never lose contact information again.
- Open the Settings app.
- Hit Accounts.
- Select your Google account of choice.
- Go to Account sync.
- Toggle on Contacts (and any other service you wish to).
And that’s it! Your device should be pretty much all backed up now. Unless, of course, you want to use a third-party service instead of Google’s own.
Creating and mounting the file system
Linux hosts
A Linux host computer recognizes the target as a new SCSI device. Linux assigns a device node in the form sdx, where x is a letter index, and the partition appears as sdx1. To see exactly which device the host assigned, print out the system log messages with:
Host PC
Device tree bindings and customization
The i.MX6 USB OTG interface device tree binding is documented at Documentation/devicetree/bindings/usb/usbmisc-imx.txt.
The USB OTG interface is defined in the i.MX6 CPU, ConnectCore 6 system-on-module, and ConnectCore 6 SBC device tree files.
G_cdc — composite ethernet serial gadget
(available on limited devices)
The g_cdc gadget supports two functions in one configuration:
Example:
on target device load module modprobe g_cdc
on host device (ie PC) a USB CDC ACM device (VID:PID 0525:a4aa) will appear
Linux USB Host notes:
the cdc_acm driver will enumerate this device as ‘/dev/ttyACM<n>’
the cdc_ether driver will enumerate this device as a ‘usb<n>’ network device
Windows USB Host notes:
A CDC Composite Gadget device will appear in Device Manager
G_hid — human interface device (hid) gadget
(available on limited devices)
The HID gadget driver provides generic emulation of USB Human Interface Devices (HID), for example keyboards, mice, touchscreens, etc
Example:
on target device load module modprobe g_hid
module parameters can specify the VID, PID, device version, manufacturer string, product string, serial number
G_ncm — usb cdc ncm subclass ethernet gadget
(available on limited devices)
The g_ncm gadget driver provides a a USB CDC NCM subclass. NCM is an advanced protocol for Ethernet encapsulation, allowing grouping of several ethernet frames into one USB transfer with various alignment possibilities.
Example:
on target device load module modprobe g_ncm
on host device (ie PC) a ‘Linux-USB Ethernet Gadget’ device (VID:PID 0525:a4a1 by default) will appear
on target device (Gateworks board) a usb<n> network device will be created
module parameters can specify the VID, PID, device version, manufacturer string, product string, serialnumber
module parameters can specify the device and host ethernet addresses and the queue length multiplier used at high speeds
Linux USB Host notes:
the cdc_ncm driver will enumerate the device and create a /dev/video<n> video capture device
Windows USB Host notes:
A NCM Gadget device will appear in Device Manager
G_serial — serial device gadget
The Serial Gadget supports CDC-ACM and CDC-OBEX which can inter-operate with the MS-Windows hosts or with Linux hosts using the ‘cdc-acm’ driver to create a ‘USB-to-Serial’ connection.
Example:
modprobe g_serial
module parameters can specify the VID, PID, device version, manufacturer string, product string, serialnumber, whether or not to use CDC ACM, CDC OBEX, and the number of ports to create.
G_webcam — composite usb audio and video class gadget
(currently not available in LEDE)
The g_webcam gadget driver provides a Composite USB Audio and Video Class device.
Example:
on target device load module modprobe g_webcam
on host device (ie PC) a ‘Linux Foundation Webcam Gadget’ device (VID:PID 1d6b:0102 by default) will appear
on target device (Gateworks board) a /dev/video<n> device will be created and avialable as a Video4Linux output device supporting 320/240 YUYV video
module parameters can specify the VID, PID, device version, manufacturer string, product string, serialnumber
Linux USB Host notes:
the uvcvideo driver will enumerate the device and create a /dev/videoX (X= number) video capture device
Windows USB Host notes:
A USB Composite device will appear in Device Manager
A UVC Camera device will appear under Imaging devices in the device manager and be available to capture video
Installation
To get this working on a Qualcomm-Atheros AR9331 device I had to install kmod-usb-chipidea instead of the kmod-usb-gadget (that was not available) and then I installed my gadget driver of choice, kmod-usb-gadget-eth.
That device has 4 MB of flash, so it was a bit more involved than just using opkg, but it’s not relevant for enabling USB guest feature.
Internal storage
Существует много путаницы в отношении модели хранилища Android. Путаницы стало значительно больше с изменениями Android 4.4 в Storage Model, и с тех пор ситуация не улучшилась. Есть бесчисленное множество вопросов на Stack Overflow и тому подобных ресурсах, где люди явно не совсем разбираются в различных моделях хранилищ Android.
Iomux configuration
ConnectCore 6 system-on-module device tree
Opening a console shell via usb serial
The following instructions describe how to open a console shell via the USB serial port.
- On the target side, execute a console on the serial gadget with the getty command (baudrate is mandatory but irrelevant):
Target device
# setsid getty -L -l /bin/sh -n 115200 /dev/ttyGS0
The setsid command avoids permission problems when running getty from an interactive shell.
- On the host side, open a minicom or putty session on the USB serial port /dev/ttyACM0 to access the shell.
Note Settings like speed or parity for the serial terminal session (and for the getty command) are irrelevant, as the communication takes place at USB speed. The serial communication settings are emulated.
Platform driver mapping
The i.MX6 USB device driver is located at drivers/usb/.
Settings and apps
To back up your phone’s settings and apps, you’ll want to use Google’s own backup solution. This service essentially backs up the apps you use and the settings that you have selected in most Google apps, making it easy to restore those settings on a new phone. Follow the instructions below to activate it:
- Open your smartphone’s Settings app.
- Scroll down to Google and tap on it.
- Tap on Backup.
- Toggle on the Back up to Google Drive switch and add your account, if it’s not there already.
You can also use Google One:
- Get the Google One app and open it.
- Go to the Storage tab.
- Scroll down to the Device Backup section and find your phone.
- Select Backup settings.
- Toggle on the data you want backed up.
Unloading the ethernet gadget
To unload the USB Device gadget:
# rmmod g_ether # rmmod usb_f_rndis # rmmod usb_f_ecm # rmmod libcomposite
Unloading the mass-storage gadget
To unload the USB mass-storage gadget from the system:
# rmmod g_mass_storage # rmmod libcomposite
Unloading the serial gadget
To unload the USB serial gadget from the system:
Target device
# rmmod g_serial # rmmod usb_f_acm # rmmod libcomposite
Usb file storage gadget
The file storage gadget must be enabled at the kernel config menu:
USB support -> Support for USB gadgets -> File-backed storage gadget
Note that only one USB gadget may be enabled at the same time. If multiple gadgets must be supported, all of them must be configured as modules, so I had to remove built-in support for ethernet gadget from the kernel. Switching the USB function requires removing and installing the proper modules.
The module for file storage is g_file_storage.o and is installed this way:
insmod g_file_storage.o file=/results.bin stall=0
The ‘stall’ argument is necessary for the USB disk to be properly detected by windows. Linux does not require this argument and the drive can be mounted without problem. If ‘stall’ is not set to zero and the gadget is connected to a windows PC, the following messages appear:
g_file_storage pxa2xx_udc: full speed config #1
udc: pxa2xx_ep_disable, ep1in-bulk not enabled
udc: pxa2xx_ep_disable, ep2out-bulk not enabled
udc: USB reset
udc: USB reset
repeating every few seconds.
For the ‘stall’ option to be available, it is necessary to enable the ‘file-backed storage gadget in test mode’ option in the kernel configuration.
Multiple files may be specified when the gadget module is installed, thus creating multiple drives visible to the remote host.
Any volume size may be created but it seems that Windows assigns floppy drive letters if the volume size is similar to a floppy device size. I have tested 720KB and 1440KB only.
The volume may be declared as read-only by using the «ro=1» parameter at the insmod.
The backend file may be either a disk partition or a file image.
An initial filesystem image can be created this way:
# dd if=/dev/zero of=results.bin bs=512 count=2880
# mkdosfs results.bin
Then, loop-mount the image file and populate the filsystem. Here is where problems came: if a process writes a new file to the loop filesystem, the host side of the USB connection (where the file browser runs) does not see the new file, even if the file browser is refreshed. The only workaround is to unplug/plug again the USB cable. This happens even if a ‘sync’ command is run on the tester device.
Also, some inconsistences happen if the USB host side writes to the device. The device doesn’t see the new files, and vice-versa.
In conclusion, it is quite a good method to export only file from a Linux device, but with some limitations on «live» filesystems.
Вопросы без ответов. синхронизация контактов. часть 2. — android.
вот такой ПРИБЛИЗИТЕЛЬНО. что за модель загадка для нас самих. китайская под(д)елка, но вполне себе.
При втыкании появляется стандартный «диалог» о том ,что
«ВАМ тут посылка пришла ,
Только я вам её НЕ отдам,
пАтАчуЧтО у вас дОкументов нетУ»
об установке новых ДРАЙВЕРОВ.
1.
и на моё Искреннее удивление предложил поискть здесь :
C:Program FilesCompiled Driver Disk (Android)AndroidSamsung21_Searsburg
,но у меня на компьютере НЕТ такой папки. А она предлагает САМА в ней поискать..
т.е. где-то у неё (у кого у неё?) это(выделенное жирным — сам не знаю что это и откуда) прописано.
2.
В диспетчере Устройств на ЭТОТ МОМЕНТ(пока никаких драйверов предоложено НЕ было)
обнаружилось 4 новых USB устройства :
(скорее всего)Размещение(т.к. только его можно скопировать)
USB-совместимое запоминающее устройство
Драйвер:
C:WINDOWSsystem32driversUSBSTOR.SY (печатал ручками)
3.
4/4 сверху
Размещение:
Linux File-CD Gadget USB Device
код экземпляра устройства:
STORAGEREMOVABLEMEDIA8&2A14CA6A&0&RM
3/4 сверху
Размещение:
Linux File-CD Gadget USB Device
код экземпляра устройства:
STORAGEREMOVABLEMEDIA8&175B19C5&0&RM
2/4 сверху
Размещение:
Размещение 0 (CIF Single Chip )
код экземпляра устройства:
USBVID_093A&PID_24715&BFE1B0B&0&1
Коды (ID) оборудования:
USBVid_093a&PID_2471&Rev_0100
USBVid_093a&PID_2471
1/4 сверху
Размещение:
Размещение 0 (MT65xx Android Phone)
Состояние устройства:
(
Это устройство настроено неправильно. (Код 1)
Нажмите «Переустановить» для переустановки драйверов этого устройства.
)
код экземпляра устройства:
USBVID_0BB4&PID_0C03&MI_016&1E68B3CF&0&0001
Коды (ID) оборудования:
USBVid_0bb4&Pid_0c03&Rev_0255&MI_01
USBVid_0bb4&Pid_0c03&MI_01
совместимые коды (ID)
USBClass_ff&SubClass_42&Prot_01
USBClass_ff&SubClass_42
USBClass_ff
===
надо сказать, что после отказа предоставить драйвера — ну те что
C:Program FilesCompiled Driver Disk (Android)AndroidSamsung21_Searsburg
система тем не менее смогла распознать и установить устройства 4/4 и 3/4
Linux File-CD Gadget USB Device
USBSTORDISK&VEN_LINUX&PROD_FILE-CD_GADGET&REV_00007&20AB2C06&0&0123456789ABCDEF&0
USBSTORDISK&VEN_LINUX&PROD_FILE-CD_GADGET&REV_00007&20AB2C06&0&0123456789ABCDEF&1
Но что это за ДИСКИ такие ? и Как к ним получить доступ — ВОПРОС?
Ни в «Мой Компьютер» Ни где-то ещё НЕ появилось НИЧЕГО, к сожалению.
Так что что бы что-то записать и установить на сей «Samsung»
приходится тупо
вынуть microSDHC
вставить её в компьютер (через кардридер CardReader)
записать на неё вручную всё что необходимо
БЕЗОПАСНО извечь, «ВОИЗБЕЖАНИИ, а то уже был прецедент — сбежал чёрт и украл Луну»(А.иБ.Стругацкие)
вставить назад в телефон.
И вот теперь у нас в телефоне что-то появилось..
Использовать же сей аппарат
просто как USB Storage
не представляется возможным.
И даже в меню никаких подобных настроек найти пока НЕ смог.
ХОТЯ ОНИ И УПОМИНАЮТСЯ!
=================================================================
это было всё что я смог нарыть касаемо железа
А теперь вопросы:
Android синхронизирует контакты через интернет с Контакты.Google — это прекрасно.
1.
Теперь моделируем ситуацию. Мы потеряли телефон.
Кто-то нашёл наш телефон. И ему НЕ нужны наши контакты. Он выделяет их ВСЕ и удаляет.
ВОПРОС:
Как в этом случаем послупит Синхронизация ? — по логике он должна удалить ВСЕ наши контакты на сервере Google. Но это же катастрофа! — как уберечь_ся от такой ВОЗМОЖНОЙ ситуации.
И/или
Синхронизация Телефона с Контакты.Google лишь редактирует и Добавляет контакты С ТЕЛЕФОНА.
А вот УДАЛЯТЬ позволяет только С СЕРВЕРА.
Таким образом мы получили бы определённую ЗАЩИТУ наших контактов от полного удаления.
Иначе получается какой-то Абсорд Абсурдов. Мы потеряли телефон. Но УРА — у нас сохранились все Контакты.на сервере.Google. О Нет где же они?! — их НЕТ. Их тоже нет! 🙁
Представили?!
я не знаю Закрыли ли разработчики эту дыру или нет. — Как известно часто бывает, что нет..
2.
Есть ли какая-то ИДЕАЛЬНАЯ система хранения и синхронизации КОнтактов. Такая,
что бы ДАЖЕ Я
НЕ смог бы найти и заподозрить в ней
НИ ЕДИНОЙ претензии ?
Вот было бы интересно взглянуть.
3.
Ура Заработало!
ищем
[по Коду указанному выше]по Коду указанному выше —
MT65xx Android Phone
код экземпляра устройства: USBVID_0BB4&PID_0C03&MI_016&1E68B3CF&0&0001
нужный Драйвер
Поисковик выдаёт, что это :
usb_driver_MT65xx_Android_ZTE_v821.rar
при втыкании телефона — появляется диалог «Найдено новое устройство» — необходимо установить Драйвера —
И соответсвующий диалог, когда система пытается эти самые драйвера найти.
Подставляем ей Путь куда скачали Сохранили usb_driver_MT65xx_Android_ZTE_v821.rar
И получаем следующие результаты.
4.
Теперь осталось разобраться что такое есть ПО СУТИ
передача Интернета на Android устройство через USB
есть несколько статей на эту тему :
Видео-урок на 14 минут
про который я написал целую статью.
Как передать интернет с ПК на Android через USB и раздать его по Wi-Fi
но я пока е разобрался в теме ПО СУТИ — какие кнопки нажимать меня интересует в последнюю очередь. Мне бы хотелось СУТЬ понять. Что за протоколы/интерфейсы.
(
я использую ActiveSync в связке с Windows Mobile (WM) — и там Интернет через USB передаётся
(как-то сам собой — по умолчанию — и/или если галочка стоит)
)
В сравнении всё всегда становится понятнее.
Где хранится internal storage … иногда
Если вы просматриваете различные сообщения в блогах, ответы на StackOverflow и книги, выпущенные в 2021 году или ранее, вам сообщается, что «внутреннее хранилище» вашего приложения находится по адресу: /data/data/your.application.package.name.
Внутри будут некоторые каталоги, автоматически созданные Android, поскольку вы используете некоторые из методов Context. Например, getFilesDir() возвращает объект File, указывающий на каталог files/ во внутреннем хранилище вашего приложения.
Где хранится internal storage … остальное время
Однако не всегда внутреннее хранилище вашего приложения находится в указанном месте. Для разработчиков есть одно правило, которое вы должны усвоить из этой серии сообщений в блоге, это:
NEVER HARDCODE PATHS.
Время от времени я вижу, что разработчики делают что-то вроде этого:
File f=new File(«/data/data/their.app.package.name/files/foo.txt»);
Это не преступление, это хуже, это — ошибка.
Правильный ход, да и писать меньше:
File f=new File(getFilesDir(), «foo.txt»);
Должен ли я делать файлы во внутреннем хранилище world-readable или world-writeable?
О, $БОГИ, нет. Используйте FileProvider и обслуживайте этот контент с помощью реализации ContentProvider. После этого вы, по крайней мере, имеете возможность использовать систему разрешений Android для управления доступом к этим файлам, в отличие от вашего варианта, когда любое приложение в системе может испортить эти файлы.
Не советую.
Исследуем internal storage
Device File Explorer tool в Android Studio 3.0 может просматривать все внутренние хранилища на эмуляторе, а также внутреннее хранилище отлаживаемых приложений на продакшн устройствах.
В командной строке вы можете использовать adb с опцией run-as.
Например, чтобы загрузить базу данных из внутреннего хранилища основного пользователя на вашу девелоперскую машину, вы можете использовать:
adb shell ‘run-as your.application.package.name cp /data/data/your.application.package.name/databases/dbname.db /sdcard’
Обратите внимание, что:
Как запретить пользователям rooted устройств доступ к моим файлам во внутреннем хранилище?
Просто не помещайте файлы во внутреннее хранилище. Пользователи rooted устройств могут получить доступ к тому, что им нужно на устройстве, поэтому единственный способ предотвратить их доступ к вашим данным — не иметь их на устройстве.
Некоторые разработчики попытаются зашифровать свои файлы с помощью жестко запрограммированного пароля, чтобы пользователи rooted устройств не могли использовать эти файлы. Это создаст эффект «лежачего полицейского» на короткое время. Все, что требуется, — это один заинтересованный в реверс-инжиниринге вашего приложения человек, определивший, как расшифровать эти файлы, а затем написавший сообщение в блоге или форуме о том, как это сделать.
В целом, относительно мало людей с rooted устройствами — я оцениваю их на уровне менее 1%. ИМХО, вы преуспеете больше, сосредоточив свою инженерную работу на написании лучшего приложения, вместо того, чтобы тратить время на защиту от рутованных устройств.
Ограничения внутреннего хранилища
На старых устройствах Android 1.x и 2.x внутреннее хранилище обычно находилось в выделенном разделе файловой системы, и этот раздел обычно был довольно крошечным. HTC Dream (a.k.a., T-Mobile G1), оригинальное Android-устройство, обладал огромными 70 МБ встроенной памяти для использования всеми приложениями (это не опечатка, в то время мы измеряли память в мегабайтах).
К тому времени, когда вышли 2.3 устройства, внутреннее хранилище могло быть размером 1 ГБ.
Android 3.0 изменил модель хранилища, так как внутреннее хранилище стало больше объемом. У устройств, которые рекламируют как имеющее 4 ГБ, 8 ГБ, 16 ГБ и т.д. пространства для хранения, обычно имелось все это (минус существующее содержимое) доступное для внутреннего хранилища. Мы рассмотрим, что изменилось в Android 3.0 и его влияние на модель хранилища в следующих постах про внешнее хранилище.
Для Android 1.x и 2.x внутреннее хранилище было действительно только для небольших файлов, и вам нужно было использовать внешнее хранилище для всего остального. Android 3.0 означает, что для большинства устройств и большинства пользователей внутреннее хранилище отлично подходит для файлов, которые не предназначены для обычного использования другими приложениями или доступны пользователю независимо от вашего приложения.
Однако некоторые опытные пользователи обнаруживают, что даже on-board flash недостаточна для того, что они хотят хранить, поэтому они переходят на съемные хранилища… которые представляют собой банку с червями (прим. имеются в виду ἕλμινς) — источник многих непредсказуемых и сложных проблем.
Usb device enabling and definition
ConnectCore 6 SBC device tree
Definition of the usb device
Common i.MX6 device tree