Giter Site home page Giter Site logo

d4rken-org / sdmaid-se Goto Github PK

View Code? Open in Web Editor NEW
2.1K 36.0 319.0 19.49 MB

SD Maid 2/SE is Android's most thorough cleaning tool.

Home Page: https://play.google.com/store/apps/details?id=eu.darken.sdmse

License: GNU General Public License v3.0

Kotlin 98.82% Shell 0.45% AIDL 0.19% Ruby 0.06% Java 0.49%
android cleaner cleaner-app filemanager sdmaid system-cleaner

sdmaid-se's Introduction

SD Maid 2/SE

API Crowdin Code tests & eval Github Downloads Google Play Downloads

SD Maid 2/SE is actively being worked on and not feature complete. Feature requests are welcome!

SD Maid SE (aka SD Maid 2) is a file management tool for Android that specialises in maintenance. Its core purpose is freeing up space and removing unwanted data.

Features include:

  • Removing data that belongs to apps that are no longer installed (CorpseFinder)
  • Deleting expendable files, e.g. caches (AppCleaner)
  • User configurable filters for random files (SystemCleaner)
  • Scheduling actions (Scheduler)
  • Controling/disabling apps (AppControl)
  • Storage overview (StorageAnalyzer)
  • Find duplicate data (Deduplicator)
  • Root and Shizuku support

SD Maid SE is the successor to SD Maid. A complete rewrite, optimized for newer Android versions, with a focus on SD Maid's most popular features. More details about SD Maid vs SD Maid SE can be found in the FAQ.

Download

Source Status
Google Play
Google Play Beta
Github Releases GitHub release (latest SemVer including pre-releases)
F-Droid (IzzyOnDroid)

Support the project

SD Maid has no ads and doesn't sell your data.

Development is financed by individual user contributions, i.e. you buying the upgrade on Google Play or becoming a sponsor ❤️.

Get help

Screenshots

License

SD Maid SE's code is available under a GPL v3 license, this excludes:

  • SD Maid SE icons, logos, mascots, marketing materials and assets.
  • SD Maid SE animations and videos.
  • SD Maid SE documentation.
  • Google Play screenshots.
  • Google Play texts & descriptions.
  • Translations.

sdmaid-se's People

Contributors

chaoscalm avatar christantoan avatar d4rken avatar mithicspirit avatar yurtemre7 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sdmaid-se's Issues

Need instructions on activating accessibility service on Android 13+

After installing the app, I tried to activate accessibility service for sdmaid, but all I got is a "Restricted Settings" dialog,
I searched a bit and found out it's caused by Android 13, and I could remove such restriction from "App Info" page, but it was still confusing, can you add some instruction that extra action is required on Android 13? thanks.

ref: https://blog.esper.io/android-13-sideloading-restriction-harder-malware-abuse-accessibility-apis/

root and accessibility

I've given the app root access but it can't access as many file system locations as the original SD Maid can. I get filesystem errors when trying to clear files even though it has root.

Also, right now it doesn't appear to be able to leave the accessibility permissions turned off but still clear caches with root enabled. I'd prefer to leave accessibility turned off and just allow root permissions to access the data.

I'm able to do this with the original SD Maid.

Specific filters for the app Viber

DEEPL (by darken):
Here is a list of folders that are desirable to clean to save space.
Since the application is popular, I think that for some folders it is suitable to create specific filters in AppCleaner (in the window where there are separate filters for Telegram, WhatsApp, Threema, WeChat), so that the deletion does not happen immediately, but after a certain number of days. Or just so that the user has a choice to clear the folder or not, as some users will want to clear some folders, others will want to keep them.

/storage/emulated/0/Android/data/com.viber.voip/files/.converted_videos - when sending a large size video, it is compressed, this folder stores compressed copies, which are automatically deleted after about 10 days. After the folder is cleared, the video continues to play in the chat as the original video from the gallery is played. The user may want to clear the folder sooner, as sending a large number of videos can take up a lot of space in the folder. If you clear the folder before the contact is online, the videos will still be successfully delivered (stored on the server).

