Release of the mobile platform Android 17

Google has released an open mobile platform. Android 17. The source code for the new release is available in the project's Git repository (branch android-17.0.0_r1). Firmware builds have been prepared for the following devices: Pixel 6/6a/6 Pro, Pixel 7/7a/7 Pro, Pixel 8/8a/8 Pro, Pixel 9/9a/9 Pro/9 Pro XL/9 Pro Fold, Pixel 10/10 Pro/10 Pro XL/10 Pro Fold, Pixel Fold, and Pixel Tablet. Pre-release firmware builds are available for devices from HONOR, iQOO, Lenovo, OnePlus, OPPO, realme, Sharp, vivo, and Xiaomi. Generic System Images (GSI) builds suitable for various devices based on ARM64 and x86_64 architectures are in the process of being created.

Among the changes (1, 2, 3):

  • A new multi-window mode, "Bubbles," has been added. It allows you to launch any application in floating windows, similar to overlay notifications for sending messages ("bubbles"), but not tied to a specialized API. Opening an application in a floating window is accomplished by long-pressing the application icon. On larger screens, floating window icons appear in a separate area on the taskbar. These windows can be grouped, moved, and pinned to the screen.

  • Platform development for devices with large screens, such as tablets, laptops, desktop systems, and smartphones with foldable screens, has continued. Previously enabled options for disabling new behavior on devices with screens wider than 600 pixels (dp) have been removed. This behavior was related to ignoring certain APIs for managing screen resizing and orientation (screenOrientation, resizeableActivity, [min|max]AspectRatio), as well as adaptive placement of applications in resizable and movable windows.

  • The EyeDropper system API has been added, allowing applications to obtain color information for any pixel on the screen without requiring screen capture permissions. Security is ensured by allowing the user to select the area to be color-captured via a platform-managed eyedropper interface, which is not under the application's control. This means applications cannot request information about a specific pixel or recreate the screen content pixel by pixel.

  • A system interface for selecting contacts from the address book has been added. Access to this interface is granted by granting the ACTION_PICK_CONTACTS permission. This interface eliminates the need for the READ_CONTACTS permission, which allows reading all contact data. When invoking the new interface, the user decides which information from the address book to pass to the application, with the option to select only individual fields.

  • The PhotoPickerUiCustomizationParams API has been added to customize the photo picker interface, allowing it to better match the style of the calling app. For example, you can change the aspect ratio of photo thumbnails from 1:1 (square) to 9:16 (portrait).

  • The USE_LOCATION_BUTTON permission has been added, allowing you to embed a system button into your app's interface to grant access to precise location data. The button is rendered by the system and, when clicked by the user, grants access to location data only for the duration of the current session.

  • A setting has been added that allows you to hide the display of application names under their icons.
  • The design of the screencast recording toolbar has been changed.

  • Added support for Screen Reactions, which combine video recording from the front camera with the creation of a screencast for adding your own comments to actions on the screen.


  • A mode has been added for games on devices with folding screens, in which one half of the folding screen is used to display the gameplay, and the other for the virtual gamepad.

  • Added Handoff API, allowing you to transfer the state of an application to another one nearby Android-device (for example, a tablet) and continue working there.

  • Implemented interactive docked windows that, unlike traditional Picture-in-Picture windows, remain interactive when docked over other applications in desktop mode.
  • Two new APIs have been added: the UWB DL-TDOA API for determining the position of a device inside a building using Wi-Fi for indoor navigation; and the Proximity Detection API for detecting nearby devices via Wi-Fi.
  • Support has been added for the VVC (Versatile Video Coding) video format, also known as the H.266 video compression standard, developed jointly by the MPEG (ISO/IEC JTC 1) and VCEG (ITU-T) working groups, with the participation of companies such as Apple, Ericsson, Intel, Huawei, Microsoft, Qualcomm, and Sony. H.266 replaces H.265 (HEVC) and provides high-efficiency transmission and storage for all screen resolutions (from SD and HD to 4K and 8K), supports High Dynamic Range (HDR) video, and 360-degree panoramic video.
  • The ability to record video with a constant quality level has been added. This mode is configured in the MediaRecorder object using the setVideoEncodingQuality() method, allowing you to lock the quality level regardless of the bitrate.
  • Added support for the RAW14 image format, used in professional digital cameras and providing storage of 15 bits per color channel.
  • Added support for the Eclipsa Video HDR video format.
  • Added software encoder for the HE-AAC (High-Efficiency Advanced Audio Coding) audio format, supporting both low and high bitrates.
  • A new permission, ACCESS_LOCAL_NETWORK, has been added to restrict app access to the local network. This permission allows apps to identify and connect to devices on the local network, such as smart home devices and multimedia systems. This permission was added to prevent malicious apps from scanning local network resources, for example, to covertly identify the user's environment.
  • Protection against the interception of one-time passwords (OTPs) and confirmation codes sent via SMS has been expanded. Most apps now only have direct access to these messages three hours after they are received. The default SMS reader displays these messages immediately.
  • Protection against calls from fraudulent individuals posing as bank employees has been implemented. The platform can interact with installed banking apps to confirm that the call originates from the bank. Banks can also identify phone numbers that only accept incoming calls.
  • Added the ability to grant applications temporary access to precise location data, valid only during the current session of using the program.
  • The Dynamic Code Loading (DCL) protection mechanism has been extended to support native libraries loaded via the System.load() method, not just
    DEX and JAR files. DCL prevents malicious code from being inserted into dynamically loaded executable files by setting read-only access rights for such files.
  • The Certificate Transparency mechanism is enabled by default, maintaining a public log of all issued and revoked certificates.
  • The ability to certify APK packages with a digital signature based on a hybrid algorithm that combines the classical algorithm with the ML-DSA algorithm, which is resistant to brute force on a quantum computer, has been introduced.
  • Apps running in the background have limited access to APIs for playing audio, connecting to audio devices, and changing volume. This means that only active apps with which the user is currently interacting can start playback and change volume.
  • Added support for hybrid encryption based on the HPKE (Hybrid Public Key Encryption, RFC 9180) mechanism, which combines the ease of key transfer in public key encryption with the high performance of symmetric encryption (data is encrypted with a fast symmetric key, and the key itself is encrypted with a slow asymmetric key).
  • When entering passwords and PINs using a physical keyboard, the display of the last entered character as you type is disabled by default.
  • To simplify the implementation of touchpad support in games, the handling of mouse and touchpad events has been unified. By default, touchpad events related to pointer movements and scrolling gestures are now converted to relative coordinates, just like for a mouse. Access to absolute coordinates is provided by explicitly specifying the POINTER_CAPTURE_MODE_ABSOLUTE mode.
  • The getInitialRestingBounds() method has been added to the ChooserSession object, allowing you to find out the final position and size of the Chooser dialog after the animation stops and the data is loaded.
  • Added getStreamingAppMaxDownlinkKbps and getStreamingAppMaxUplinkKbps methods to determine the maximum bandwidth of the communication channel for the purpose of selecting the quality level for streaming.
  • An API has been provided to hardware manufacturers to create camera extensions that enable application-specific features, such as the Super Resolution detail enhancement engine, noise reduction modes, and AI quality optimizers.
  • Added API for getting information about camera type (built-in camera, USB webcam, or virtual camera).
  • Support has been added for hearing aids connected via Bluetooth Low Energy (BLE). These devices are now classified under the new TYPE_BLE_HEARING_AID category, allowing apps to distinguish between hearing aids and headphones and to control system sound playback separately (for example, you can play notifications, ringtones, and alarms on your phone's built-in speaker rather than on your hearing aid).
  • Separate settings have been added for displaying passwords entered on the physical keyboard and on the touchscreen. By default, password characters entered using the physical keyboard are immediately hidden.
  • Improved display of app widgets on external screens by taking into account differences in DPI when scaling.
  • Added the ACTION_VPN_APP_EXCLUSION_SETTINGS request, which can be used to open a system screen with settings that allow an application to have network access bypassing the VPN tunnel.
  • Added support for OpenJDK 25 language features and Java classes.
  • The camera API capabilities have been expanded. The updateOutputConfigurations() method has been added to the CameraCaptureSession object for attaching or detaching output regions on the fly without having to reconfigure the entire camera capture session. This change allows for seamless switching between different camera modes (for example, video recording and photo taking). When working with logical cameras that span multiple physical sensors, the ability to retrieve metadata for each sensor, not just the primary, has been added.
  • The android:usesCleartextTraffic attribute, which allowed applications to transmit unencrypted traffic, such as "http://" requests, has been deprecated. If unencrypted traffic is required, separate security configuration files should be used.
  • Added settings for managing VoIP call history, allowing you to control whether information is saved in logs and whether information about completed calls is displayed in the interface.
  • The Wi-Fi RTT (Round-Trip-Time) API has been expanded to provide continuous proximity estimation to access points and secure peer-to-peer node detection.
  • New profiles have been added to CompanionDeviceManager for requesting permissions and enabling app interactions with medical devices and fitness trackers.
  • В Android Runtime (ART) implements a generational garbage collector (Generational Concurrent Mark-Compact Garbage Collector), which separates the processing of "old" and "young" objects, improving the efficiency of cleanup of recently created objects with short lifetimes. The use of a generational garbage collector reduces the risk of stalls during resource allocation and reduces CPU load, improving energy efficiency.
  • A limit on the maximum amount of RAM an application can occupy has been implemented. If the limit, calculated based on the device's available RAM, is exceeded, the application is forcibly terminated. To reduce memory consumption, R8 Optimizer has been introduced, which packs class, method, and field names, and removes unused code and resources.
  • When compiling the kernel Linux AutoFDO (Auto-Feedback-Directed Optimization) is enabled. It uses profiling results with information about the execution frequency of various sections of code to improve the performance of frequently executed operations. In tests conducted, enabling AutoFDO for the kernel resulted in a 2.1% reduction in boot time, a 4.3% acceleration in first-run program execution, a 9.3% increase in system call efficiency, a 12.3% reduction in Binder mmap transaction execution time, a 20% reduction in HwBinder execution time, and a 21.7% reduction in Binder RPC execution time.
  • A new implementation of the android.os.MessageQueue message queue is proposed, operating without locks. This new implementation improves performance and reduces frame loss.
  • Applications claiming support Android 17 and later releases, changing the values ​​of fields marked as "static final" is prohibited, allowing more aggressive performance optimizations to be enabled at runtime.
  • To reduce memory consumption, the size of custom notification view layouts has been limited.
  • Additional triggers TRIGGER_TYPE_COLD_START, TRIGGER_TYPE_OOM, and TRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE have been added to the ProfilingManager profiler to collect data useful for debugging performance issues.

Source: opennet.ru

Buy reliable hosting for sites with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster