> For the complete documentation index, see [llms.txt](https://docs.talsec.app/freerasp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.talsec.app/freerasp/freemalwaredetection/detection-layers/app-blocklists.md).

# App Blocklists

The App Blocklists layer evaluates installed applications against a locally cached list of malicious identifiers. This deterministic check matches either the exact **Package Name** or the **SHA-256 Hash** of the installed application.

You can configure both types of identifiers simultaneously, or use only one by omitting the unused parameter.

***

## Package-Name Blocklist

This check extracts the application's unique package identifier (e.g., `com.malicious.stealer`) and compares it against a predefined list.

* **Execution:** Performs a direct string comparison against the OS package manager's inventory.
* **Detection Constraint:** This evaluation strictly matches the exact package name string. It does not detect malicious applications that have been repackaged or distributed under a different package identifier.
* **Result Flag:** A positive match triggers the `blocklist` [reason](/freerasp/freemalwaredetection/integration-guide/handling-results.md#modern-v2-api). This flag takes absolute precedence: it overrides any permission or installation source heuristics and immediately halts further evaluation for that specific application.

[**→ View how to configure package name blocklists**](/freerasp/freemalwaredetection/integration-guide/configuration.md)

***

## Hash-Based Blocklist

This check calculates the SHA-256 hash of the target application's entire APK file and compares it against a predefined list.

{% hint style="info" %}
**Cryptographic Fingerprint**

The SHA-256 hash serves as a unique cryptographic fingerprint of the entire APK file. While a package name can be easily spoofed or duplicated by different apps, the hash identifies a specific, verified malicious binary. Any internal modification to the application—such as repackaging to change its package name or resources—will result in a completely different hash.

**Need broader coverage?** [Premium Malware Detection](https://docs.talsec.app/premium-products/product/malware-detection) extends this with real-time APK reputation lookups against a continuously updated global threat database.
{% endhint %}

* **Execution:** Reads the application's APK file from the device's storage to compute the cryptographic hash.
* **Result Flag:** A positive match triggers the `blocklist` [reason](/freerasp/freemalwaredetection/integration-guide/handling-results.md#modern-v2-api) and immediately halts further evaluation for that specific application.

{% hint style="warning" %}
**Performance Consideration**

Defining at least one hash in your configuration increases the total duration of the background scanning process, as the SDK must perform read operations on the binary files of installed applications.
{% endhint %}

[**→ View how to configure hash-based blocklists**](/freerasp/freemalwaredetection/integration-guide/configuration.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.talsec.app/freerasp/freemalwaredetection/detection-layers/app-blocklists.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