/storage/emulated/0/Android/data/com.viber.voip/files/.import - any types of files sent to Viber from other apps using the "share" item. Not deleted over time. Gradually the folder may grow to a large size. If the folder is cleared, I no longer have access to the sent files in chat, even if the files are still on the device. If you clear the folder before the contact is online, the videos are still successfully delivered.

/storage/emulated/0/Android/data/com.viber.voip/files/.image - received photos are saved here. If you save a photo in the chat, it is moved from this folder to the gallery; if you do not save it, it stays in the folder forever, it will not be deleted over time. If the folder is cleared, when you view the photo in the chat, it is loaded into it again.

/storage/emulated/0/Android/data/com.viber.voip/files/.video - received videos are saved here. If you save the video in the chat, it is moved from this folder to the gallery; if not saved, it stays in the folder forever, it is not deleted over time. Gradually, the folder can grow to a larger size. If you clear it, when you view it in chat, the video is loaded again.

/storage/emulated/0/Android/data/com.viber.voip/files/.gif - incoming gifs. If you save them to the gallery, they are moved from this folder to the gallery. If you clear the folder, when you click in the chat on the gif, it is downloaded again to the folder from the server. They are not deleted over time.

/storage/emulated/0/Android/data/com.viber.voip/files/.ptt - incoming and outgoing voice messages. Over time, they themselves are not deleted. If you clear the folder, only messages sent to me are downloaded from the server again (messages that I sent me are not downloaded).

/storage/emulated/0/Android/data/com.viber.voip/files/.vptt - incoming and outgoing video messages recorded by the built-in Viber function (video messages in a circle). Over time, they themselves are not deleted. If you clear the folder, only sent messages are downloaded from the server again

Здесь список папок, которые желательно очищать для экономии места.
Так как приложение популярное, я думаю что для некоторых папок подходит создать специфичные фильтры в AppCleaner (в окне, где находятся отдельные фильтры для Telegram, WhatsApp, Threema, WeChat), чтобы удаление происходило не сразу, а через определенное количество дней. Либо просто чтобы у пользователя был выбор очищать папку или нет, т.к. некоторые папки одни пользователи захотят очистить, другие захотят сохранить.

/storage/emulated/0/Android/data/com.viber.voip/files/.converted_videos — при отправке видео большого размера, оно сжимается, в этой папке хранятся сжатые копии, которые автоматически удаляются примерно через 10 дней. После очистки папки видео продолжает воспроизводиться в чате, так как воспроизводится оригинал видео из галереи. Возможно пользователь захочет очистить папку раньше, т.к. при отправке большого количества видео папка может занять много места. Если очистить папку до появления контакта в сети, видео все равно успешно доставятся (хранятся на сервере).

/storage/emulated/0/Android/data/com.viber.voip/files/.import — любые типы файлов, отправленные в Вайбер из других приложений с помощью пункта "поделиться". Не удаляются со временем. Постепенно папка может вырасти до большого размера. Если папку очистить, то у меня в чате к отправленным файлам больше нет доступа, даже если файлы ещё остались на устройстве. Если очистить папку до появления контакта в сети, видео все равно успешно доставятся.

/storage/emulated/0/Android/data/com.viber.voip/files/.image — сюда сохраняются полученные фото. Если в чате сохранить фото в галерею, оно перемещается из этой папки в галерею; если не сохранить, остаётся в папке навсегда, со временем не удаляется. Если папку очистить, при просмотре фото в чате оно загружается в нее снова.

/storage/emulated/0/Android/data/com.viber.voip/files/.video — сюда сохраняются полученные видео. Если в чате сохранить видео в галерею, оно перемещается из этой папки в галерею; если не сохранить, остаётся в папке навсегда, со временем не удаляется. Постепенно папка может вырасти до больших размеров. Если очистить, то при просмотре в чате видео загружается опять.

