Code Monkey home page Code Monkey logo

mahmoudgalal / zeearchiver-android Goto Github PK

View Code? Open in Web Editor NEW
72.0 5.0 10.0 12.71 MB

Zee is an efficient and simple to use Android Archiver and decompressor. It can decompress and compress from-to all the formats supported by the well known 7zip utility. Copyright © 2018 Mahmoud Galal , for support contact me:[email protected]

License: MIT License

Java 1.06% Makefile 0.80% C++ 85.70% C 11.05% Assembly 0.12% Kotlin 0.28% CMake 0.49% Shell 0.01% Pawn 0.01% Lua 0.11% QMake 0.37% NASL 0.01%
7zip 7z android zip archive java p7zip ndk encryption decompressor

zeearchiver-android's Introduction

ZeeArchiver


Zee is an efficient and simple to use Archiver and decompressor. it can decompress and compress from-to all the formats supported by the well known 7zip utility.
Copyright © 2018 Mahmoud Galal
For support contact me:[email protected]

How to Build:

First ,you have to compile the native part of the project,P7Zip,the repo comes with version 9.20.1 source.

  • Download Android NDK ,version r18b recommended
  • From the command line,browse to sub-directory "\p7zip_9.20.1\CPP\7zip\Android\jni" and invoke "ndk-build" The first native module "lib7z.so" get compiled for the armeabi-v7a ABI (You can add other ABIs if you want in application.mk file).
  • Copy the compiled "lib7z.so" module to the sub-directory ("/Prebuilt/armeabi-v7a/") under the repo .(If you targets other ABI then move to the appropriate folder under "/Prebuilt/..".
  • Open the ZeeArchiver project in android studio and start building the app.

Note that the app adds a small jni layer(libzeearchiver.so) over lib7z.so module to make use of the 7z library in a proper way for android.

Migrating to p7zip v16.02:

P7zip v16.02 adds alot of enhancements & fixes to the original port in addition to supporting Rar5 format.
To build the app against the newest P7zip version(stripped-down clone of v16.02 is added to this repo) , simply you have to build it separatly as before using the same instructions as above with some minor changes:

  • Build The Plugins:
    1- In your terminal, Browse to "p7zip_16.02/CPP/ANDROID/Format7zFree/jni/" to build 7z.so plugin using the ndk as above.
    2- In your terminal, Browse to "p7zip_16.02/CPP/7zip/Compress/Rar/jni/" to build Rar.so codec (for decompressing Rar archives) using the ndk as above.
    3- Copy the resulting 7z.so & Rar.so to the "/Prebuilt/" directory for the approperiate target architecture as above.
    4- Open the ZeeArchiver project in android studio and start building the app.

Features:

  • Supports the following formats:
    • Unpacking only: AR, ARJ, CAB, CHM, CPIO, CramFS, DMG, EXT, FAT, GPT, HFS, IHEX, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, QCOW2, RAR, RPM, SquashFS, UDF, UEFI, VDI, VHD, VMDK, WIM, XAR and Z.

    • Packing / unpacking:7z, XZ, BZIP2, GZIP, TAR, ZIP and WIM .

  • Supports AES-256 encryption in 7z and ZIP formats .
  • A built-in file browser.
  • Arabic Localization .



https://play.google.com/store/apps/details?id=com.mg.zeearchiver


The App is published at Amazon store:
https://www.amazon.com/dp/B07K5F9DCR/


How to Extract:
Extract


How to Compress:
Compress

License:

MIT

zeearchiver-android's People

Contributors

mahmoudgalal 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

Watchers

 avatar  avatar  avatar  avatar  avatar

zeearchiver-android's Issues

Extract error

hello admin. @mahmoudgalal
I get error below. any ideas to fix the error. Please check. thank you

libc++abi: terminating with uncaught exception of type CArchiveCommandLineException
A/libc: Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 17384 (RxCachedThreadS), pid 16997

defaultConfig {
       ndk {
           abiFilters 'armeabi-v7a', 'arm64-v8a'
       }
       vectorDrawables.useSupportLibrary = true
       testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
   }

I use NDK version: ndkVersion '21.4.7075529'

Screen Shot 2022-06-11 at 21 49 42

Add this app to fdroid

The title says it all. It would be really awesome to add this app to the f-droid repository.

E_INVALIDARG error when create archive file

@mahmoudgalal
Hello admin.

When I try new version "Migrating to p7zip v16.02"
I cann't create archive file.
I get error E_INVALIDARG. Please check. thank you

    Error, SystemException: E_INVALIDARG                
    Error, kFatalError:-2147024809

This is CInfo when create archive

      UpdateMode = EEnum.kAdd;
       SolidIsSpecified = false;
       MultiThreadIsAllowed = true;
       SolidBlockSize = 0;
       NumThreads = -1;
       VolumeSizes = null;
       Level = 5;
       Method = "Deflate";
       Dictionary = -1;
       OrderMode = false;
       Order = 32;
       Options = "";
       EncryptionMethod = "AES256"; //ZIPPro is ""
       SFXMode = false;
       OpenShareForWrite = false;
       ArchiveName = outputPath; //'/storage/emulated/0/DCIM/Screenshots.zip'
       CurrentDirPrefix = null;
       KeepName = false;
       FormatIndex = 41;
       Password = password;
       EncryptHeadersIsAllowed = false;
       EncryptHeaders = false;

JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8

Hello admin @mahmoudgalal

Please check. thank you very much.

A/pressfolder.de: java_vm_ext.cc:579] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal continuation byte 0x3f
    java_vm_ext.cc:579]     string: 'can not open output file c:/storage/emulated/0/Test/De 1/De/DETHI AVCN1 -DH (thuy)/PH??NG A?N CH�?M ?�? THI ANH V?N CHUY�N NGA?NH.doc'
    java_vm_ext.cc:579]     input: '0x63 0x61 0x6e 0x20 0x6e 0x6f 0x74 0x20 0x6f 0x70 0x65 0x6e 0x20 0x6f 0x75 0x74 0x70 0x75 0x74 0x20 0x66 0x69 0x6c 0x65 0x20 0x63 0x3a 0x2f 0x73 0x74 0x6f 0x72 0x61 0x67 0x65 0x2f 0x65 0x6d 0x75 0x6c 0x61 0x74 0x65 0x64 0x2f 0x30 0x2f 0x5a 0x69 0x70 0x45 0x78 0x74 0x72 0x61 0x63 0x74 0x6f 0x72 0x2f 0x45 0x78 0x74 0x72 0x61 0x63 0x74 0x65 0x64 0x2f 0x44 0x65 0x20 0x31 0x2f 0x44 0x65 0x2f 0x44 0x45 0x54 0x48 0x49 0x20 0x41 0x56 0x43 0x4e 0x31 0x20 0x2d 0x44 0x48 0x20 0x28 0x74 0x68 0x75 0x79 0x29 0x2f 0x50 0x48 0x3f 0x3f 0x4e 0x47 0x20 0x41 0x3f 0x4e 0x20 0x43 0x48 0xc2 <0x3f> 0x4d 0x20 0x3f 0xca 0x3f 0x20 0x54 0x48 0x49 0x20 0x41 0x4e 0x48 0x20 0x56 0x3f 0x4e 0x20 0x43 0x48 0x55 0x59 0xca 0x4e 0x20 0x4e 0x47 0x41 0x3f 0x4e 0x48 0x2e 0x64 0x6f 0x63'
    java_vm_ext.cc:579]     in call to NewStringUTF
    java_vm_ext.cc:579]     from int com.mg.zeearchiver.Archive.extractArchive(java.lang.String, java.lang.String, com.mg.zeearchiver.ExtractCallback)

