DJI: Difference between revisions

Added explanation of the filesystem access dark pattern employed by the DJI Mimo app on Android.
Fruiteebat (talk | contribs)
I added a bullet point on DJI's SDK changes for their drones, and how they've stopped adding support for newer devices.
Line 20: Line 20:
*DJI drones send out [https://www.theverge.com/2022/4/28/23046916/dji-aeroscope-signals-not-encrypted-drone-tracking unencrypted RemoteID/Aeroscope packets] that can be captured by anyone, to follow the [https://www.faa.gov/uas/getting_started/remote_id Remote ID] law in the USA. They contain, amongst other things, the drone's serial number, camera information, pilot location, and Return-to-Home location. A [https://github.com/MAVProxyUser/CIAJeepDoors patch] is available to mitigate this feature on certain drone models and firmware versions.
*DJI drones send out [https://www.theverge.com/2022/4/28/23046916/dji-aeroscope-signals-not-encrypted-drone-tracking unencrypted RemoteID/Aeroscope packets] that can be captured by anyone, to follow the [https://www.faa.gov/uas/getting_started/remote_id Remote ID] law in the USA. They contain, amongst other things, the drone's serial number, camera information, pilot location, and Return-to-Home location. A [https://github.com/MAVProxyUser/CIAJeepDoors patch] is available to mitigate this feature on certain drone models and firmware versions.
*DJI firmware comes with [https://gist.github.com/KonradIT/e7bf81793eda6bb1e5406fd351d33565 many GPL components] whose sources aren't disclosed, thus violating the GPL license. There is a limited [https://dji.com/opensource disclosure page for their enterprise platforms], but it is very outdated and doesn't cover the GPL software in newer (post Mavic 2) consumer drones (whose OS is based on Android).
*DJI firmware comes with [https://gist.github.com/KonradIT/e7bf81793eda6bb1e5406fd351d33565 many GPL components] whose sources aren't disclosed, thus violating the GPL license. There is a limited [https://dji.com/opensource disclosure page for their enterprise platforms], but it is very outdated and doesn't cover the GPL software in newer (post Mavic 2) consumer drones (whose OS is based on Android).
*While many drones support the Mobile SDK, drones released from late 2021/2022 onwards have not yet received support. This significantly inhibits the consumer's ability to use their drone how they desire.
*The Android version of the DJI Mimo application requests full filesystem access to the user's device each time a connection to a DJl camera is initiated. If a user denies this permission, the application will refuse to connect to the camera. If a user grants permission for access to only a specific folder or selection of media, the app will connect. However, on every subsequent connection, the app will again prompt for full filesystem access with the message: "DJI Mimo would like to access mobile device's storage, so that you can use features, including editing and downloading photos and videos from camera. Otherwise, related services will be restricted. Go to settings to grant permissions". To prevent the app from gaining access to all files on the device, the user must repeatedly select the "Don't select more" option in the Android permission prompt. This option is positioned directly below the "Allow all" selection, which necessitates user attention during each connection to maintain a restricted level of access.
*The Android version of the DJI Mimo application requests full filesystem access to the user's device each time a connection to a DJl camera is initiated. If a user denies this permission, the application will refuse to connect to the camera. If a user grants permission for access to only a specific folder or selection of media, the app will connect. However, on every subsequent connection, the app will again prompt for full filesystem access with the message: "DJI Mimo would like to access mobile device's storage, so that you can use features, including editing and downloading photos and videos from camera. Otherwise, related services will be restricted. Go to settings to grant permissions". To prevent the app from gaining access to all files on the device, the user must repeatedly select the "Don't select more" option in the Android permission prompt. This option is positioned directly below the "Allow all" selection, which necessitates user attention during each connection to maintain a restricted level of access.