/storage/emulated/0/Android/data/com.viber.voip/files/.gif — входящие гифки. Если сохранить в галерею, перемещаются из этой папки в галерею. Если очистить папку, то при нажатии в чате на гифку, она опять загружается в папку с сервера. Со временем не удаляются.

/storage/emulated/0/Android/data/com.viber.voip/files/.ptt — входящие и исходящие голосовые сообщения. Со временем сами не удаляются. Если очистить папку, с сервера опять загружаются только сообщения отправленные мне (сообщения, которые отправил я мне не загружаются).

/storage/emulated/0/Android/data/com.viber.voip/files/.vptt — входящие и исходящие видеосообщения, записанные встроенной функцией Вайбера (видеосообщения в кружке). Со временем сами не удаляются. Если очистить папку, с сервера опять загружаются только сообщения отправленные мне (сообщения, которые отправил я мне не загружаются).

Force stop apps feature?

Should we add a feature to AppControl that allows force stopping of apps?

"TaskKillers" are bad, so this shouldn't be a "force stop all running apps".

What would be use-cases for mass force-stopping apps?

(question) Pro version

There will be a donation app (to unlock pro functions) on sd maid 2? Like on the original sd maid.

Scheduler starts at wrong time

I have set up the scheduler to run daily at 1am (UK time), but the App Cleaner runs at some unrelated time in the evening - see screenshot - and has done on several occasions, all without any prompting. The time it runs is roughly the same on each occasion.

Will try to catch it in the act, and provide a logcat.

Screenshot_20230404-195637_Trebuchet

Native app crash: Segmentation violation (invalid memory reference)

See some native crashes with unknown cause. The reported stacktrace is unfortunately not very helpful.

Pixel 3 @ Android 13:

SIGSEGV: Segmentation violation (invalid memory reference)

0 libart.so +0x200230 0x76c0139234
1 boot.oat +0x1ea66c  0x707e3670

OPPO CPH 1912 @ Android 8.1.0

SIGABRT: Abort program

0  libc.so +0x1d884               abort
1  libart.so +0x4532d4            art::Runtime::PreZygoteFork()
2  libart.so +0x54b278            android::base::LogMessage::~LogMessage()
3  libart.so +0x231794            art::gc::Verification::LogHeapCorruption(art::ObjPtr<art::mirror::Object>, art::MemberOffset, art::mirror::Object*, bool) const
4  libart.so +0x1c80cc            art::gc::collector::ConcurrentCopying::MarkNonMoving(art::mirror::Object*, art::mirror::Object*, art::MemberOffset)
5  libart.so +0x1c970c            0x7782263710
6  libart.so +0x48aa28            0x7782524a2c
7  libart.so +0x48ab10            0x7782524b14
8  libart.so +0x46c470            void art::StackVisitor::WalkStack<(art::StackVisitor::CountTransitions)1>(bool)
9  libart.so +0x486d44            void art::Thread::VisitRoots<false>(art::RootVisitor*)
10 libart.so +0x1c9270            0x7782263274
11 libart.so +0x35b848            0x77823f584c
12 libjavacore.so +0x2a470        0x777bbc3474
13 boot-core-libart.oat +0x30f0a8 oatexec

Samsung S23 @ Android 13

SIGSEGV: Segmentation violation (invalid memory reference)

0 [vdso] +0x848        __kernel_rt_sigreturn
1 libc.so +0xe1868     0x7f1d74186c
2 libutils.so +0x17cc0 android::Looper::pollInner(int)

Improvements to scheduler

I always felt like scheduler lacked a lot of features. Would love to see them implemented. Some ideas:

  • "Battery not lower than" setting with the ability to pick the percentage.

  • "Only when charging" checkbox (which should probably disable the previous setting when enabled)

Maybe it even makes sense to add the ability to launch a schedule via the intent (like in swift backup) from automation apps like tasker.

Место хранения debug log