I attach my file error. Please check. thank you very much

test.zip

I try use lib https://github.com/hzy3774/AndroidP7zip . It worked good.

Is there a license intended for this work?

Hi there! I notice that there is currently no license listed in this repo, although the README file does encourage people to build the software from source.

Unfortunately, without a free software or open source license, the code remains "all rights reserved" and I do not have the legal right to build this software as the instructions demonstrate. Is that the authors' intention?

For more details about the results of not having a license, you can read more at: https://choosealicense.com/no-permission/

Also the main page at https://choosealicense.com/ can help with choosing an existing free software or open source license, if that is desired.

Thanks for your consideration!

ZeeArchiver: O projeto vai continuar em 2024?

Estou escrevendo isso porque o projeto tem um grande potencial, onde não existe nenhum aplicativo como este sendo de código aberto com o propósito de compactar e descompactar arquivos e que acredito que muitas pessoas que o utilizam querem que o projeto continue dando muito frutos e sempre tendo muitas novidades. Por favor, se puder me responder, ficarei muito grato. E que 2024 seja o ano de paz para todos nós ✌️.

Support get list item in a archive

Hello admin @mahmoudgalal

I used method listArchive2 in Archive.class like below.
It worked fine in some cases

public class Archive {
....
public List<ArchiveItemsList.ArchiveItem> getArchiveItemsList(String filePath) {
        ArchiveItemsList archiveItemsList = new ArchiveItemsList();
        try {
            listArchive2(filePath, archiveItemsList);
            return archiveItemsList.getItems();
        } catch (Exception e) {
            return new ArrayList<>();
        }
    }
}

But I get an error in the following case:

Step 1: Call method getArchiveItemsList()
===> OK. Worked. return list item in archive. In my case size equals 3
Step 2: Bring the app to the background state. (Click button HardwareKey in device -> State is background -> Reopen app -> State is foreground )
Step 3: Call method getArchiveItemsList()
===> It worked. But litem list is duplicated ==> Size = 6
Step 4: Repeat step 2 -> Step 3 -> App crash
==> Get error

Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 24702 (RxCachedThreadS), pid 5003 (pressfolder.dev)

Please check. thank you very much

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.