pmt: fix some 2.3.0 missings
This commit is contained in:
91
README.md
Executable file
91
README.md
Executable file
@@ -0,0 +1,91 @@
|
|||||||
|
## Partition Manager (pmt)
|
||||||
|
|
||||||
|
This binary C is for manage partitions of android devices.
|
||||||
|
It offers a lot of options. I will place these below. But first let me talk about the operation...
|
||||||
|
|
||||||
|
#### Presented arguments (options)
|
||||||
|
|
||||||
|
```
|
||||||
|
Usage: pmt [OPTIONS] backup PARTITION [OUTPUT] [OPTIONS]...
|
||||||
|
or: pmt [OPTIONS] flash FILE PARTITION [OPTIONS]...
|
||||||
|
or: pmt [OPTIONS] format FILE_SYSTEM[ext/2/3/4] PARTITION [OPTIONS]...
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-l, --logical It is meant to determine whether the target partition is logical.
|
||||||
|
-c, --context It is meant to specify a custom /dev context. Only classic partitions (default: /dev/block/by-name).
|
||||||
|
-p, --list List partitions.
|
||||||
|
-s, --silent Information and warning messages are silenced in normal work.
|
||||||
|
-f, --force Force mode. Some things are ignored.
|
||||||
|
-S, --set-lang Set current language.
|
||||||
|
-v, --version See version.
|
||||||
|
--help See this help message.
|
||||||
|
-L, --license See license.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
pmt backup boot_a -c /dev/block/platform/bootdevice/by-name
|
||||||
|
pmt flash /sdcard/twrp/boot.img boot_a -c /dev/block/platform/bootdevice/by-name
|
||||||
|
pmt format ext4 system_a --logical
|
||||||
|
pmt -c /dev/block/platform/bootdevice/by-name --list
|
||||||
|
|
||||||
|
Report bugs to <t.me/YZBruh>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Some notes
|
||||||
|
|
||||||
|
- Feel free to ask any questions you want.
|
||||||
|
- Packages are available in publications.
|
||||||
|
- If the logical partition flag is not used, a classic partition is tried to be processing by default.
|
||||||
|
- [Click to see special version changes](https://github.com/YZBruh/pbt/blob/2.3.0/CHANGELOG.md)
|
||||||
|
- Let me know your suggestions!
|
||||||
|
|
||||||
|
### How is it built?
|
||||||
|
Android NDK is required to build.
|
||||||
|
- [Download](https://developer.android.com/ndk/downloads) and extract the NDK package.
|
||||||
|
- Clone this repository. And get access to it.
|
||||||
|
```
|
||||||
|
git clone https://github.com/YZBruh/pbt -b 2.3.0 ./pmt
|
||||||
|
cd pmt
|
||||||
|
```
|
||||||
|
- Set the NDK working directory variable.
|
||||||
|
```
|
||||||
|
export NDK_PROJECT_PATH=$(pwd)
|
||||||
|
```
|
||||||
|
- Go to the NDK directory and start the construction
|
||||||
|
```
|
||||||
|
./ndk-build
|
||||||
|
```
|
||||||
|
- The output files will be inside the `pmt` folder. Binaries are available in two architectures within the `libs` folder. `arm64-v8a` (64-bit) and `armeabi-v7a` (32-bit).
|
||||||
|
```
|
||||||
|
pmt/
|
||||||
|
|
|
||||||
|
________________|________________
|
||||||
|
| | | |
|
||||||
|
jni/ debutils/ obj/ libs/
|
||||||
|
|
|
||||||
|
__________|__________
|
||||||
|
| |
|
||||||
|
arm64-v8a/ armeabi-v7a/
|
||||||
|
| |
|
||||||
|
pmt pmt
|
||||||
|
```
|
||||||
|
- For the make installable debian package make-deb.sh use the script. It can be created within two architectures. Use the script flags correctly: arm64-v8a, armeabi-v7a. If you want to process with root, add sudo as the second argument. If you don't want, use no-sudo or leave it blank
|
||||||
|
|
||||||
|
```
|
||||||
|
--Usage--
|
||||||
|
|
||||||
|
./make-deb.sh [arm64-v8a, armeabi-v7a] [sudo, no-sudo, <blank>]
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
chmod 777 utils.sh
|
||||||
|
|
||||||
|
# for making 64-bit package
|
||||||
|
./utils.sh make-deb arm64-v8a
|
||||||
|
|
||||||
|
# for making 32-bit package
|
||||||
|
./utils.sh make-deb armeabi-v7a
|
||||||
|
```
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
If you want to change something, take a look at the configuration. You can change him.
|
||||||
|
it is located in the `jni/config` folder. His name is `env.mk`. I gave the information in the file. You can ask more.
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
Source: pmt
|
Source: pmt
|
||||||
Package: pmt
|
Package: pmt
|
||||||
Version: 2.1.0
|
Version: 2.3.0
|
||||||
Architecture: arm
|
Architecture: arm
|
||||||
Description: pmt is for reading, writing and formatting partitions of android devices
|
Description: pmt is for reading, writing and formatting partitions of android devices
|
||||||
Section: misc
|
Section: misc
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
Source: pmt
|
Source: pmt
|
||||||
Package: pmt
|
Package: pmt
|
||||||
Version: 2.1.0
|
Version: 2.3.0
|
||||||
Architecture: aarch64
|
Architecture: aarch64
|
||||||
Description: pmt is for reading, writing and formatting partitions of android devices
|
Description: pmt is for reading, writing and formatting partitions of android devices
|
||||||
Section: misc
|
Section: misc
|
||||||
|
|||||||
@@ -38,8 +38,17 @@ include $(BUILD_STATIC_LIBRARY)
|
|||||||
|
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
|
LOCAL_MODULE := libpmt_error
|
||||||
|
LOCAL_SRC_FILES := error.c
|
||||||
|
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
||||||
|
LOCAL_CFLAGS := $(PMT_CFLAGS)
|
||||||
|
|
||||||
|
include $(BUILD_STATIC_LIBRARY)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
LOCAL_MODULE := libpmt_partitiontool
|
LOCAL_MODULE := libpmt_partitiontool
|
||||||
LOCAL_SRC_FILES := partition_tool.c
|
LOCAL_SRC_FILES := partitiontool.c
|
||||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
||||||
LOCAL_CFLAGS := $(PMT_CFLAGS)
|
LOCAL_CFLAGS := $(PMT_CFLAGS)
|
||||||
|
|
||||||
@@ -61,13 +70,13 @@ LOCAL_SRC_FILES := \
|
|||||||
pmt.c \
|
pmt.c \
|
||||||
versioner.c \
|
versioner.c \
|
||||||
tools.c \
|
tools.c \
|
||||||
error.c \
|
|
||||||
lang_tools.c \
|
lang_tools.c \
|
||||||
languages.c \
|
languages.c \
|
||||||
docs.c
|
docs.c
|
||||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
|
||||||
LOCAL_STATIC_LIBRARIES := \
|
LOCAL_STATIC_LIBRARIES := \
|
||||||
libpmt_root \
|
libpmt_root \
|
||||||
|
libpmt_error \
|
||||||
libpmt_partitiontool \
|
libpmt_partitiontool \
|
||||||
libpmt_list
|
libpmt_list
|
||||||
LOCAL_CFLAGS := $(PMT_CFLAGS)
|
LOCAL_CFLAGS := $(PMT_CFLAGS)
|
||||||
|
|||||||
102
jni/Makefile
Executable file
102
jni/Makefile
Executable file
@@ -0,0 +1,102 @@
|
|||||||
|
# By YZBruh
|
||||||
|
|
||||||
|
# Copyright 2024 Partition Manager
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
#####
|
||||||
|
# sub-make for building package
|
||||||
|
#####
|
||||||
|
|
||||||
|
THIS_IS = src
|
||||||
|
|
||||||
|
include ../Makefile.inc
|
||||||
|
|
||||||
|
ifeq ($(INC_OLDENV),true)
|
||||||
|
include ../config/oldenv.mk
|
||||||
|
endif
|
||||||
|
|
||||||
|
define make_obj
|
||||||
|
$(eval OBJ := $(1:.c=.o))
|
||||||
|
$(call m_stat,`basename $(SOURCE_DIR)`/`basename $(OBJ)`)
|
||||||
|
$(CC) $(CFLAGS) -c $1 || exit 1;
|
||||||
|
endef
|
||||||
|
|
||||||
|
define make_executable
|
||||||
|
printf " - Making executable file...\n"; \
|
||||||
|
$(CC) $(CFLAGS) -L$(SOURCE_DIR) -lpmt_root -lpmt_lister -lpmt_partitiontool -o $(TARGET) pmt.o error.o docs.o versioner.o lang_tools.o languages.o || exit 1;
|
||||||
|
endef
|
||||||
|
|
||||||
|
define make_staticlib
|
||||||
|
$(call m_stat,$(1))
|
||||||
|
$(AR) rcs "$1" "$2" || exit 1;
|
||||||
|
endef
|
||||||
|
|
||||||
|
# all target for building
|
||||||
|
all:
|
||||||
|
@rm -f ../config/oldenv.mk; \
|
||||||
|
printf " ---- Partition Manager Builder ---- \n\n"; \
|
||||||
|
printf " - Version: $(VERSION)\n"; \
|
||||||
|
printf " - Version code: $(VERSION_CODE)\n\n"; \
|
||||||
|
printf " -------------------------------- \n\n"; \
|
||||||
|
abort_build() { \
|
||||||
|
if [ -d "$(PACKAGE_DIR)" ]; then \
|
||||||
|
rm -rf "$(PACKAGE_DIR)"; \
|
||||||
|
fi; \
|
||||||
|
if [ -d "$(BINARY_DIR)" ]; then \
|
||||||
|
rm -rf "$(BINARY_DIR)"; \
|
||||||
|
fi; \
|
||||||
|
if [ -d "$(STATICLIB_DIR)" ]; then \
|
||||||
|
rm -rf "$(STATICLIB_DIR)"; \
|
||||||
|
fi; \
|
||||||
|
exit 1; \
|
||||||
|
}; \
|
||||||
|
if [ -f $(SOURCE_DIR)/docs.o ]; then \
|
||||||
|
printf " - Please clean up before you build it.\n\n"; \
|
||||||
|
printf " ----------------------------------- \n"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
printf " - Building objects...\n"; \
|
||||||
|
sleep 2; \
|
||||||
|
$(foreach csrc,$(SRCS),$(call make_obj, $(csrc)))
|
||||||
|
$(call mdir,$(OUT_DIR))
|
||||||
|
$(call mdir,$(BINARY_DIR))
|
||||||
|
$(call mdir,$(PACKAGE_DIR))
|
||||||
|
$(call mdir,$(STATICLIB_DIR))
|
||||||
|
printf " - Building static libraries...\n";
|
||||||
|
$(call make_staticlib,libpmt_root.a,root.o)
|
||||||
|
$(call make_staticlib,libpmt_lister.a,listpart.o)
|
||||||
|
$(call make_staticlib,libpmt_partitiontool.a,partition_tool.o)
|
||||||
|
sleep 1;
|
||||||
|
$(call make_executable)
|
||||||
|
sleep 1;
|
||||||
|
mv pmt $(BINARY_DIR) || abort_build; \
|
||||||
|
mv *.a $(STATICLIB_DIR) || abort_build; \
|
||||||
|
printf " - Generating xz package...\n"; \
|
||||||
|
cp $(BINARY_DIR)/pmt $(PACKAGE_DIR) || abort_build; \
|
||||||
|
xz $(PACKAGE_DIR)/pmt || abort_build; \
|
||||||
|
sleep 1; \
|
||||||
|
mv $(PACKAGE_DIR)/pmt.xz $(PACKAGE_DIR)/pmt-$(ARCH).xz || abort_build; \
|
||||||
|
printf " - Success\n\n"; \
|
||||||
|
sleep 1; \
|
||||||
|
printf " ----------------------------------- \n"
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean:
|
||||||
|
$(eval STATICLIBS = $(wildcard $(SOURCE_DIR)/*.a))
|
||||||
|
$(eval OBJS = $(wildcard $(SOURCE_DIR)/*.o))
|
||||||
|
$(info Cleaning files...)
|
||||||
|
$(foreach obj,$(OBJS), $(call m_stat_nn,src/$(shell basename $(obj))) $(call erase,$(obj)))
|
||||||
|
$(foreach lib,$(STATICLIBS),$(call m_stat_nn,src/$(shell basename $(lib))) $(call erase,$(lib)))
|
||||||
|
|
||||||
|
# end
|
||||||
@@ -18,6 +18,20 @@
|
|||||||
|
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
|
|
||||||
|
#include <android/ndk-version.h>
|
||||||
|
|
||||||
|
#if __NDK_MINOR__ == 1
|
||||||
|
#define __NDK_MINOR_STATUS__ "b"
|
||||||
|
#else
|
||||||
|
#define __NDK_MINOR_STATUS__ ""
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __NDK_BETA__ == 1 || __NDK_BETA__ == 2
|
||||||
|
#define __NDK_BETA_STATUS__ "beta"
|
||||||
|
#else
|
||||||
|
#define __NDK_BETA_STATUS__ ""
|
||||||
|
#endif
|
||||||
|
|
||||||
/* versioning */
|
/* versioning */
|
||||||
#define PMT_MAJOR 2
|
#define PMT_MAJOR 2
|
||||||
#define PMT_MINOR 3
|
#define PMT_MINOR 3
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ struct pmt_langdb_general en = {
|
|||||||
.expected_flash_arg = "Expected flash argument 2, retrieved",
|
.expected_flash_arg = "Expected flash argument 2, retrieved",
|
||||||
.expected_format_arg = "Expected format argument 2, retrieved",
|
.expected_format_arg = "Expected format argument 2, retrieved",
|
||||||
.missing_operand = "missing operand",
|
.missing_operand = "missing operand",
|
||||||
.multiple_wiewers = "Multiple wiewers cannot be used at the same line.",
|
.multiple_wiewers = "Multiple viewers cannot be used at the same line.",
|
||||||
.common_symbol_rule = "When entering the attached argument of an option, an argument of another option type cannot be used. In short, the rule is: there can be no '-' at the beginning of the attached argument.",
|
.common_symbol_rule = "When entering the attached argument of an option, an argument of another option type cannot be used. In short, the rule is: there can be no '-' at the beginning of the attached argument.",
|
||||||
.req_part_name = "Required partition name.",
|
.req_part_name = "Required partition name.",
|
||||||
.part_not_found = "Partition not found!",
|
.part_not_found = "Partition not found!",
|
||||||
@@ -155,7 +155,7 @@ struct pmt_langdb_docs tr_docs = {
|
|||||||
.docs_strs_l2 = "[SEÇENEKLER] flash DOSYA BÖLÜM [SEÇENEKLER]...",
|
.docs_strs_l2 = "[SEÇENEKLER] flash DOSYA BÖLÜM [SEÇENEKLER]...",
|
||||||
.docs_strs_l3 = "[SEÇENEKLER] format DOSYA_SİSTEMİ[ext/2/3/4] BÖLÜM [SEÇENEKLER]...",
|
.docs_strs_l3 = "[SEÇENEKLER] format DOSYA_SİSTEMİ[ext/2/3/4] BÖLÜM [SEÇENEKLER]...",
|
||||||
.docs_strs_l4 = "Seçenekler",
|
.docs_strs_l4 = "Seçenekler",
|
||||||
.docs_strs_l5 = "Bu seçeneği kullanarak mantıksal (logical) bir bölümün yedekleneceğini belirtebilirsiniz.",
|
.docs_strs_l5 = "Bu seçeneği kullanarak mantıksal (logical) bir bölümle işlem yapılacağını belirtebilirsiniz.",
|
||||||
.docs_strs_l6 = "Bu seçeneği kullanarak özel /dev bağlamı belirtebilirsiniz. Sadece normal (mantıksal olmayan) bölümler içindir (Varsayılan: /dev/block/by-name).",
|
.docs_strs_l6 = "Bu seçeneği kullanarak özel /dev bağlamı belirtebilirsiniz. Sadece normal (mantıksal olmayan) bölümler içindir (Varsayılan: /dev/block/by-name).",
|
||||||
.docs_strs_l7 = "Bölümler listelenir.",
|
.docs_strs_l7 = "Bölümler listelenir.",
|
||||||
.docs_strs_l8 = "Bilgi ve uyarı mesajları susturulur.",
|
.docs_strs_l8 = "Bilgi ve uyarı mesajları susturulur.",
|
||||||
|
|||||||
@@ -231,7 +231,7 @@ int main(int argc, char* argv[])
|
|||||||
return 1;
|
return 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
printf("%s: %s [backup] flash] [format] [-l | --logical] [-c | --context] [-D | --list] [-v | --version] [--help] [-L | --license]\n", current->usage_head, argv[0]);
|
printf("%s: %s [backup] [flash] [format] [-l | --logical] [-c | --context] [-D | --list] [-v | --version] [--help] [-L | --license]\n", current->usage_head, argv[0]);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ void version(void)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__clang__)
|
#if defined(__clang__)
|
||||||
printf("%s: clang %d.%d.%d\n", current->compiler_str, __clang_major__, __clang_minor__, __clang_patchlevel__);
|
printf("%s: clang %d.%d.%d (NDK r%d%s %s)\n", current->compiler_str, __clang_major__, __clang_minor__, __clang_patchlevel__, __NDK_MAJOR__, __NDK_MINOR_STATUS__, __NDK_BETA_STATUS__);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
printf("%s\n", current->see_license);
|
printf("%s\n", current->see_license);
|
||||||
@@ -54,4 +54,4 @@ void version(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* end of code */
|
/* end of code */
|
||||||
Reference in New Issue
Block a user