Возможно debug log лучше хранить в Android/data 🤔 Тогда его можно будет повторно использовать.

Uninstall functionality

Should AppControl get a mass uninstall feature similar to what SD Maid 1 had?

With root it should work quite well. I didn't like the way it worked without root in SD Maid 1 though.

We could try to make use of the accessibility service to confirm mass deletion automatically...

In earlier Android versions, uninstalling system apps with root worked quite well, but broke down due to system partition design changing so much. I kinda dread that part... So I'm leaning to only target uninstall functionality for non-system apps.

CorpseFinder false positives for encrypted secondary user profiles

Spin off ticket from #44

Affects SD Maid v0.6.0+
Running the CorpseFinder with root on a device with multiple user profiles can yield false positives after a fresh boot.

If SD Maid is run from the primary user account, and a secondary user-account exists, it's possible that the secondary user credentials have not been entered yet, so the secondary storage is still encrypted and the filenames too.

So instead of
/data_mirror/data_ce/null/10/com.topjohnwu.magisk
we get something like
/data_mirror/data_ce/null/10/H3C2fAAAAAAVlFnADbp8tqbxVFSnoLNJjInBGpx7RqqpgU9YKhP+0A

eu.darken.sdmse_logfile_1680699762427.log.zip

Originally posted by @djocqer in #44 (comment)

Add reboot to scheduler

We should have the ability to schedule a full reboot after the cleaning process, as we had it with sd maid

Quick Access and scan and delete in one run not in sdmaid 2 while it was there in sdmaid 1

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is.

Mornings in Sweden are always very cold and I'm not an early bird.

Describe the solution you'd like
A clear and concise description of what you want to happen.

I would like it if SD Maid could make me coffee in the morning.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

I have considered making the coffee myself but both me and myself decided against it.

Describe why this would be in the interest of all users
Describe why this is not a niche feature, but would be a benefit for the majority of users.

Everyone enjoys getting a hot beverage on a cold morning.

Additional context
Add any other context or screenshots about the feature request here.

Screenshot_20230402-192008_SD Maid

Add above featire of sdmaid 1 in sdmaid 2

Feature Request: Clear App Data just like cache using accesibility service

Been a long term user with unlocker for pro.
Just like sdmaid clears cache by clicking Clear cache button in settings using accesibility

If its possible add feature where sdmaid clicks clear data button on non root devices

Sometimes i had need to reset all apps on my device by clearing data without formatting phone itself.

I have already requested this feature to dev via email in past but none progress have been made.

APK export?

Does it make sense to add a feature that allows exporting APKs of installed apps?

I think usefulness of this is diminishing due to Google pushing app bundles which are not easy to install again either.
Google won't grant SD Maid "install permission", so while SD Maid could export the files, it would require a different app to reinstall.

An exported app bundle on one device might also not contain all the necessary files that another device might require, but that would be downloaded if installed via Google Play. App bundles != Universal APKs...

AppCleaner ignores excluded app

Excluded app still shows in AppCleaner after scan is done and is getting cleaned if I press 'Clean'.

Huawei P30 Pro (VOG-L29)
Android 10
No root

Duplicate data detection

Should a feature similar to SD Maid 1's "Duplicates" feature should be re-added?

According to stats I had before I removed analytics, Duplicates was not a very popular feature.

It's still a good way to gain additional storage space, but has some issues:

  • There is no one "right" way to select duplicates which makes it more difficult to use.
  • Storage is super convoluted in Android and one of the toughest points was making sure that SD Maid didn't scan the same storage twice, just via different paths. This has NOT gotten easier with newer Android versions.
  • A lot of users expect a feature like this to detect "similar" images, e.g. a high res photo in your DCIM folder and a low res variant generated by a messenger. This is vastly more complex than comparing checksums to find exact matches.

Import exclusions from SD Maid 1

Would make it easier for users to switch.

Will need some way of detecting package vs path exclusions, which are treated the same SD Maid 1, but differentiated now.

Subscription is not working

