AM Debug v4.0.0-beta02 Run#2841
Refactor Use Collator to sort app labels
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
Refactor Use Collator to sort app labels
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
👍4❤2🔥1
AM Debug v4.0.0-beta02 Run#2842
Refactor Use alphanumeric sort instead of alphabetical sort
Alphabetical sort does not understand numerals. Therefore, name1, name2, name10
are sorted as name1, name10, name2 which is not preferable in some cases such as
ordering the files in a directory. Instead, alphanumeric sort is used.
For alphanumeric sort, we have borrowed the implementation by David Koelle1
instead of the traditional, expensive regular expression-based implementation.
1: http://www.davekoelle.com/alphanum.html
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
Refactor Use alphanumeric sort instead of alphabetical sort
Alphabetical sort does not understand numerals. Therefore, name1, name2, name10
are sorted as name1, name10, name2 which is not preferable in some cases such as
ordering the files in a directory. Instead, alphanumeric sort is used.
For alphanumeric sort, we have borrowed the implementation by David Koelle1
instead of the traditional, expensive regular expression-based implementation.
1: http://www.davekoelle.com/alphanum.html
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
❤5🎉2
AM Debug v4.0.0-beta02 Run#2843
Backup Fix restoring app data due to sorting issue
Use alphanumeric sorting for listing the part files.
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
Backup Fix restoring app data due to sorting issue
Use alphanumeric sorting for listing the part files.
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
❤6👍3
AM Debug v4.0.0-beta02 Run#2845
Settings Improve "About the device" dialog
New items:
- OS Build number
- Graphics model
- Vulkan version
- Battery technology (Li-ion/Li-poly)
- Estimated battery capacity (AKA real battery capacity)
- Battery health
- Battery cycle count (Android 14+)
Fix: Report estimated battery capacity as the default capacity if the vendor
does not provide a battery capacity spec.
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
Settings Improve "About the device" dialog
New items:
- OS Build number
- Graphics model
- Vulkan version
- Battery technology (Li-ion/Li-poly)
- Estimated battery capacity (AKA real battery capacity)
- Battery health
- Battery cycle count (Android 14+)
Fix: Report estimated battery capacity as the default capacity if the vendor
does not provide a battery capacity spec.
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
❤5👍3
AM Debug v4.0.0-beta02 Run#2846
Settings Add more security properties in "About the device" dialog
- dm-verity
- verified boot
- AVB version
- Bootloader lock/unlock (only when AVB is enabled)
- Debuggable OS
- Android KeyStore features: software, hardware, StrongBox
- Encryption algorithms supported by hardware- and StrongBox-backed keystore.
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
Settings Add more security properties in "About the device" dialog
- dm-verity
- verified boot
- AVB version
- Bootloader lock/unlock (only when AVB is enabled)
- Debuggable OS
- Android KeyStore features: software, hardware, StrongBox
- Encryption algorithms supported by hardware- and StrongBox-backed keystore.
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
👍7❤4
AM Debug v4.0.0-beta02 Run#2848
[Finder] Add support for logical expressions
Each filter option is assigned a unique ID consisting of its type and a number.
These unique IDs acts as operands or variables in the expression. The expression
supports the following operations in order:
- Brackets: Any operand or expression inside the first bracket will be evaluated
first. Brackets can also be nested.
- And: Logical "and" operation can be performed by separating multiple operands
by & (ampersand) symbol. This is the default behavior when no expression is
explicitly specified.
- Or: Logical "or" operation can be performed using the | (pipe) symbol.
All of above follows the standard Boolean algebraic laws for evaluation. Not
operator is not supported, because it already has implicit support in each
filter.
Example: Consider the following expression:
apk_size_1 & (app_type_2 | bloatware_3)
For each application item, app_type_2 filter will be matched first as it is the
first item inside the brackets. If it returns true (i.e., the filter matched),
it shall skip checking bloatware_3 filter due to short-circuit and collapse the
expression as stated below. If it returns false, it will evaluate bloatware_3
and collapse the expression.
apk_size_1 & true
In this simplified form, first apk_size_1 will be evaluated. If it returns true,
the second operand (i.e., true) will be evaluated and the expression will return
true. If it returns false, the second operand will not be evaluated and the
expression will return false.
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
[Finder] Add support for logical expressions
Each filter option is assigned a unique ID consisting of its type and a number.
These unique IDs acts as operands or variables in the expression. The expression
supports the following operations in order:
- Brackets: Any operand or expression inside the first bracket will be evaluated
first. Brackets can also be nested.
- And: Logical "and" operation can be performed by separating multiple operands
by & (ampersand) symbol. This is the default behavior when no expression is
explicitly specified.
- Or: Logical "or" operation can be performed using the | (pipe) symbol.
All of above follows the standard Boolean algebraic laws for evaluation. Not
operator is not supported, because it already has implicit support in each
filter.
Example: Consider the following expression:
apk_size_1 & (app_type_2 | bloatware_3)
For each application item, app_type_2 filter will be matched first as it is the
first item inside the brackets. If it returns true (i.e., the filter matched),
it shall skip checking bloatware_3 filter due to short-circuit and collapse the
expression as stated below. If it returns false, it will evaluate bloatware_3
and collapse the expression.
apk_size_1 & true
In this simplified form, first apk_size_1 will be evaluated. If it returns true,
the second operand (i.e., true) will be evaluated and the expression will return
true. If it returns false, the second operand will not be evaluated and the
expression will return false.
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
👍5❤2
AM Debug v4.0.0-beta02 Run#2849
Interceptor Fix focus issues
Android has a weird way of managing focuses and clicks. If an item is clickable,
it is not focusable by default. So, when the focus is on an input box and the
user clicks a button, the focus is not automatically cleared from the input box
if the button is not focusable, which is not an intended behavior as the UI will
jump to the focused input box right after the button is clicked. As there are
many input boxes, it is not feasible, at run-time, to determine where the focus
is currently on and clear it. As a workaround, it temporarily enables focusing
on the current view, focuses on it and then, clear the focus, thus, resetting
the focus.
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
Interceptor Fix focus issues
Android has a weird way of managing focuses and clicks. If an item is clickable,
it is not focusable by default. So, when the focus is on an input box and the
user clicks a button, the focus is not automatically cleared from the input box
if the button is not focusable, which is not an intended behavior as the UI will
jump to the focused input box right after the button is clicked. As there are
many input boxes, it is not feasible, at run-time, to determine where the focus
is currently on and clear it. As a workaround, it temporarily enables focusing
on the current view, focuses on it and then, clear the focus, thus, resetting
the focus.
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
❤2👍1😱1
AM Debug v4.0.0-beta02 Run#2850
Interceptor Fix displaying "Reset Intent" button on some cases
When flags, extras, or categories change, it didn't show the "Reset Intent"
button.
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
Interceptor Fix displaying "Reset Intent" button on some cases
When flags, extras, or categories change, it didn't show the "Reset Intent"
button.
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
❤2👍1
AM Debug v4.0.0-beta02 Run#2851
Interceptor Fix retrieving matching activities when default is set
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
Interceptor Fix retrieving matching activities when default is set
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
❤3👍2
AM Debug v4.0.0-beta02 Run#2852
VirusTotal Migrate to v3 API
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
VirusTotal Migrate to v3 API
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
❤2👍2🎉2
AM Debug v4.0.0-beta02 Run#2853
VirusTotal Allow uploading a single file with size up to 650 MB
Previously, the limit was 32 MB. Sizes are in MB, not MiB.
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
VirusTotal Allow uploading a single file with size up to 650 MB
Previously, the limit was 32 MB. Sizes are in MB, not MiB.
Signed-off-by: Muntashir Al-Islam <muntashirakon@riseup.net>
❤2👍2