Hi again XDA members!
This time I bring you a project to make easier and a little more attractive the task of backing up all our files. All included actions of the whole project were specifically for my phone and me (personalized), but of course you can customize yours.
In short, what it does is, as far as possible, automate all backup tasks you can have to perform on your phone like: WhatsApp, Multimedia, Browser and other kind of files; also you could include not only files but apps settings, APKs... The backing up process is performed by the 'FolderSync' app (plug-in on Tasker), followed by other side plug-ins that provide some extra features.
PROFILES (x1)
Code:
[COLOR="Blue"]Backup Date[/COLOR]
[U]Day[/U]:The 1st or 15th
[U]Time[/U]: From 00:00 To 00:15
TASKS (x3)
Code:
[COLOR="Blue"]Device Backup[/COLOR]
[U]A1[/U]: Vibrate [ Time:1000 ]
[U]A2[/U]: Wait [ MS:250 Seconds:1 Minutes:0 Hours:0 Days:0 ]
[U]A3[/U]: Vibrate [ Time:1000 ]
[U]A4[/U]: Copy File [ From:Tasker/Files/Device Backup/TestFile.txt To:Tasker/Files/Device Backup/TestDir/TestDir Use Root : Off ]
[U]A5[/U]: Run Shell [ Command:settings put global policy_control immersive.status=* Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[U]A6[/U]: AutoInput Modes [ Configuration:Gestures: Enable Timeout (Seconds):0 ]
[U]A7[/U]: Show Scene [ Name:Device Backup Display As : Overlay, Blocking, Full Window Horizontal Position:100 Vertical Position:100 Animation:System Show Exit Button : Off Continue Task Immediately : On ]
[U]A8[/U]: Secure Settings [ Configuration:Screen & Keyboard Lights On 1 Second Timeout (Seconds):0 ]
[U]A9[/U]: Variable Set [ Name:%volmultimedia To:%VOLM Do Maths : Off Append : Off ] If [ %SILENT !~ vibrate & %INTERRUPT !~ none/priority ]
[U]A10[/U]: Media Volume [ Level:15 Display : Off Sound : Off ] If [ %SILENT !~ vibrate & %INTERRUPT !~ none/priority ]
[U]A11[/U]: Say [ Text:The device's backup has started. Do not touch the device until it finishes. Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus : On Network : Off Continue Task Immediately:eek:ff ] If [ %SILENT !~ vibrate & %INTERRUPT !~ none/priority ]
[U]A12[/U]: Media Volume [ Level:%volmultimedia Display : Off Sound : Off ] If [ %SILENT !~ vibrate & %INTERRUPT !~ none/priority ]
[U]A13[/U]: Perform Task [ Name:Device Backup (list) Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop : Off ]
[U]A14[/U]: Test File [ Type:Size Data:Tasker/Files/Device Backup/TestDir/TestDir Store Result In:%tempresult Use Root : Off ]
[U]A15[/U]: Wait [ MS:0 Seconds:10 Minutes:0 Hours:0 Days:0 ] If [ %tempresult neq 0 ]
[U]A16[/U]: Goto [ Type:Action Number Number:14 Label: ] If [ %tempresult neq 0 ]
[U]A17[/U]: Goto [ Type:Action Number Number:18 Label: ] If [ %tempresult eq 0 ]
[U]A18[/U]: Vibrate [ Time:1000 ]
[U]A19[/U]: Wait [ MS:250 Seconds:1 Minutes:0 Hours:0 Days:0 ]
[U]A20[/U]: Vibrate [ Time:1000 ]
[U]A21[/U]: Show Scene [ Name:Device Backup 2 Display As : Overlay, Blocking, Full Window Horizontal Position:100 Vertical Position:100 Animation:System Show Exit Button : Off Continue Task Immediately : On ]
[U]A22[/U]: Destroy Scene [ Name:Device Backup ]
[U]A23[/U]: Secure Settings [ Configuration:Screen & Keyboard Lights On 1 Second Timeout (Seconds):0 ]
[U]A24[/U]: Variable Set [ Name:%volmultimedia To:%VOLM Do Maths : Off Append : Off ] If [ %SILENT !~ vibrate & %INTERRUPT !~ none/priority ]
[U]A25[/U]: Media Volume [ Level:15 Display : Off Sound : Off ] If [ %SILENT !~ vibrate & %INTERRUPT !~ none/priority ]
[U]A26[/U]: Say [ Text:Copying files has finished. Starting to compress files. Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus : On Network : Off Continue Task Immediately : Off ] If [ %SILENT !~ vibrate & %INTERRUPT !~ none/priority ]
[U]A27[/U]: Media Volume [ Level:%volmultimedia Display : Off Sound : Off ] If [ %SILENT !~ vibrate & %INTERRUPT !~ none/priority ]
[U]A28[/U]: Perform Task [ Name:Device Backup (compress) Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop : Off ]
[U]A29[/U]: Vibrate [ Time:1000 ]
[U]A30[/U]: Wait [ MS:250 Seconds:1 Minutes:0 Hours:0 Days:0 ]
[U]A31[/U]: Vibrate [ Time:1000 ]
[U]A32[/U]: Run Shell [ Command:settings put global policy_control immersive.status=null Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[U]A33[/U]: AutoInput Modes [ Configuration:Gestures: Disable Timeout (Seconds):0 ]
[U]A34[/U]: Destroy Scene [ Name:Device Backup 2 ]
[U]A35[/U]: Variable Set [ Name:%volmultimedia To:%VOLM Do Maths : Off Append : Off ] If [ %SILENT !~ vibrate & %INTERRUPT !~ none/priority ]
[U]A36[/U]: Media Volume [ Level:15 Display : Off Sound : Off ] If [ %SILENT !~ vibrate & %INTERRUPT !~ none/priority ]
[U]A37[/U]: Say [ Text:Backup has finished. Engine:Voice:default:default Stream:3 Pitch:5 Speed:5 Respect Audio Focus : On Network : Off Continue Task Immediately : Off ] If [ %SILENT !~ vibrate & %INTERRUPT !~ none/priority ]
[U]A38[/U]: Media Volume [ Level:%volmultimedia Display : Off Sound : Off ] If [ %SILENT !~ vibrate & %INTERRUPT !~ none/priority ]
[U]A39[/U]: Stop [ With Error : Off Task: ]
[COLOR="Blue"]Device Backup (list)[/COLOR]
[U]A1[/U]: FolderSync [ Configuration:TestBackupOnly;;;SYNC Timeout (Seconds):0 ]
[COLOR="Blue"]Device Backup (compress)[/COLOR]
[U]A1[/U]: Run Shell [ Command:cd /xxx && tar -cf xxx_%DATE.xxx "$$$" && gzip -x xxx_%DATE.xxx && cd "###" && rm -r * .* ; cd /xxx && mv -f xxx_%DATE.xxx.gz "€€€" Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: Continue Task After Error : On ]
SCENES (x2)
Code:
[B]Device Backup[/B]
-----------------------------------------------
No Actions are performed, just displayed info.
[B]Device Backup (2)[/B]
-----------------------------------------------
No Actions are performed, just displayed info.
SCREENSHOTS
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
DEMOSTRATION
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ABOUT THE PROJECT
· There are available two ways by you can import the project (profiles, tasks, scenes). One is by just importing it using the file on "projects" folder, it will import the whole project at once; the other, by importing it "part-by-part". The 'Files' folder (if included) have to be ALWAYS copied to Tasker directory.
· All scenes are adjusted to work on 1280x720 device (LG K10). You'll have to resize them to fit it on yours.
· For extra features will be necessary to install these apps/plug-ins too: AutoInput, FolderSync, Secure Settings (or try looking for shell code).
· I use this task to back up my personal info but you can decide what you want to save by your own.
· As the task has a loop process (A14-A16) to be more accurate, I set up the time to 10 seconds but you can change it by your own. (take into account that as low as the number is, the task will be more accurate but will use more CPU power and drain battery faster)
· To give you an example for the action of the task 'Device Buckup (compress)': cd /storage/external_SD/BACKUP && tar -cf CallRecorder_%DATE.rar "Call Recorder" && gzip -6 CallRecorder_%DATE.rar && cd "Call Recorder" && rm -r * .* ; cd /storage/external_SD/BACKUP && mv -f CallRecorder_%DATE.rar.gz "Call Recorder". It works on external storage (SD Card), and backs up the Call Recorder folder.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
My Tasker PROJECTS & TASKS
--> [PROJECT] Android TTS Assistant (interactive & multilingual)
--> [PROJECT] Anti-Theft System
--> [PROJECT] Call Recorder
--> [PROJECT] High temperature warning device
--> [TASK] Auto-Switch Keyboard(s)
--> [TASK] Talking Clock
Tasker Chat Groups
--> Tasker on WhatsApp
--> Tasker on Telegram
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
If you liked the project. . .
. . . and you decide to invite me to a coffee, I would be very greatful to you ;P
Account: [email protected]
New: the demo video has been uploaded!
NEW VERSION --> Automate Backups v1.1
Changelog
- Improved time task completion (more accurate)
- Some action labels has been rewritten
Thanks
· hoopiger, to help with the idea of the loop process.
NEW VERSION --> Automate Backups v1.2
Changelog
- New scene for compressing files + Updated scenes (icons & text)
- Compressing exported files process has been fully automated
- For compressing files operation you can:
-- select type of exported container (.zip, .rar, .tar)
-- select compression level (from 1 to 9) [.gz]
-- select export path folder
- Reworked main tree task + Two new tasks: 'list' & 'compress'
- Reworked audio files + 8 new voices added
- Some action labels rewritten
- Optional actions disabled by default (user request)
NEW VERSION --> Automate Backups v1.3
Changelog
- Fixed backup loop after restart the device within profile time (now need calculation of start and end of process)
- Edited texts (tasks labels)
- Reworked main tree task ("Backup")
- Deleted audio files (not necessary) [TTS engine as default]
- New loading icon
Now you can import projects/tasks with just one step: read the section 'ABOUT THE PROJECT'.
Video unavailable
CrashOverride93 said:
New: the demo video has been uploaded!
Click to expand...
Click to collapse
Video is unfortunately not online anymore..
Is this current?
Still valid, working?
Related
I am working on something, been playing in the Kernel+initramfs corner all day.
Finally got the tab to boot, even if it doesnt draw a UI, its past the Bootlooping.
Problem is, I just dont understand what some of this stuff means, i am pretty green on the kernel level, and porting.
So, can yall pitch in, help me figure out what this stuff means. I would appreciate.
Jim
to much text to paste, so i will zip it an attach the file instead.
Whatever happened to this problem?
blacklevel said:
Whatever happened to this problem?
Click to expand...
Click to collapse
I had rebuilt the kernel and ramdisk, didnt want to bring that thread back to life.
regarding this LC, i see at least in my inexperience, the obvious Dbus issue, possible cache issue with the init, i have a theory that at a minimum fixing the sdcard mount issue might fix the cache issue, the dbus, well i am about to yank all references out of the init in hopes it fixes that issue as I think the source rom i am porting not having a dbus and my putting one in as the init was looking for one, may be the problem.
And in theory, the app and framework problems might be solved whgen the caching issue is fixed?
Am i on the right path?
You definitely need dbus running.
On my GSM tab with technomancers latest CM7 the first few lines in the logcat look like this:
Code:
--------- beginning of /dev/log/main
I/DEBUG ( 82): debuggerd: Aug 7 2011 19:55:51
--------- beginning of /dev/log/system
I/Vold ( 80): Vold 2.1 (the revenge) firing up
I/cm ( 106): Welcome to Android 2.3.5 / CyanogenMod-7-2011-08-07-Beta-GalaxyTab-KANG
I/cm ( 108): _
I/cm ( 110): __ __ _ ___ _ _ __ ___ __ _ _ _ _ __ __))
I/cm ( 111): ((_ \(/'((_( ((\( ((_)((_( (('((\( ((`1( ((_)((_(
I/cm ( 112): )) _))
I/cm ( 113):
D/Vold ( 80): Volume emmc state changing -1 (Initializing) -> 0 (No-Media)
D/Vold ( 80): Volume sdcard state changing -1 (Initializing) -> 0 (No-Media)
D/Vold ( 80): Volume emmc state changing 0 (No-Media) -> 2 (Pending)
D/Vold ( 80): Volume emmc state changing 2 (Pending) -> 1 (Idle-Unmounted)
D/Vold ( 80): Volume sdcard state changing 0 (No-Media) -> 2 (Pending)
D/Vold ( 80): Volume sdcard state changing 2 (Pending) -> 1 (Idle-Unmounted)
I/Netd ( 81): Netd 1.0 starting
D/Vold ( 80): USB connected
D/Vold ( 80): Share method ums now available
D/Vold ( 80): USB connected
I/logwrapper( 75): /system/xbin/busybox terminated by exit(0)
Yes, there are no references to dbus. But it is still running:
Code:
~# ps w
(...)
87 root 1272 S /system/bin/dbus-daemon --system --nofork
(...)
These are the corresponding lines the logcat you provided here:
Code:
--------- beginning of /dev/log/main
I/DEBUG ( 81): debuggerd: Aug 7 2011 19:55:51
I/cm ( 104): Welcome to Android 2.3.5 / CyanogenMod-7-2011-08-07-Beta-GalaxyTab-KANG
I/cm ( 106): _
W/libdbus ( 85): Failed to start message bus: Failed to open "/etc/dbus.conf": Permission denied
I/cm ( 108): __ __ _ ___ _ _ __ ___ __ _ _ _ _ __ __))
I/cm ( 110): ((_ \(/'((_( ((\( ((_)((_( (('((\( ((`1( ((_)((_(
I/cm ( 112): )) _))
I/cm ( 114):
I//system/xbin/busybox( 75): sysctl: /etc/sysctl.conf: No such file or directory
--------- beginning of /dev/log/system
I/Vold ( 79): Vold 2.1 (the revenge) firing up
E/Vold ( 79): Error reading configuration (No such file or directory)... continuing anyways
D/Vold ( 79): USB connected
D/Vold ( 79): Share method ums now available
I/Netd ( 80): Netd 1.0 starting
I/logwrapper( 75): /system/xbin/busybox terminated by exit(0)
You can see that both, dbus and vold are borked. Also /etc/sysctl.conf is not accessible. Maybe these problems are all for the same reason.
Can you check if /etc exists at all? It should be a symbolic link to /system/etc. Perhaps it is just that this link is not created. Perhaps the permissions of the /system/etc directory are wrong.
How is the initramfs configured?
I needed to update this thread.
Got past dbus, cache and /etc/sysctl.conf issue.
System booted to animated skating droid, and the 2 large issues currently are an EGL Bad Display, and Zygote. otherwise logcat looks ok so far.
I had to modify the init from the Sprint kernel i had originally released for the 2 Gingerbread roms for the tab, I removed all references to the GSM cache and partitions setup.
Right now, EGL and Zygote are my focus. I dont understand where the problem, is am basically running a sprint kernel 2.3.4 from source, so same video drivers.
I am so new to some of this more technical stuff, I have learned so much in past few days, but, i tool along as best I can
Great, you made some progress. How does the logcat currently look like?
how to assemble and disassemble boot.img on this phone?
Stock jb 4.1 uses kernel.bin.md5, cm uses boot.img
I tried many times but never managed (there's a script somewhere in this section but didn't work either for me)
Why do you want to unpack it?
Sent from Italy using Tapatalk
Toni5830 said:
Stock jb 4.1 uses kernel.bin.md5, cm uses boot.img
I tried many times but never managed (there's a script somewhere in this section but didn't work either for me)
Why do you want to unpack it?
Sent from Italy using Tapatalk
Click to expand...
Click to collapse
I want to insert a file init.rc service service
Code:
shelld /system/xbin/shelld
class main
I fear you need to compile kernel from sources..(I can compile stock kernel but don't know how to compile cm one )
Sent from Italy using Tapatalk
Toni5830 said:
I fear you need to compile kernel from sources..(I can compile stock kernel but don't know how to compile cm one )
Sent from Italy using Tapatalk
Click to expand...
Click to collapse
no I do not need to be collected from source
lolo696 said:
no I do not need to be collected from source
Click to expand...
Click to collapse
It depends how it is compiled. I think Frapeti told that some later versions will have possibiliti to be decompiled. I am not into kernels, not sure how and does this version now can be decompiled. And boot.img is only on CM - on stock we have kernel.bin.md5.
Actually kernel.bin.md5 is the zImage renamed with an md5 checksum. There is boot.img in stock too. Boot.img usually contains the zImage and the ramdisk. But in our device the ramdisk is packed in the zImage, this makes the boot.img un-unpackable. So kernel.bin.md5 (the zImage) can be renamed to boot.img because it's the same. I hope you understood this. I tried to explain in the simplest way
and you can follow any responses to add service init.rc ?
Sent from my GT-I9070 using xda app-developers app
Look at post #5, there's an attached file to unpack kernel, but never worked for me..some say it works
http://forum.xda-developers.com/showthread.php?t=2115337
Sent from Italy using Tapatalk
But in our device the ramdisk is packed in the zImage, this makes the boot.img un-unpackable.
Click to expand...
Click to collapse
Read this from KINGbabasula post.
I'm quite sure I can read -.-
Quoting Cocafe:
#!/bin/bash
# This is an update version of the script found at
# http://forum.xda-developers.com/wiki/index.php?title=Extract_initramfs_from_zImage
#
# The problem with that script is that the gzip magic number occasionally occur
# naturally, meaning that some non-compressed files get uncompressed.
DEBUG=
TEMP_DIR=/tmp
KERNEL_FILE=kernel
KERNEL_GZIP_FILE=kernel.gz
INITRAMFS_FILE=initramfs.cpio
INITRAMFS_DIR=initramfs_root
# DO NOT MODIFY BELOW THIS LINE
[ -z $1 ] && exit 1 || zImage=$1
[ ! -e $1 ] && exit 1
#GET CURRENT DIR
CURRENT_DIR=`pwd`
function pre_clean()
{
[ -z $DEBUG ] || echo "-D- Function: pre_clean()"
[ -e $INITRAMFS_FILE ] && ( [ -z $DEBUG ] || echo "-D- Deleting $INITRAMFS_FILE"; rm -f $INITRAMFS_FILE )
[ -e $INITRAMFS_DIR ] && ( [ -z $DEBUG ] || echo "-D- Deleting $INITRAMFS_DIR"; rm -rf $INITRAMFS_DIR )
[ -z $DEBUG ] || echo
}
function ungzip_kernel()
{
#========================================================
# find start of gziped kernel object in the zImage file:
#========================================================
[ -z $DEBUG ] || echo "-D- Function: ungzip_kernel()"
pos=`grep -P -a -b -m 1 --only-matching '\x1F\x8B\x08' $zImage | cut -f 1 -d :`
echo "-I- Extracting gzip'd kernel image from file: $zImage (start = $pos)"
if [ ! -z $pos ]; then
dd if=$zImage of=$TEMP_DIR/$KERNEL_GZIP_FILE bs=1 skip=$pos 2>/dev/null >/dev/null
gunzip -qf $TEMP_DIR/$KERNEL_GZIP_FILE
else
echo "-E- Compressed kernel image not found"; exit 1
fi
[ -z $DEBUG ] || echo
}
function search_cpio()
{
#========================================================
# Determine cpio compression type:
#========================================================
[ -z $DEBUG ] || echo "-D- Function: search_cpio()"
for x in gzip bzip lzma none; do
case $x in
bzip)
csig='\x{31}\x{41}\x{59}\x{26}\x{53}\x{59}'
ucmd='bunzip2 -q'
fext='.bz2'
;;
gzip)
csig='\x1F\x8B\x08'
ucmd='gunzip -q'
fext='.gz'
;;
lzma)
csig='\x{5D}\x{00}\x..\x{FF}\x{FF}\x{FF}\x{FF}\x{FF}\x{FF}'
ucmd='unlzma -q'
fext='.lzma'
;;
none)
csig='070701'
ucmd=
fext=
;;
esac
#========================================================================
# Search for compressed cpio archive
#========================================================================
search=`grep -P -a -b -m 1 --only-matching $csig $TEMP_DIR/$KERNEL_FILE | cut -f 1 -d : | head -1`
pos=${search:-0}
if [ ${pos} -gt 0 ]; then
if [ ${pos} -le ${cpio_compressed_start:-0} ] || [ -z $cpio_compressed_start ];then
cpio_compressed_start=$pos
compression_name=$x
compression_signature=$csig
uncompress_cmd=$ucmd
file_ext=$fext
[ -z $DEBUG ] || echo "-D- Checking for compression type: $compression_name | signature: $compression_signature | in file: $TEMP_DIR/$KERNEL_FILE | offset = $pos"
fi
fi
done
[ $compression_name = "bzip" ] && cpio_compressed_start=$((cpio_compressed_start - 4))
echo "-I- CPIO compression type detected = $compression_name | offset = $cpio_compressed_start"
[ -z $DEBUG ] || echo
}
function extract_cpio()
{
[ -z $DEBUG ] || echo "-D- Function: extract_cpio()"
if [ ! $compression_name = "none" ]; then
echo "-I- Extracting $compression_name'd compressed CPIO image from kernel image (offset = $cpio_compressed_start)"
[ -z $DEBUG ] || echo "-D- dd if=$TEMP_DIR/$KERNEL_FILE of=$TEMP_DIR/$INITRAMFS_FILE$file_ext bs=1 skip=$cpio_compressed_start; $uncompress_cmd $TEMP_DIR/$INITRAMFS_FILE$file_ext"
dd if=$TEMP_DIR/$KERNEL_FILE of=$TEMP_DIR/$INITRAMFS_FILE$file_ext bs=1 skip=$cpio_compressed_start 2>/dev/null >/dev/null
$uncompress_cmd -q $TEMP_DIR/$INITRAMFS_FILE$file_ext
else
echo "-I- Extracting non-compressed CPIO image from kernel image (offset = $cpio_compressed_start)"
[ -z $DEBUG ] || echo "-D- dd if=$TEMP_DIR/$KERNEL_FILE of=$TEMP_DIR/${INITRAMFS_FILE}${file_ext} bs=1 skip=$cpio_compressed_start 2>/dev/null >/dev/null"
dd if=$TEMP_DIR/$KERNEL_FILE of=$TEMP_DIR/${INITRAMFS_FILE}${file_ext} bs=1 skip=$cpio_compressed_start 2>/dev/null >/dev/null
fi
[ -z $DEBUG ] || echo
}
function uncompress_cpio()
{
#==========================================================================
# find start and end of the "cpio" initramfs image inside the kernel object:
# ASCII cpio header starts with '070701'
# The end of the cpio archive is marked with an empty file named TRAILER!!!
#==========================================================================
[ -z $DEBUG ] || echo "-D- Function: uncompress_cpio()"
if [ ! $compress_type = "none" ]; then
start=`grep -a -b -m 1 --only-matching '070701' $TEMP_DIR/$INITRAMFS_FILE | head -1 | cut -f 1 -d :`
end=`grep -a -b -m 1 --only-matching 'TRAILER!!!' $TEMP_DIR/$INITRAMFS_FILE | head -1 | cut -f 1 -d :`
if [ ! -z $start ] || [ ! -z $end ]; then
#11 bytes = length of TRAILER!!! zero terminated string, fixes premature end of file warning in CPIO
end=$((end + 14))
[ -z $DEBUG ] || echo "-D- Kernel start = $start"
[ -z $DEBUG ] || echo "-D- Kernel end = $end"
count=$((end - start))
if (($count < 0)); then
echo "-E- Couldn't match start/end of the initramfs image."
exit 1
fi
echo "-I- Extracting initramfs image from file: $inputfile (start = $start, end = $end)"
dd if=$TEMP_DIR/$INITRAMFS_FILE of=$CURRENT_DIR/$INITRAMFS_FILE bs=1 skip=$start count=$count 2>/dev/null >/dev/null
INITRAMFS_FILE=$CURRENT_DIR/$INITRAMFS_FILE
else
echo "-E- No CPIO image found in $inputfile."
fi
else
echo "-I- CPIO already uncompressed."
fi
[ -z $DEBUG ] || echo
}
function expand_cpio_archive()
{
[ -z $DEBUG ] || echo "-D- Function: expand_cpio_archive()"
echo "-I- Expanding CPIO archive: $INITRAMFS_FILE to $INITRAMFS_DIR."
if [ -e $TEMP_DIR/$INITRAMFS_FILE ]; then
mkdir $INITRAMFS_DIR
cd $INITRAMFS_DIR
cpio --quiet -i --make-directories --preserve-modification-time --no-absolute-filenames -F $TEMP_DIR/$INITRAMFS_FILE 2>/dev/null
fi
[ -z $DEBUG ] || echo
}
function clean_up()
{
[ -z $DEBUG ] || echo "-D- Deleting $TEMP_DIR/$KERNEL_FILE"; rm -f $TEMP_DIR/$KERNEL_FILE
[ -z $DEBUG ] || echo "-D- Deleting $TEMP_DIR/$INITRAMFS_FILE"; rm -f $TEMP_DIR/$INITRAMFS_FILE
[ -z $DEBUG ] || echo "-D- Deleting $TEMP_DIR/$INITRAMFS_FILE$file_ext"; rm -f $TEMP_DIR/$INITRAMFS_FILE$file_ext
}
reset
pre_clean
ungzip_kernel
search_cpio
extract_cpio
uncompress_cpio
expand_cpio_archive
clean_up
Click to expand...
Click to collapse
Save this QUOTE as a file name unpack_initramfs.sh
Use:
./unpack_initramfs.sh kernel.bin.md5
Click to expand...
Click to collapse
-I- Extracting gzip'd kernel image from file: kernel.bin.md5 (start = 18528)
-I- CPIO compression type detected = none | offset = 219120
-I- Extracting non-compressed CPIO image from kernel image (offset = 219120)
-I- CPIO already uncompressed.
-I- Expanding CPIO archive: initramfs.cpio to initramfs_root.
Click to expand...
Click to collapse
Then you should have stock ramdisk
Click to expand...
Click to collapse
Worked for Cocafe but never worked for me:/ maybe because Cocore-e's compression is now set to lzo
Last 2 things then I'll leave:
1) Frapeti said next cm kernel will be possible to unpack (check dual boot thread)
2) I don't know how to repack it
Sent from Italy using Tapatalk
Toni5830 said:
I'm quite sure I can read -.-
Quoting Cocafe:
Worked for Cocafe but never worked for me:/ maybe because Cocore-e's compression is now set to lzo
Last 2 things then I'll leave:
1) Frapeti said next cm kernel will be possible to unpack (check dual boot thread)
2) I don't know how to repack it
Sent from Italy using Tapatalk
Click to expand...
Click to collapse
I never saw before that script
Here you can find how to unpack and repack a "normal" boot.img with tools for cygwin too https://github.com/KINGbabasula/boot.img-tools
Hi to all XDA users!
I'm working on a project that makes easier the task of synthesizing plain text into speech on our Android devices. In short, what it does is speech out the copied (selected) text what we want to hear, reacting (enabling tts profile) to a specific event like mobile shaking, and to a specific context as staying on an app that contains the text. Since we select a text until we hear it, will be necessary to follow just 2 previous simple steps. All visual and interactive for the user.
I decided to create it because for me is too hard copy the text I want, leave the app that contains it, search and open the tts app. (some apps allow you to copy and paste the text to proccess), and press the play button. So I wanted to make it easier and faster. I hope you find it useful!
PROFILES (x1)
Code:
[COLOR="Blue"]TTS Synthesizing[/COLOR]
[U]State[/U]: Display State [ Is : On ]
[U]Event[/U]: Shake [ Axis:Left-Right Sensitivity:Medium Duration:Medium ]
[U]Application[/U]: Firefox...
TASKS (x1)
Code:
[COLOR="Blue"]Clipboard Text[/COLOR]
[U]A1[/U]: Flash [ Text:<<Nothing copied to clipboard>> Long : On ] If [ %CLIP ~ %* ]
[U]A2[/U]: Show Scene [ Name:Reading (1) Display As : Overlay, Blocking Horizontal Position:100 Vertical Position:100 Animation:System Show Exit Button : Off Continue Task Immediately : Off ] If [ %CLIP !~ %* ]
SCENES (x4)
Code:
[B]Reading (1)[/B]
-----------------------------------------------
[COLOR="Blue"]Accept Button[/COLOR]
[U]A1[/U]: Variable Set [ Name:%SSpeed To:3 Do Maths : Off Append : Off ]
[U]A2[/U]: Destroy Scene [ Name:Reading (1) ]
[U]A3[/U]: Show Scene [ Name:Reading (2) Display As : Overlay, Blocking Horizontal Position:100 Vertical Position:100 Animation:System Show Exit Button : Off Continue Task Immediately : On ]
[COLOR="Blue"]Cancel Button[/COLOR]
[U]A1[/U]: Destroy Scene [ Name:Reading (1) ]
[B]Reading (2)[/B]
-----------------------------------------------
[COLOR="Blue"]English Button[/COLOR]
[U]A1[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h2.wav Pitch:5 Speed:7 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A2[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h1.wav Pitch:5 Speed:6 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A3[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng.wav Pitch:5 Speed:5 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A4[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l1.wav Pitch:5 Speed:4 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A5[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l2.wav Pitch:5 Speed:3 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A6[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l3.wav Pitch:5 Speed:2 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 6 ]
[U]A7[/U]: Flash [ Text:Processed file! Long : Off ]
[U]A8[/U]: Wait [ MS:0 Seconds:2 Minutes:0 Hours:0 Days:0 ]
[U]A9[/U]: Destroy Scene [ Name:Reading (2) ]
[U]A10[/U]: Show Scene [ Name:Reading (3) Display As : Overlay, Blocking Horizontal Position:100 Vertical Position:24 Animation:System Show Exit Button : Off Continue Task Immediately : On ]
[COLOR="Blue"]Spanish Button[/COLOR]
[U]A1[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h2.wav Pitch:5 Speed:7 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A2[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h1.wav Pitch:5 Speed:6 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A3[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa.wav Pitch:5 Speed:5 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A4[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l1.wav Pitch:5 Speed:4 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A5[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l2.wav Pitch:5 Speed:3 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A6[/U]: Say To File [ Text:%CLIP Engine:Voice:default:default File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l3.wav Pitch:5 Speed:2 Continue Task Immediately : Off Continue Task After Error : On ] If [ %SSpeed = 6 ]
[U]A7[/U]: Flash [ Text:Processed file! Long : Off ]
[U]A8[/U]: Wait [ MS:0 Seconds:2 Minutes:0 Hours:0 Days:0 ]
[U]A9[/U]: Destroy Scene [ Name:Reading (2) ]
[U]A10[/U]: Show Scene [ Name:Reading (3) Display As : Overlay, Blocking Horizontal Position:100 Vertical Position:24 Animation:System Show Exit Button : Off Continue Task Immediately : On ]
[COLOR="Blue"]Language Spinner[/COLOR]
[U]A(s)[/U]: Variable Set [ Name:%SSpeed To:1/2/3/4/5/6 Do Maths : Off Append : Off ] = ITEMS
[COLOR="Blue"]Close Button[/COLOR]
[U]A1[/U]: Variable Clear [ Name:%SSpeed Pattern Matching : Off ]
[U]A2[/U]: Destroy Scene [ Name:Reading (2) ]
[B]Reading (3)[/B]
-----------------------------------------------
[COLOR="Blue"]Play Button[/COLOR]
[U]A1[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h2.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A2[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h2.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A3[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h1.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A4[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h1.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A5[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A6[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A7[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l1.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A8[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l1.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A9[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l2.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A10[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l2.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A11[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l3.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 6 ]
[U]A12[/U]: Music Play [ File:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l3.wav Start:0 Loop : Off Stream:3 Continue Task After Error : On ] If [ %SSpeed = 6 ]
[COLOR="Blue"]Back Button[/COLOR]
[U]A1[/U]: Music Back [ Jump:4 ]
[COLOR="Blue"]Stop Button[/COLOR]
[U]A1[/U]: Music Stop [ Clear Dir : Off ]
[COLOR="Blue"]Save Button[/COLOR] (tap)
[U]A1[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h2.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A2[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h2.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A3[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h1.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A4[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h1.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A5[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A6[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A7[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l1.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A8[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l1.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A9[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l2.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A10[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l2.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A11[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l3.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 6 ]
[U]A12[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l3.wav To:/sdcard/Download Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 6 ]
[U]A13[/U]: Flash [ Text:Audio file (WAV) saved! Long : On ]
[COLOR="Blue"]Save Button[/COLOR] (long tap)
[U]A1[/U]: Run Shell [ Command:find /sdcard/Tasker/Files/TTS/audiotemp/*.wav Timeout (Seconds):0 Use Root : Off Store Output In:%FileName Store Errors In: Store Result In: ]
[U]A2[/U]: Variable Section [ Name:%FileName From:36 Length:13 Adapt To Fit : Off Store Result In:%FileName ] If [ %SSpeed = 3 ]
[U]A3[/U]: Variable Section [ Name:%FileName From:36 Length:16 Adapt To Fit : Off Store Result In:%FileName ] If [ %SSpeed != 3 ]
[U]A4[/U]: Show Scene [ Name:Reading (4) Display As:Dialog Horizontal Position:100 Vertical Position:94 Animation:System Show Exit Button : Off Continue Task Immediately : Off ]
[COLOR="Blue"]Close Button[/COLOR]
A1: Run Shell [ Command:cd /sdcard/Tasker/Files/TTS/audiotemp && rm -r * .* Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: Continue Task After Error : On ]
A2: Variable Clear [ Name:%FileName Pattern Matching : Off ]
A3: Variable Clear [ Name:%SSpeed Pattern Matching : Off ]
A4: Destroy Scene [ Name:Reading (3) ]
[B]Reading (4)[/B]
-----------------------------------------------
[COLOR="Blue"]Accept Button[/COLOR]
[U]A1[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h2.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A2[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h2.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 1 ]
[U]A3[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_h1.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A4[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_h1.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 2 ]
[U]A5[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A6[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 3 ]
[U]A7[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l1.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A8[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l1.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 4 ]
[U]A9[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l2.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A10[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l2.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 5 ]
[U]A11[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_eng_l3.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 6 ]
[U]A12[/U]: Copy File [ From:/sdcard/Tasker/Files/TTS/audiotemp/audiofile_spa_l3.wav To:/sdcard/Download/%FileName.wav Use Root : Off Continue Task After Error : On ] If [ %SSpeed = 6 ]
[U]A13[/U]: Destroy Scene [ Name:Reading (4) ]
[U]A14[/U]: Flash [ Text:Audio file (WAV) saved! Long : On ]
[COLOR="Blue"]EditText Element[/COLOR]
[U]A1[/U]: Variable Set [ Name:%FileName To:%new_val Do Maths : Off Append : Off ]
[COLOR="Blue"]Close Button[/COLOR]
[U]A1[/U]: Destroy Scene [ Name:Reading (4) ]
SCREENSHOTS
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
DEMOSTRATION
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ABOUT THE PROJECT
· There are available two ways by you can import the project (profiles, tasks, scenes). One is by just importing it using the file on "projects" folder, it will import the whole project at once; the other, by importing it "part-by-part". The 'Files' folder (if included) have to be ALWAYS copied to Tasker directory.
· All scenes are adjusted to work on 1280x720 device (LG K10). You'll have to resize them to fit it on you
· The 'audiotemp' folder is used to temporally store the .WAV audio file that Tasker generates during the execution of the task.
· Why I decided to generate and work with a .wav file but I could do all of this with the native tts function of tasker (real-time)? = Primary, because I noticed a little delay on the tts service proccess on my phone (I imagine that could appear on other phones), causing a delayed playback. And by the other hand, if we manage to add the feature to be able to pause the playback, will be neccessary to work with a file because the TTS, as I know, can't do that itself.
· You have available more country flags icons than just English and Spanish from this project. Download them from the 'International Flags (icons).rar' attached file on this thread. Will be neccessary Photoshop or whatever program you like to use them into Tasker.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
My Tasker PROJECTS & TASKS
--> [PROJECT] Anti-Theft System
--> [PROJECT] Automate all your backup tasks
--> [PROJECT] Call Recorder
--> [PROJECT] High temperature warning device
--> [TASK] Auto-Switch Keyboard(s)
--> [TASK] Talking Clock
Tasker Chat Groups
--> Tasker on WhatsApp
--> Tasker on Telegram
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
If you liked the project. . .
. . . and you decide to invite me to a coffee, I would be very greatful to you ;P
Account: [email protected]
New: Added more country flags icons!
Cool project. I decided to do my own simplified version. Thanks for the idea (I'm a newb, still learning tasker and this was a good learning experience). I made mine so everytime I copy something (when the profile is active) it reads it out loud automatically i.e. everytime %CLIP changes it reads what is in %CLIP and I use a notification to toggle the profile on and off. It's not nearly as good as yours but it's a great utility to have.
Edit: I have one idea for pausing. There are small floating music players available on the playstore. One is "BuMP". In tasker instead of using "play music" to play the .wav file you could use "open file" and as the "mime type" use "application/*". Then, when the .wav file plays the first time set "BuMP" to play this type of file "always". Media controls will appear in the notifications and so will "BuMP" as a small floating circle everytime your .wav file plays. Not ideal but idk what else to suggest
Thanks for your thanks, I know is not as big as Tasker can do but I wanted to share it to the community
About toggling different functions I'm working on another scene(s) that will be the "interface" of different settings for this project. I mean, I'm trying to do as much as possible be not needed to enter tasker to change some things, like storage location, the tts engine that we will use, etc...
And about your idea for pausing the file, is a good solution. I'll test!
Thanks! And sorry if I make any mistake in english.
I would like to have only one task on the Close Button for deleting files, so how can I perform an action that search for files on a specific folder (audiotemp) and delete all files on there?
NEW VERSION --> Android TTS Assistant v1.1
Changelog
- Solved all missing icons & 2nd language processing issue | sorry
- Deleted '%AudioFileLang' variable (not necessary)
- Re-worked profile, tasks & texts (disable 'Flash Problems' from Preferences > Actions on Tasker)
- New resource directory for the project (sdcard/Tasker/'Files') [DELETE OLDER]
NEW VERSION --> Android TTS Assistant v1.2
Changelog
- New: You can now rename audio files! (long tap on save button)
- Re-worked few tasks
NEW VERSION --> Android TTS Assistant v1.3
Changelog
- New UI
- Minor task and scene settings fixes
You could use the 'Tasker Is Playing Music Plugin' to "sort of" pause the audio without using a media player.
I know that you don't want to rely on third party apps for your TTS project, but what if you just used the 'Tasker Is Playing Music Plugin' and instead of using a media player, you use the 'play music' action but you split the text that you want turned into a TTS audio file into multiple audio files. Let's say you split the text at every full stop ("."). The plugin will let you play one audio file after another automatically and when you want to pause, you could use the 'stop music' action. Then when you press 'play music' tasker just needs to remember what audio file it last played and then it can play that one instead of going all the way back to the start. Edit. Also you won't need to worry about the 4000 charatcher limit because it's unlikely that any one sentence is going to be over 4000 charatchers.
Edit. . Also it's cool because you can make a notification to go to the next sentence and another to go last sentence so it's kind of like a fast forward/backward. Sorry if I explained this really badly.
Now you can import projects/tasks with just one step: read the section 'ABOUT THE PROJECT'.
Love the idea! Which TTS engine/service are you using to generate the audio files?
usb7 said:
Love the idea! Which TTS engine/service are you using to generate the audio files?
Click to expand...
Click to collapse
I use IVONA TTS, but sometimes use Vocalizer.
How are you XDA members?!
I decided to share you my anti-theft little project I was working on. Maybe now is a bit smaller but hope that with time it'll become more complex and larger with possible contributions from you. And of course I'll look for make it better, and if it's possible to add new features.
How it works?
By now I just included 3 main profiles that can be used almost on all related tasks. I decided to do it just because you may have different requirements or likes than me, so. . . USE YOUR BRAIN AND IMAGINATION TO BUILD YOUR OWN ANTI-THEFT SYSTEM.
But don't worry, as time passes I will be adding customized profiles for every possible situation. --> You have now available custom presets!, scroll down to see them.
Main features
- Lock/Unlock device (disable touches, show a permanent message. . .)
- Lock/Unlock device by PIN (stablishes a second lockscreen = phone built-in, with customized password)
- Prevent unwanted apps installation
- Alert sounds and spoken TTS
- SIM verification + Auto-Send SMS
- Freeze/Unfreeze apps
- Lock specific tasks to be executed
- Lock apps with fully customized lockscreen and password
- Record ambient audio (hidden)
- Take Photo, Video, and Screenshot of display (hidden)
- Encrypt/Decrypt files
- Zip/Unzip files
- And more. . .
PROFILES (x4)
Code:
[COLOR="Blue"]Received SMS (lock)[/COLOR]
[U]Event[/U]: Received Text [ Type:SMS Sender:* Content:-phone-lock- ]
[COLOR="Blue"]Received SMS (unlock)[/COLOR]
[U]Event[/U]: Received Text [ Type:SMS Sender:* Content:-phone-unlock- ]
[COLOR="Blue"]StartUp Device[/COLOR]
[U]Event[/U]: Device Boot
[COLOR="Blue"]Launched Apps[/COLOR]
[U]Application[/U]: Adobe Acrobat or Firefox. . .
TASKS (x21)
Anti-Theft
Code:
[COLOR="Blue"]Capture (camera)[/COLOR]
[U]A1[/U]: Take Photo [ Camera:Rear Filename:TaskerCam_%DATE_%TIME Naming Sequence:None Insert In Gallery : Off Discreet : On Resolution:4160x3120 Scene Mode:Auto White Balance:Auto Flash Mode : Off Focus Mode:Infinity ]
[COLOR="Blue"]Capture (screen)[/COLOR]
[U]A1[/U]: AutoInput Screen Capture [ Configuration:Screenshot Path: /storage/emulated/0/AutoInput/screencapture.png Palette: false Get Average Color : false Timeout (Seconds):200 ]
[U]A2[/U]: Run Shell [ Command:/system/bin/screencap -p /sdcard/Download/screenshotname.png Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[COLOR="Blue"]Lock Apps[/COLOR]
[U]A1[/U]: Variable Set [ Name:%AllowAppHide To:SECURITY CODE Do Maths : Off Append : Off ]
[U]A2[/U]: Show Scene [ Name:Apps Lock Display As : Overlay, Blocking, Full Window Horizontal Position:100 Vertical Position:100 Animation:Fade Show Exit Button : Off Continue Task Immediately : On ]
[U]A3[/U]: Wait Until [ MS:0 Seconds:1 Minutes:0 Hours:0 Days:0 ] If [ %AllowApp = xxx ]
[U]A4[/U]: Destroy Scene [ Name:Apps Lock ]
[U]A5[/U]: Variable Clear [ Name:%AllowApp Pattern Matching : Off ]
[U]A6[/U]: Variable Clear [ Name:%AllowAppHide Pattern Matching : Off ]
[COLOR="Blue"]Lock Device[/COLOR]
[U]A1[/U]: AutoInput Modes [ Configuration:Gestures: Enable Timeout (Seconds):0 ]
[U]A2[/U]: Secure Settings [ Configuration:Screen & Keyboard Lights On 1 Second Timeout (Seconds):0 ]
[U]A3[/U]: Run Shell [ Command:settings put global policy_control immersive.status=* Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[U]A4[/U]: Show Scene [ Name:Lost Phone Display As : Overlay, Blocking, Full Window Horizontal Position:100 Vertical Position:100 Animation:None Show Exit Button : Off Continue Task Immediately : On ]
[COLOR="Blue"]Unlock Device[/COLOR]
[U]A1[/U]: Destroy Scene [ Name:Lost Phone ]
[U]A2[/U]: AutoInput Modes [ Configuration:Gestures: Disable Timeout (Seconds):0 ]
[U]A3[/U]: Run Shell [ Command:settings put global policy_control immersive.status=null Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[COLOR="Blue"]Lock Device (PIN) [2° lockscreen][/COLOR]
[U]A1[/U]: Secure Settings [ Configuration:Clear Password Timeout (Seconds):0 ]
[COLOR="Blue"]Unlock Device (PIN) [2° lockscreen][/COLOR]
[U]A1[/U]: Secure Settings [ Configuration:Clear Password Timeout (Seconds):0 ]
[COLOR="Blue"]Lost Phone (warning)[/COLOR]
[U]A1[/U]: Notification Volume [ Level:0 Display : Off Sound : Off ]
[U]A2[/U]: Perform Task [ Name:Lock Device Priority:%priority Parameter 1 (%par1): Parameter 2 (%par2): Return Value Variable: Stop : Off ]
[U]A3[/U]: Variable Set [ Name:%smsnum To:%SMSRF Do Maths : Off Append : Off ]
[U]A4[/U]: Variable Set [ Name:%volmultimedia To:%VOLM Do Maths : Off Append : Off ]
[U]A5[/U]: Media Volume [ Level:15 Display : Off Sound : Off ]
[U]A6[/U]: Music Play [ File:Tasker/Archivos/Movil Perdido/Sound1_6_beeps.mp3 Start:0 Loop : Off Stream:3 ]
[U]A7[/U]: Wait [ MS:500 Seconds:7 Minutes:0 Hours:0 Days:0 ]
[U]A8[/U]: Say [ Text:This device has been lost. If you are listening to this, please stand by with the phone in front of you. Once you have heard this message twice, the phone will automatically call its owner. Engine:Voice:com.ivona.tts:spa-ESP Stream:3 Pitch:5 Speed:5 Respect Audio Focus : On Network : Off Continue Task Immediately : Off ]
[U]A9[/U]: Music Play [ File:Tasker/Archivos/Movil Perdido/Sound1_3_beeps.mp3 Start:0 Loop : Off Stream:3 ]
[U]A10[/U]: Wait [ MS:500 Seconds:3 Minutes:0 Hours:0 Days:0 ]
[U]A11[/U]: Say [ Text:This device has been lost. If you are listening to this, please stand by with the phone in front of you. Once you have heard this message once, the phone will automatically call its owner. Engine:Voice:com.ivona.tts:spa-ESP Stream:3 Pitch:5 Speed:5 Respect Audio Focus : On Network : Off Continue Task Immediately : Off ]
[U]A12[/U]: Music Play [ File:Tasker/Archivos/Movil Perdido/Sound1_3_beeps.mp3 Start:0 Loop : Off Stream:3 ]
[U]A13[/U]: Wait [ MS:500 Seconds:3 Minutes:0 Hours:0 Days:0 ]
[U]A14[/U]: Say [ Text:This device has been lost. If you are listening to this, please stand by with the phone in front of you. Now pay attention to the following message. Engine:Voice:com.ivona.tts:spa-ESP Stream:3 Pitch:5 Speed:5 Respect Audio Focus : On Network : Off Continue Task Immediately : Off ]
[U]A15[/U]: Music Play [ File:Tasker/Archivos/Movil Perdido/Sound1_3_beeps.mp3 Start:0 Loop : Off Stream:3 ]
[U]A16[/U]: Wait [ MS:500 Seconds:3 Minutes:0 Hours:0 Days:0 ]
[U]A17[/U]: Say [ Text:Please, answer the call that will soon be made. No interaction is required from you with the device. Just hold the phone to your ear as soon as finishes this message. Engine:Voice:com.ivona.tts:spa-ESP Stream:3 Pitch:5 Speed:5 Respect Audio Focus : On Network : Off Continue Task Immediately : Off ]
[U]A18[/U]: Media Volume [ Level:%volmultimedia Display : Off Sound : Off ]
[U]A19[/U]: Call [ Number:%smsnum Auto Dial : On ]
[COLOR="Blue"]Record Audio[/COLOR
[U]A1[/U]: Easy Voice Recorder Pro [ Configuration:Record Timeout (Seconds):0 ]
[U]A2[/U]: Wait [ MS:0 Seconds:1 Minutes:0 Hours:0 Days:0 ]
[U]A3[/U]: Easy Voice Recorder Pro [ Configuration:Stop Timeout (Seconds):0 ]
[U]A4[/U]: Record Audio [ File:/xxx/TaskerAudio_%DATE_%TIME Source:Microphone Max Size:0 Codec:AAC Format:3GPP ]
[U]A5[/U]: Wait [ MS:0 Segunds:1 Minutes:0 Hours:0 Days:0 ]
[U]A6[/U]: Stop Record Audio
[COLOR="Blue"]SIM (check)[/COLOR]
[U]A1[/U]: Set Clipboard [ Text:%SIMNUM Add : Off ]
[U]A2[/U]: Flash [ Text:SIM S/N: '%SIMNUM' Long:eek:n ]
[COLOR="Blue"]SIM (validation)[/COLOR]
[U]A1[/U]: Variable Set [ Name:%sim To:xxx Do Maths : Off Append : Off ]
[U]A2[/U]: Variable Set [ Name:%recoverphone To:+xxx Do Maths : Off Append : Off ]
[U]A3[/U]: Secure Settings [ Configuration:Airplane Mode Disabled Timeout (Seconds):0 ] If [ %AIR ~ on ]
[U]A4[/U]: Wait [ MS:0 Seconds:30 Minutes:0 Hours:0 Days:0 ] If [ %AIR ~ on ]
[U]A5[/U]: Send SMS [ Number:%recoverphone Message:Changed SIM detected on 'xxx'
Phone: %PNUM
SIM: %SIMNUM
Operator: %TNET
Location: %LOC / %LOCN
Precission: %LOCACC / %LOCNACC
Battery: %BATT% Store In Messaging App : Off Continue Task After Error : On ] If [ %SIMNUM !~ sim ]
Extras
Code:
[COLOR="Blue"]Apps Installation (allow)[/COLOR]
[U]A1[/U]: Run Shell [ Command:mount -o rw,remount /system ; chmod 644 /system/app/PackageInstaller/PackageInstaller.apk; chmod 644 /system/priv-app/PackageInstaller/PackageInstaller.apk ; mount -o ro,remount /system Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[COLOR="Blue"]Apps Installation (deny)[/COLOR]
[U]A1[/U]: Run Shell [ Command:mount -o rw,remount /system ; chmod 000 /system/app/PackageInstaller/PackageInstaller.apk; chmod 000 /system/priv-app/PackageInstaller/PackageInstaller.apk ; mount -o ro,remount /system Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[COLOR="Blue"]Compress Files[/COLOR]
[U]A1[/U]: Run Shell [ Command:cd /xxx && tar -cf xxx.xxx "$$$" && gzip -x xxx.xxx && cd "###" && rm -r * .* ; cd /xxx && mv -f xxx.xxx.gz "€€€" Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: Continue Task After Error : On ]
[COLOR="Blue"]Connectivity (modes)[/COLOR]
[U]A1[/U]: Run Shell [ Command:svc wifi xxx Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: ]
[U]A2[/U]: Run Shell [ Command:svc data xxx Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[U]A3[/U]: Run Shell [ Command:settings put secure location_providers_allowed xgps Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[U]A4[/U]: Run Shell [ Command:service call bluetooth_manager x Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[U]A5[/U]: Run Shell [ Command:service call nfc x Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: ]
[U]A6[/U]: Run Shell [ Command:settings put global airplane_mode_on x; am broadcast -a android.intent.action.AIRPLANE_MODE --ez state xxx Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[COLOR="Blue"]Encrypt Files[/COLOR]
[U]A1[/U]: Variable Set [ Name:%filetoencrypt To:xxx Do Maths : Off Append : Off ]
[U]A2[/U]: Variable Set [ Name:%encryptedfile To:xxx Do Maths : Off Append : Off ]
[U]A3[/U]: Variable Set [ Name:%password To:xxx Do Maths : Off Append : Off ]
[U]A4[/U]: Java Function [ Return:fis Class Or Object:FileInputStream Function:new {FileInputStream} (String) Param:%filetoencrypt Param: Param: Param: Param: Param: Param: ]
[U]A5[/U]: Java Function [ Return:fos Class Or Object:FileOutputStream Function:new {FileOutputStream} (String) Param:%encryptedfile Param: Param: Param: Param: Param: Param: ]
[U]A6[/U]: Java Function [ Return:passbytes Class Or Object:(String) %password Function:getBytes {byte[]} () Param: Param: Param: Param: Param: Param: Param: ]
[U]A7[/U]: Java Function [ Return:sks Class Or Object:SecretKeySpec Function:new {SecretKeySpec} (byte[], String) Param:passbytes Param:AES Param: Param: Param: Param: Param: ]
[U]A8[/U]: Java Function [ Return:cipher Class Or Object:Cipher Function:getInstance {Cipher} (String) Param:AES Param: Param: Param: Param: Param: Param: ]
[U]A9[/U]: Java Function [ Return: Class Or Object:cipher Function:init {} (int, Key) Param:1 Param:sks Param: Param: Param: Param: Param: ]
[U]A10[/U]: Java Function [ Return:cos Class Or Object:CipherOutputStream Function:new {CipherOutputStream} (OutputStream, Cipher) Param:fos Param:cipher Param: Param: Param: Param: Param: ]
[U]A11[/U]: Java Function [ Return:rb Class Or Object:byte[] Function:new {byte[]} (int) Param:4500 Param: Param: Param: Param: Param: Param: ]
[U]A12[/U]: Java Function [ Return:b Class Or Object:fis Function:read {int} (byte[]) Param:rb Param: Param: Param: Param: Param: Param: ]
[U]A13[/U]: Java Function [ Return: Class Or Object:cos Function:write {} (byte[], int, int) Param:rb Param:0 Param:b Param: Param: Param: Param: ] If [ b != -1 ]
[U]A14[/U]: Goto [ Type:Action Number Number:12 Label:ReadFile ] If [ b != -1 ]
[U]A15[/U]: Java Function [ Return: Class Or Object:cos Function:flush {} () Param: Param: Param: Param: Param: Param: Param: ]
[U]A16[/U]: Java Function [ Return: Class Or Object:cos Function:close {} () Param: Param: Param: Param: Param: Param: Param: ]
[U]A17[/U]: Java Function [ Return: Class Or Object:fis Function:close {} () Param: Param: Param: Param: Param: Param: Param: ]
[COLOR="Blue"]Decrypt Files[/COLOR]
[U]A1[/U]: Variable Set [ Name:%filetodecrypt To:xxx Do Maths : Off Append: Off ]
[U]A2[/U]: Variable Set [ Name:%decryptedfile To:xxx Do Maths : Off Append : Off ]
[U]A3[/U]: Variable Set [ Name:%password To:xxx Do Maths : Off Append : Off ]
[U]A4[/U]: Java Function [ Return:fis Class Or Object:FileInputStream Function:new {FileInputStream} (String) Param:%filetodecrypt Param: Param: Param: Param: Param: Param: ]
[U]A5[/U]: Java Function [ Return:fos Class Or Object:FileOutputStream Function:new {FileOutputStream} (String) Param:%decryptedfile Param: Param: Param: Param: Param: Param: ]
[U]A6[/U]: Java Function [ Return:passbytes Class Or Object:(String) %password Function:getBytes {byte[]} () Param: Param: Param: Param: Param: Param: Param: ]
[U]A7[/U]: Java Function [ Return:sks Class Or Object:SecretKeySpec Function:new {SecretKeySpec} (byte[], String) Param:passbytes Param:AES Param: Param: Param: Param: Param: ]
[U]A8[/U]: Java Function [ Return:cipher Class Or Object:Cipher Function:getInstance {Cipher} (String) Param:AES Param: Param: Param: Param: Param: Param: ]
[U]A9[/U]: Java Function [ Return: Class Or Object:cipher Function:init {} (int, Key) Param:2 Param:sks Param: Param: Param: Param: Param: ]
[U]A10[/U]: Java Function [ Return:cis Class Or Object:CipherInputStream Function:new {CipherInputStream} (InputStream, Cipher) Param:fis Param:cipher Param: Param: Param: Param: Param: ]
[U]A11[/U]: Java Function [ Return:rb Class Or Object:byte[] Function:new {byte[]} (int) Param:4500 Param: Param: Param: Param: Param: Param: ]
[U]A12[/U]: Java Function [ Return:b Class Or Object:cis Function:read {int} (byte[]) Param:rb Param: Param: Param: Param: Param: Param: ]
[U]A13[/U]: Java Function [ Return: Class Or Object:fos Function:write {} (byte[], int, int) Param:rb Param:0 Param:b Param: Param: Param: Param: ] If [ b != -1 ]
[U]A14[/U]: Goto [ Type:Action Number Number:12 Label:ReadFile ] If [ b != -1 ]
[U]A15[/U]: Java Function [ Return: Class Or Object:fos Function:flush {} () Param: Param: Param: Param: Param: Param: Param: ]
[U]A16[/U]: Java Function [ Return: Class Or Object:fos Function:close {} () Param: Param: Param: Param: Param: Param: Param: ]
[U]A17[/U]: Java Function [ Return: Class Or Object:cis Function:close {} () Param: Param: Param: Param: Param: Param: Param: ]
[COLOR="Blue"]Freeze Apps[/COLOR]
[U]A1[/U]: Run Shell [ Command:pm disable xxx Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[COLOR="Blue"]Unfreeze Apps[/COLOR]
[U]A1[/U]: Run Shell [ Command:pm enable xxx Timeout (Seconds):0 Use Root : On Store Output In: Store Errors In: Store Result In: ]
[COLOR="Blue"]Lock Tasks[/COLOR]
[U]A1[/U]: Variable Clear [ Name:%AllowTask Pattern Matching : Off ]
[COLOR="Blue"]Power Menu (modes)[/COLOR]
[U]A1[/U]: Run Shell [ Command:svc power reboot Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: ]
[U]A2[/U]: Run Shell [ Command:svc power reboot recovery Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: ]
[U]A3[/U]: Run Shell [ Command:svc power reboot fastboot Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: ]
[U]A4[/U]: Run Shell [ Command:svc power shutdown Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: ]
[U]A5[/U]: Run Shell [ Command:svc power stayon Timeout (Seconds):0 Use Root : Off Store Output In: Store Errors In: Store Result In: ]
SCENES (x3)
Code:
[B]Apps Lock[/B]
-----------------------------------------------
[COLOR="Blue"]Number 0 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:0 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 1 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:1 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 2 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:2 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 3 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:3 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 4 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:4 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 5 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:5 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 6 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:6 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 7 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:7 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 8 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:8 Do Maths : Off Append : On ]
[COLOR="Blue"]Number 9 Button[/COLOR]
[U]A1[/U]: Variable Search Replace [ Variable:%AllowAppHide Search:SECURITY CODE Ignore Case : Off Multi-Line : Off One Match Only : Off Store Matches In: Replace Matches : On Replace With: ]
[U]A2[/U]: Variable Set [ Name:%AllowAppHide To:X Do Maths : Off Append : On ]
[U]A3[/U]: Variable Set [ Name:%AllowApp To:9 Do Maths : Off Append : On ]
[COLOR="Blue"]Back Button[/COLOR]
[U]A1[/U]: Variable Set [ Name:%AllowAppHide To:SECURITY CODE Do Maths : Off Append : Off ]
[U]A2[/U]: Variable Clear [ Name:%AllowApp Pattern Matching : Off ]
[COLOR="Blue"]Close Button[/COLOR]
[U]A1[/U]: Destroy Scene [ Name:Apps Lock ]
[U]A2[/U]: Go Home [ Page:0 ]
[U]A3[/U]: Variable Clear [ Name:%AllowAppHide Pattern Matching : Off ]
[U]A4[/U]: Variable Clear [ Name:%AllowApp Pattern Matching : Off ]
[B]Lost Phone[/B]
-----------------------------------------------
No Actions are performed, just displayed info.
[B]Power Menu[/B]
-----------------------------------------------
[COLOR="Blue"]Shutdown Button[/COLOR]
[U]A1[/U]: Secure Settings [ Configuration:Shutdown Timeout (Seconds):0 ]
[U]A2[/U]: Destroy Scene [ Name:Power Menu ]
[COLOR="Blue"]Reboot Button[/COLOR]
[U]A1[/U]: Secure Settings [ Configuration:Reboot Timeout (Seconds):0 ]
A2: Destroy Scene [ Name:Power Menu ]
[COLOR="Blue"]Airplane Button[/COLOR]
[U]A1[/U]: Secure Settings [ Configuration:Airplane Mode Enabled Timeout (Seconds):0 ]
[U]A2[/U]: Destroy Scene [ Name:Power Menu ]
[COLOR="Blue"]Cancel Button[/COLOR]
[U]A1[/U]: Destroy Scene [ Name:Power Menu ]
SCREENSHOTS
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
*CUSTOM PRESETS* (x1)
Preset 1
· Auto-enable of GPS (remotly)
· Auto-enable of DATA (remotly)
· Auto-playing warning sounds (remotly) [normal and protected method]
· Auto-enable of do not disturb mode (remotly)
* Thanks to 'ziko900'
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ABOUT THE PROJECT
· There are available two ways by you can import the project (profiles, tasks, scenes). One is by just importing it using the file on "projects" folder, it will import the whole project at once; the other, by importing it "part-by-part". The 'Files' folder (if included) have to be ALWAYS copied to Tasker directory.
· All scenes are adjusted to work on 1280x720 device (LG K10). You'll have to resize them to fit it on yours. Tested on Android 5.1.1 (Rooted Stock ROM). Other tasks and functionalities have been tested on Android 7.1 too.
· For extra features will be necessary to install these apps/plug-ins too: AutoInput, Easy Voice Recorder (Pro), Secure Settings, Smart LockScreen Protector, Volume Lock Control.
· The Power Menu scene I provide on project resources is just an example to build your own custom power menu dialog to replace the original build-in one. For this you will need some graphic editor (Photoshop, GIMP. . .) to personalize the screen as you want like adding or deleting desired text, icons, features does not oficially exists, etc.
· To be able to prevent (or lock) the appearance of power menu dialog will be required to install 'Smart LockScreen Protector' on the device. That will deny the theft to restart or shutdown the device, but it only works if we have the build-in (original) lockscreen enabled. You can enable it by using 'Lock Device (PIN) [2° lockscreen]" task provided on my project.
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
My Tasker PROJECTS & TASKS
--> [PROJECT] Automate all your backup tasks
--> [PROJECT] Android TTS Asistentant (interactive & multilingal)
--> [PROJECT] Call Recorder
--> [PROJECT] High temperature warning device
--> [TASK] Auto-Switch Keyboard(s)
--> [TASK] Talking Clock
Tasker Chat Groups
--> Tasker on WhatsApp
--> Tasker on Telegram
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
If you liked the project. . .
. . . and you decide to invite me to a coffee, I would be very greatful to you ;P
Account: [email protected]
i am rooted. How do I make the flash mode unusable??
What do mean with 'flash mode'? Maybe with Camera photos action?
If yes, just select 'Flash Mode' to "Off", and it won't shut with the light.
NEW VERSION --> Anti-Theft System v1.1
Changelog
- Added two new tasks to allow or deny unwanted apps installation (via adb still vulnerable)
Nice work
CrashOverride93 said:
What do mean with 'flash mode'? Maybe with Camera photos action?
If yes, just select 'Flash Mode' to "Off", and it won't shut with the light.
Click to expand...
Click to collapse
I meant the reset mode. (if phone is off hold down POWER+minus/plus)
This way I can flash a file to the system, but even delete/format it.
dwa4321 said:
I meant the reset mode. (if phone is off hold down POWER+minus/plus)
This way I can flash a file to the system, but even delete/format it.
Click to expand...
Click to collapse
Oh sorry, I understood another thing.
Well, on the one hand its possible to disable + and - volume buttons by remapping them, but I decided not to add it because once you shutdown phone the remapped actions won't take effect. So it'll useless by now, sorry.
Note: But I'm looking for another way (more risky but probable effective).
NEW VERSION --> Anti-Theft System v1.2
Changelog
- Added compatibility to more devices for 'Apps Installation (allow)' and 'Apps Installation (deny)' tasks
- Voice recorder plugin disabled by default, and added Tasker build-in method to 'Record Audio' task
------------------------------------------
NEW VERSION --> Anti-Theft Presets v1.0
Main Features
- Auto-enable of GPS (remotly)
- Auto-enable of DATA (remotly)
- Auto-playing warning sounds (remotly) [normal and protected method]
- Auto-enable of do not disturb mode (remotly)
Now you have available custom profiles & tasks on this thread. Choose the configuration most suitable to you.
All new custom presets will be published in 'Anti-Theft Presets' attached file.
Now you can import projects/tasks with just one step: read the section 'ABOUT THE PROJECT'.
Is there any preset for the anti theft lockscreen?
This is increadible much respect for your work!
In the preset1 there is only a sound etc but not the anti theft lock
wait wait what are we up to... make flashing the new room impossible and at least i will be dead sure my mobile is not being used by unauthorized person.
Sorry for all but I decided to stop working on it for security reasons
I am trying to convert image saved by the AutoNotifications but it's not working.
Code:
GET APP DETAILS (3)
A1: AutoNotification Query [ Configurationersistency Type: Non-Persistent Only
Package: %evtprm(1)
Get All Fields : true Timeout (Seconds):2 Structure Output:On ]
A2: Variable Split [ Name:%anstatusbaricon Splitter:, Delete Base:Off Regex:Off ]
A3: Text Dialog [ Title:. Text:%anstatusbaricon1 Button 1: Button 2: Button 3: Close After (Seconds):30 Use HTML:Off ]
A4: Read Binary [ File:%anstatusbaricon1 To Var:%b64img ]
A5: Text Dialog [ Title:Base 64 string Text:%b64img Button 1:Ok Button 2: Button 3: Close After (Seconds):30 Use HTML:Off ]