I have purchased the lifitime subscription yesterday and app was showing as a PRO version. Today PRO label is disappeared and I see the opportunity to buy subscription again.... Latest beta of Sdmaid SE.

Feature Request: Save Directory Structure

Is your feature request related to a problem? Please describe.
Nope

Describe the solution you'd like
A feature like on SDM1

Describe alternatives you've considered
none yet

Describe why this would be in the interest of all users
I think this is for those users just want a structure of their directory(s) like me :3

Additional context
:3

Screenshot_2023-04-04-05-06-52-25_62f0e9ef2a35bdc7c62d39832d484c48

Remove unused icons

Code currently contains un-used icons from development that we can remove again.

Storage Analyzer feature

This issue about adding a "storage analyzer" feature similar to what SD Maid 1 had.

What would a basic feature set look like?

  • Scan accessible storage areas
  • Show consumed space sorted by size
  • Allow deletion of shown items

Potential issues:

  • Mixed storage access. Accessing all available storage through all available access methods and then combining it all into a single structure is tricky.
  • Memory limits. SD Maid 1 currently runs out of memory and crashes when scanning larger storage. We could possibly aggregate single files into a combined object so that we only track at directory level?

Shizuku support

It would be great if this app could have optional support for Shizuku (for non-root devices), which allows developers to use system APIs with elevated permissions using ADB. This requires the user to download the Shizuku app from Play or F-Droid and set up local ADB access using Wireless Debugging, so no PC is required (except on older Android versions).

Website: https://shizuku.rikka.app/
GitHub: https://github.com/RikkaApps/Shizuku

By using Shizuku to run custom code as the shell user (uid 2000), you basically inherit all (protected system) permissions the com.android.shell package has. Which allows doing stuff like:

  • Using android.permission.CLEAR_APP_USER_DATA and android.permission.CLEAR_APP_CACHE to clear caches & data much faster without using the accessibility service, which would also allow running that in the background
  • Unrestricted (fast) file access on Android 10+
  • Allow users to enable/disable apps in the 'AppControl' feature
  • Automatically set up & grant all the permissions (accessibility service, all files access, etc...)

[feature request] Whatsapp Business backup deletion

Hello,
First of thanks for developing this wonderful app! I will buy the pro in a few days too!

I'm using Whatsapp Business and I think the backups are in another location. It would be nice if the app would scan for these too (if it already doesnt) and delete the older ones!

Add history

A section with cleaning history should be implemented, as it is on SD maid

2 functions is slower than SDM1

Describe the bug
AppCleaner and SystemCleaner seem much slower here on SDM2 than SDM1

To Reproduce
Let run and see

Expected behavior
Atleast bit fast or really same speed like on SDM1

Smartphone (please complete the following information):

  • Device: Oppo A57 4G (2022) / OPPO CPH2387
  • OS: Android 12, ColorOS 12.1, Build CPH2387_11_A.30, with Security Patch Date March 5 2023
  • Root status: NOT ROOTED
  • SD Maid 2/SE version: v0.6.9-rc0

Debug log
Will Post one later.

Screenshots/Video

Additional context
I have a game that have many files and i have many files on my sd card (yes i still have sd card even I've just upgraded my phone from 16GB total internal storage to 128GB)
(Nice version name :3 too tho)

Bottom UI Element

The bottom UI element should display a round icon in the center. A similar UI is provided by the Wavelet app (see screenshot).

Screenshot_20230325-173515

Include root service output in debug logs

The current debug log only includes the log output from the main app process.
Root operations run in a different process and their log output is only available on ADB, when launched in debug mode.

While some of the root output is send back and logged, it could still make debugging some root related operations difficult.

Idea 1:
Write an extra log from the root process, set the permissions right and then include it in the final zip file.

Idea 2:
Two processes appending to the same logfile. This would probably cause corruption? 🤔

Where to send trash reports

На данный момент отчёты о найденном мусоре ещё можно отправлять через SD Maid 1?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.