Related
TUTORIAL: Create links to the programs in your Settings menu! A full explanation & never-before-published, full comparison list
An often-asked question concerns how you can set up direct links to the control panel applets (CPL's for short) in Start/Settings.
What's the point in all this, you may ask. Why not simply tap Start and, then, Settings and, finally, the icon you want to execute?
Yes, for a casual user, there's not much need in creating self-standing links to these files. There're, however, cases when this can prove really useful – for example, the case of including them in Today launcher plug-ins that, otherwise, don't let access to any of these applets otherwise. A well-known example of plug-ins like those is Resco File Explorer's excellent Today plug-in or in the free cLaunch. (Please see this (alternatives: iPAQ HQ, AximSite, PPC Magazine, FirstLoox, BrightHand) for more info on these excellent applications and the alternatives.)
Most of these settings are invoked from a central dialog file, \Windows\cplmain.cpl. Some additional, custom settings may have been put in a separate file, \Windows\mycpl.cpl. Finally, third-party applications that install their own settings dialogs create their own .cpl files inside the \Windows directory. For example, SOTi Pocket Controller (see this article on it) creates a file DeviceConfig.cpl, Mad Programmer's FileDialogChanger (see this article on it) uses a file named filedlgchg.cpl to offer the user the File Dialog Changer settings, Mad Programmer's Force Hi-resolution tool (see this article on it) puts a ForceHires.cpl file in there etc. The same stands for Spb Pocket Plus, MS Voice Command (please see this article for a full roundup of all voice controller apps) and XCPUScalar.
What should I do?
It's simple: create a .lnk file with the following contents:
33#ctlpnl.exe cplmain.cpl,X
OR
33#ctlpnl.exe mycpl.cpl,X
where X is a number that I'll promptly elaborate on.
As has already been pointed out, only one file, cplmain.cpl (or, with some device, mycpl.cpl in addition) contains most of the settings accessible in Start/Settings. One file containing many small applets also means that you need to choose a particular one in some way. That's why you must index the file; this numeric index (1, 2 etc.) tells cplmain.cpl which particular applet you'd like to access.
As far as the possible values of this are concerned, there're standardized ones. If you check out the "iPAQ 3660" column in the comparison chart available here (and disregard the 3 - Power record and everything starting with "MyCpl – 0"), you'll see what you can expect from any Pocket PC 2002+ Pocket PC.
Note that WM2003 added the standard 22-Manage Certificates and WM5 the standard 24-Error reporting and, with most WM5 Pocket PC devices, 25-GPS. Also, Pocket PC Phone Edition devices, regardless of their operating system version, also use the 20 - Phone Settings index. Finally, all Pocket PC's with the Microsoft BT stack use 23 – MS Bluetooth too. (Devices with the Widcomm BT stack use the separate \Windows\BTConfigCE.cpl CPL.)
It's also very important to point out that 3 – Power and 6 – Backlight is not necessarily available in all devices. For example, the iPAQ 2210 lacks both, the iPAQ 3660 lacks 6 – Backlight , while all the other listed devices have them all.
Also note the records starting with MyCpl are, as you may have already guessed, non-standard ones. It's there that the two iPAQ's have some essential applets (Backlight and, with the 2210, also Power) and some additional goodies.
Please note that lists compiled by others (for example the XDA-Developers one) are not generic enough and may contain several mistakes. Therefore, it's best not to rely on them at all. Also remember that you can freely test any indexes – you won't crash your Pocket PC if a particular index is unused.
You don't want to manually create .lnk files?
No problem, I've already done it for you! Just download this file and extract the link file(s) you'll need.
Note that the root directry of the ZIP file only contains CPL links that are guaranteed to work on all PPC2k2+ devices. I've put the additional ones in subdirectories – for example, links belonging to later operating systems (directories FromWM2003 and FromWM5), the 3 – Power and 6 – Backlight PCL's, the MS BT stack link and the PPC Phone Edition Phone Settings link.
Also, there's a separate subdirectory 'mycpl' for (unnamed – as you can also see in the comparison chart, indexes are wildly different between different devices) MyCpl link files.
Hope you'll find this information / my files useful. I really hope you'll like the new ability to include all this functionality in the Resco Today plug-in and/or cLaunch – or, for that matter, your operating system-level scripts!
Also a little bit more info on this subject + an icon extractor:
http://forum.xda-developers.com/viewtopic.php?p=223602#223602
V
When I put the link in my /windows/startmenu folder it's deleted after soft-reset of opening my start menu. What can I do about this and why is it happening?
What icon are you putting in there?
V
vijay555 said:
What icon are you putting in there?
V
Click to expand...
Click to collapse
It's a file I called Running.lnk with the following line:
Code:
22#ctlpnl cplmain.cpl,4,0?shellres.dll,-13900
I noticed that after soft reset or clicking the start menu this file is moved to the /windows/startmenu/programs folder. And thus appears in my programs list. But what I want is this link in my Start Menu.
Very odd.
Try making the shortcut as you've done, put it in your normal start menu, and then make a lnk to the lnk. Put the lnk to the lnk in your startup, and see if that makes any difference.
You could try my program VJBrisk as well. I can't even think what it does now, but it might help.
V
I tryed making another link to the first one and putting it in the startup but it didn't make any difference.
After this i tryed putting the lnk in the startmenu folder and at the same time removing another lnk file. And voila , it workt. Seems that wm5 keeps track of the amount of lnk files that should be in the startmenu folder. Makes sense because there is a limit to how long your startmenu can be.
Thanks for your help
ps. I changed the line in the link file to the following. This way it has the memory icon.
Code:
22#ctlpnl cplmain.cpl,4,0?shellres.dll,-13900
im trying to compare these two dll files but i dont reall know how to
I use this app.
http://www.ultraedit.com/index.php?name=Content&pid=34
I also recommend the free (!) WinDiff, on which I've elaborated in depth at http://discussion.brighthand.com/showthread.php?t=215073
hmm i like the ultraedit but it makes the dlls look all wierd. maybe its supposed to be like that.
my problem is that the dll bta2dp.dll from tornado makes the a2dp work. and the bta2dp.dll from treo 750v does allow it to work.
i feel this file is necessary but i dont know the differances
I presume that's a typo because as I read it, both dll's allow your application to work?
I don't understand the problem, if you have have one that works then isn't that the solution? I don't get what you're trying to achieve. DLL's are composed of functions which are dynamically linked to at runtime from the application code. If the parameters passed from the application to the function in the DLL differ from one version to another, or the return information is different then that's the reason why one works and the other doesn't.
Unless you have the programming skill to debug the procedure as it is entered and subsequently change it then there's nothing that you're going to be able to do other than compare version numbers of the files but since you have already found one that works, what's the issue?
David.
(Now I've noticed you try to compare binary files - windiff is only usable for comparing textual ones. Sorry.)
Hi,
I have been stuyding in details the orwell WM6 rom as well as the pdaviet's.
All these roms come with the SQM module (Service Quality Monitoring) including the ceipui.exe (Customer Experience Improvement Program) executable.
So I rebuild my custom rom with SQM disabled (no files, no registry keys about it) and with ceipui.exe removed, only to relalize that they are two notifications in mxip_notify.vol for ceipui.exe:
1. Connecti to a network,
2. Data Synchronization finished.
So, here are my questions:
1. I could remove the notifications from the mxip_notify.vol once I had flashed the rom with dotFred's taks manager. Does any one know how to edit this file on a PC, PRIOR building the ROM???
2. Is anyone else looking a trimming WM6 from spyware and other unwanted parts (like SQM, Windows Update, Remote flashing, etc.)?
Regards,
eluth.
I'm amazed! Does anyone care?
I posted the following message 3 weeks ago.
Since, I could study all WM6 ROMs for the Wizard that have leaked.
All of them, without exception keep the SQM module and ceipui.exe file that is trying to dial back to MS at the first connection to the network, as well as periodically afterwards....
If you don't believe me, look at mxip_notify.vol. You will see that ceipui.exe is notified at every network connection and every activeSync operation!!!!
So long....
eluth.
I don't think people really care, you're being a bit paranoid, Microsoft aren't going to install Spyware on devices like Sony did as they would have too much to lose from doing so.
The paranoid and the naive
He may be being paranoid, but anyone who seems to think that Microsoft arent into spyware should look at WGA.
If nothing else they are burning your bandwidth for which you are being charged ...
As for Activesync I suppose you can at least block it through the firewall....
Not Paranoid - REALIST!
Guys,
This is not about parnoia, but just about using a pre-released version of WM6 on a wide scale. Because this is what it is all about.
The SQM module and the ceipui.exe (Customer Experience Improvement Program UI, part of the shell module) are REAL. They are even more real, as they are part of the Orwell 1984 ROM and all ROMs build on that I've seen out there.
Now, where this becomes interesting: none, I repeat, NONE, of the WM5 roms I got my hands on is equiped with a Service Quality Monitoring function capable of phoning home!!!
The SQM module is made of the following files:
76bd787c-86b5-4b63-a1d8-1a910f86c8e1.dsm
76bd787c-86b5-4b63-a1d8-1a910f86c8e1.rgu
custsat.dll
sqmce.dll
sqmconn.dll
sqmdata.dll
sqmevent.exe
sqmsvc.dll
uptime.dll
uptimesqm.exe
I've attached the .RGU file here if someone wants to have a look.
The site it's connecting too is sqm.microsoft.com (look into sqmconn.dll), which is well known on the net. Just google it!
I'm just stating facts based on observation here.
This is NOT paranoïa.
Regards,
eluth.
I've tried to remove all of this SQM things. Besides all the above modules found in the dumped ROM, there is another reg key in HKLM\INIT which says "Launch100"="uptimesqm.exe". I think this will initially bring up the SQM Service and thus create those notifications.
I removed them all (rebuild ROM, of course). Works fine. No more SQM service, surely no notification of CEI.
But, it's the ceipui.exe module I can't remove, else it will keep bringing up error message windows saying that ceipui.exe can't be openned.
another thing I can't remove is the Customer Feedback Icon in control pannel, I search and find that it is cplmain.cpl containing it.
So, everything is fine, leave ceipui.exe module alone in ROM, remove other SQM things, let Customer Feedback just be an icon.
Just for reference. No more.
Hello huangyz,
I did that too.
First I removed the SQM module. As you might have notice the "reg key in HKLM\INIT which says "Launch100"="uptimesqm.exe" " is actually set by the 76bd787c-86b5-4b63-a1d8-1a910f86c8e1.rgu file.
So if you re-cook the ROM with pkg2dmp.exe (recreating default.hv and user.hv from boot.hv and applying all .rgu files), that key is not present in the re-generated registry hive.
As far as the "Customer Feedback" icon in control panel, I added the following keys in 1f1aca24-d942-464a-9281-10567741499c.rgu (this is the RGU of the Shell module):
[HKEY_LOCAL_MACHINE\ControlPanel\Customer Feedback]
;"Redirect"="ceipui.exe"
"Group"=dword:1
"Hide"=dword:1
As you noticed, the icon is hard coded into the control panel, however the previous changes hide the icon and prevent it from been operational.
Last, but not least, I deleted the ceipui.exe (which is a file part of the Shell module).
I'm left with a mxip_notify.vol which has initially two notification related to ceipui.exe. These values are not created at boot time but part of the default values of the file (you can do a hex dump of mxip_notify.vol)
And now, I'm back to my original question: I need to get these two ceipui related notifications removed from mxip_notify.vol... if possible at the time I'm building the ROM (right now I do it manually with dotFred's TaskManger, after the facts).
I also notice those notify events. when wm6 is running the file mxipnotify.vol can't be copied out or else we can replace with a clean one while rebuilding rom. can we use the safe mode of spb pocket plus?one more thing, i am wandering how the ceipui.exe be removed from what you call ''shell module'', could i get some hints pls? thnx!
Just an idea. Would it be possible to build some sort of firewall (or such things already available) on the PPC that controls what process or address signals can be sent?
huangyz said:
I also notice those notify events. when wm6 is running the file mxipnotify.vol can't be copied out or else we can replace with a clean one while rebuilding rom. can we use the safe mode of spb pocket plus?one more thing, i am wandering how the ceipui.exe be removed from what you call ''shell module'', could i get some hints pls? thnx!
Click to expand...
Click to collapse
Sorry huangyz,
I should have written Shell package and not module.
When you extract the files of the ROM (with imgfs tools), you can then run dmp2pkg (found in the Scoter Kitchen and other kitchen). I will re-create the different packages under the SYS and OEM directories.
Under SYS you have all the OS packages, and among them one called Shell.
More info about the Scoter kitchen on: http://buzzdev.net/
--eluth.
thanks, eluth
i see you in buzzdev.net
it seems that pkgtool should be used under VisualStudio which not installed on my pc.
so, just imagine i can do that...:lol:
thanks again for your hints.
I've "fixed" it.
I replace the mxip_notify.vol in the WM6 dumped ROM with another one from TMO2.26 WWE shipped ROM, no more ceipui again. :lol:
now what I've removed from the WM6 ROM are:
1, catalog module (marketplace) and all its reg keys
2, sqm related modules and all its reg keys, include one in HKLM\INIT
3, ceipui.exe module and the notifications originated by mxip_notify.vol
It seems CLEAN and my device runs smooth enough now
the mxip_notify.vol from TMO WM5 ROM is put here for convenient reference.
after extract, don't forget to rename it to mxip_notify.vol when cooking ur own ROM.
huangyz said:
thanks, eluth
i see you in buzzdev.net
it seems that pkgtool should be used under VisualStudio which not installed on my pc.
so, just imagine i can do that...:lol:
thanks again for your hints.
Click to expand...
Click to collapse
edit:
just patch XP with .net framework 2.0 redistributable pack and the pkgtool runs fine.
huangyz said:
the mxip_notify.vol from TMO WM5 ROM is put here for convenient reference.
after extract, don't forget to rename it to mxip_notify.vol when cooking ur own ROM.
Click to expand...
Click to collapse
Thanks huangyz,
I did the same. It works quite well.
I think this closes this thread.
--eluth.
Great research Let's hope the .vol holds out on a touch.
I'm crossing my finger using this mxip_notify on my touch gehehehe, let's see if it breaks something.
so, for removing sqm:
1. edit Shell\mxip_notify.vol (del ceipui references)
2. delete Shell\ceipui.exe
3. delete sqm\* except custstat.dll .dsm .rgu
and may pack
I'm making this "DICTIONARY" for android abbreviations & terminology and also about Moto G
use this if Moto G is your first android,if you are new at XDA or if you have any doubt
Thanks to @kloud_ and @appdroid for making other guides that i gonna merge and adapt with this one
Ctrl+F is your new best friend,use it
ANDROID REFERENCE LIST
ADK: Android Development Kit, What people use to develop anything for the Android such as APPs and ROM's
adb: Android Debug Bridge, a command-line debugging application included with the SDK. It provides tools to browse the device, copy tools on the device, & forward ports for debugging. If you are developing in Eclipse using the ADT Plugin, adb is integrated into your development environment.
Android Unveiled on 5 November 2007, Android is a mobile operating system running on the Linux kernel developed by Google.
AOSP: Android Open System Project, usually you will see this term when referring to a program or ROM. This will mean that the program or ROM was taken from Google & does not contain any modifications done by the phone Manufacturer or the phone service provider. This is Android the way Google intended.
ART - successor of Dalvik, a virtual machine (VM) that’s part of the Android OS. ART is faster than Dalvik and saves more energy
Baseband or Radio: In communications & signal processing, the baseband describes signals & systems whose range of the frequencies measured from close to 0 hertz to a cut-off frequency, a maximum bandwidth or highest signal frequency; it is sometimes used to describe frequencies starting close to zero
Binary - (sometimes called bin's) a group of executable files.
Bloatware:unnecessary features that are not used by end users and come with the phone (like Samsung touchwiz or other APPs) (luckly Moto G is almost a pure/stock android)
BootLoader: In literal terms, boot loader is code that is executed before any Operating System starts to run. The concept of boot loaders is universal to virtually all Operating systems that includes operating systems on your PC, laptop, Smartphone, & other such devices. Boot loaders basically package the instructions to boot operating system kernel & most of them also have their own debugging or modification environment. As the boot-loader kicks off before any piece of software on your device, it makes it extremely processor specific & every motherboard has its own bootloader.
Boot Loader(Unlocked): A locked or unlocked boot loader is what gives you access to “root.” “Root” is another big word in the Android community. If you “root” a device, it means you have “super user” access or “administrator” access to the operating system that runs on your phone. Root access of your Android device gives you the ability to flash ROMs. Alert:unlocking your Moto G boot-loader will void your warranty
Boot Loop: Simply means something is preventing the phone from completing it's boot cycle & is stuck between the boot animation & the unlock screen, creating a looped animation. This is often fixed by either reloading a NAndroid, or Reflashing a ROM from the xRecovery/ClockworkMod Recovery/Flashtool.
Brick or Bricked: Jargon for a completely unrecoverable device, (no more than a brick or paperweight)
Bug or Software Bug: An Error or flaw in software that produces a failure or unexpected/unwanted result. Typically created from incorrect code, this is why some ROMs are better & smoother running than others because developers have taken the time to input "perfect" code (read put in a lot of hours & hard work)
Busybox: A single multicall binary that packages the functionality of most widely used standard Unix tools, BusyBox provides a fairly complete environment for any small or embedded system.
CDMA/GSM - A type of network communication between phones and carriers. GSM phones normally are included with SIM Cards that authorize them onto the network. CDMA have this authorization built in and do not need a sim card.
COMPCACHE: (compressed caching) is, in short, virtual swap, setting aside a certain percentage (usually 25%) of your RAM as 'compressed' swap. Compcache compresses the data that would normally go to swap, then moves it back into RAM, and reverses the process when moving it out of the 'compressed' swap. However, this is a classic space-time tradeoff. You effectively get more RAM from the compression, but it is slower than 'normal' RAM due to the CPU time required to compress and decompress the swapped pages.
ClockworkMod - CWR - CWM: A recovery program that is often used to apply updates, ROMs, or create a back up or restore a backup file
Dalvik: An open source, register-based virtual machine (VM) that’s part of the Android OS. The Dalvik VM executes files in the Dalvik Executable (.dex) format & relies on the Linux kernel for additional functionality like threading & low-level memory management. The virtual machine is register-based, and it can run classes compiled by a Java language compiler that have been transformed into its native format using the included "dx" tool.
Dalvik Cache: A program cache area for the program Dalvik. Dalvik is a java based virtual machine that is the basis for running your programs (the ones that have the .apk extension). In order to make access times faster (because there's not JIT (just in time) compiler installed by default), the dalvik-cache is the result of dalvik doing a optimization of the running program. It's similar to the prefetch files in Windows.
DDMS: Dalvik Debug Monitor Service, a GUI debugging application included with the SDK. It provides screen capture, log dump, and process examination capabilities. If you are developing in Eclipse using the ADT Plugin, DDMS is integrated into your development environment.
Deep Sleep: A state when the CPU is off, display dark, device is waiting for external input.
De-odex: Apk files have respective odexes that devs use to supposedly save space. Deodexing means you convert it back to a .dex file & put it back inside the apk. This allows you to easily replace files (not having to worry about odexes), but the main point was to deodex services.jar so that you can change all text to different colors (such as the clock color to white) & to deodex services.jar, you need to deodex everything.
Dev. or Developer: An individual that creates, or alters a file in such a manner as to advance the program
Drawable: A compiled visual resource that can be used as a background, title, or other part of the screen. A drawable is typically loaded into another UI element, for example as a background image. A drawable is not able to receive events, but does assign various other properties such as "state" and scheduling, to enable subclasses such as animation objects or image libraries. Many drawable objects are loaded from drawable resource files — xml or bitmap files that describe the image. Drawable resources are compiled into subclasses of android.graphics.drawable. For more information about drawables and other resources.
Execute - To "run" or "start" a binary
Fastboot: Protocol used to update the flash file system in Android devices from a host over USB. It allows flashing of unsigned partition images.
Flash - Flashing : The process of applying a firmware image (or ROM) to a device. It generally entails a very specific order of steps. Failing to complete any one of these steps properly may result in soft/hard) bricking
Flash Memory: a program technology that can be electrically erased & reprogrammed
FOTA - "Firmware over the air" this normally refers to ROM's but can refer to radio firmware (see OTA)
Kernel: The main component of Android operating system.
It is a bridge between applications & the actual data processing done at the hardware level.
The kernel's responsibilities include managing the system's resources (the communication between hardware & software components).
[Usually as a basic component of an operating system, a kernel can provide the lowest-level abstraction layer for the resources
(especially processors & I/O devices) that application software must control to perform its function.
It typically makes these facilities available to application processes through inter-process communication mechanisms & system calls.
Operating system tasks are done differently by different kernels, depending on their design & implementation.]
Governor - A system embedded into the kernel to automatically change the current working CPU frequency depending on the workload. It would only go up to what it is overclocked (or underclocked) to, this is called the maximum frequency. It would not drop bellow the (just as easily configurable) minimum frequency.
Jelly Bean - JB - Android from 4.1 to 4.3
JDK - "Java Development Kit" an SDK for the java platform. It is needed to run the Android SDK.
JRE - "Java Runtime Environment" a collection of binarys and files to allow java software to execute.
KANG - The process of creating a code based of someone else's code.
Kit Kat - KK - Android 4.4 the newest android available (supported by Moto G)
Library's/Libs - a set of instructions for applications to use to function. A functioning camera lib would allow the camera to be used.
Logcat :A debugging tool built into Android devices that displays system logs as they occur. See Logcat.
Manifest File: An XML file that each application must define, to describe the application's package name, version, components (activities, intent filters, services), imported libraries, and describes the various activities, and so on. See The AndroidManifest.xml File for complete information.
Nine-patch / 9-patch / Ninepatch image
A re-sizeable bitmap resource that can be used for backgrounds or other images on the device.
Nandroid or Nandroid Backup: A file typically created in the custom recovery program, such as xRecovery, that is a carbon copy of whatever state your phone is in before a drastic change is made. The file then can be moved onto or off of the SD card for later use in case something should go wrong in the ROM or Update, or a Boot Loop occurs
OEM: Original Equipment Manufacturer, the people who actually put together electronic hardware. Also refers to any equipment original to the phone, or produced by the company for the phone
OpenGL ES: Android provides OpenGL ES libraries that you can use for fast, complex 3D images. It is harder to use than a Canvas object, but better for 3D objects. The android.opengl and javax.microedition.khronos.opengles packages expose OpenGL ES functionality.
Open-Source - (not to be confused with free) A piece of software that is free to edit, use, distribute and share with no charge.
OS: Operating system, I.E. Windows Vista, LINUX or MAC or Android
OTA: Over-the-Air; method T-Mobile, & some other phone companies, uses to update Android phones. The new versions of Android are developed by Google & then released to OEM's, Sony Ericsson in our case. The OEM then writes drivers that enable the new software to work on the phone's hardware. They also develop any specialized UI (user interface), like Timescape & Mediascape, or other software they want to include. Once this is complete, they turn it over to the cell phone company, (e.g.)Tmobile, who then have to do the final checks to make sure the update works, & then distributes it over there data network using their cell transmitters.
Overclocking (OC): Speeding up the CPU past the factory presets to achieve a faster & more responsive device (prolonged run can be injurious to your device, so be careful.)
RAM- Could be one of three meanings: 1. Memory for the CPU to process processes. 2. Random Access Memory, a place where information can be used, executed from, modified, or deleted
Recovery - Its a dedicated Android partition, that has Recovery console installed. This is invisible during normal operation of the android device.
ROM: Read Only Memory, a program used to make changes to anything from the look of the home screen to icons to custom boot animation
Root: Common word associated with giving a user "super user" access to their phones programming & other various aspects that would normally not be possible, also known as "Jailbroken" for iPhone's, "Administrator Rights" in Windows OS.
Shell or SSH: The shell is the layer of programming that understands & executes the commands a user enters. In some systems, the shell is called a command interpreter. A shell usually implies an interface with a command syntax (think of the DOS operating system & its "C:>" prompts & user commands such as "dir" & "edit"). secure shell or ssh is a network protocol that allows data to be exchanged using a secure channel between two networked devices
SQLite: An embedded relational database management system contained in a relatively small (~275 kB) C programming library. It is multitasking concerning reads. Writes can be done only one-at-a-time. It is a popular choice for local/client storage on web browsers. It has many bindings to programming languages. It is arguably the most widely used database engine, as it is used today by several widespread browsers, operating systems, embedded systems among others
Stock Android : Simply means an unaltered state, such as when you first purchase your phone fromVerizon/Your Service Provider or when you repair your phone using PC Companion or SE Update Service(SEUS)
SU: "Super user", or root permissions
Superuser: A program, which gives unlimited access privileges to perform any or all operations on the operating system.
SWAP: is, in short, virtual RAM. With swap, a small portion of the hard drive is set aside and used like RAM. The computer will attempt to keep as much information as possible in RAM until the RAM is full. At that point, the computer will begin moving inactive blocks of memory (called pages) to the hard disk, freeing up RAM for active processes. If one of the pages on the hard disk needs to be accessed again, it will be moved back into RAM, and a different inactive page in RAM will be moved onto the hard disk ('swapped'). The trade off is disks and SD cards are considerably slower than physical RAM, so when something needs to be swapped, there is a noticeable performance hit.
Unlike traditional swap, Android's Memory Manager kills inactive processes to free up memory. Android signals to the process, then the process will usually write out a small bit of specific information about its state (for example, Google Maps may write out the map view coordinates; Browser might write the URL of the page being viewed) and then the process exits. When you next access that application, it is restarted: the application is loaded from storage, and retrieves the state information that it saved when it last closed. In some applications, this makes it seem as if the application never closed at all. This is not much different from traditional swap, except that Android apps are specially programed to write out very specific information, making Android's Memory Manager more efficient that swap.
Theme: A set of icons, backgrounds & app trays that change the aesthetics of the overall look of the Android & its applications. It has a set of properties (text size, background color, and so on) bundled together to define various default display settings. Android provides a few standard themes, listed in R.style (starting with "Theme_").
TUN/TAP: Refers to a network TUNnel, operates within layer 3 packets, or ip packets. Packets sent by a system via a TUN/TAP device are delivered to a user-space program that attaches itself to the device. A user space program may also pass packets into a TUN/TAP device. In this case TUN/TAP device delivers (or "injects") these packets to the operating system's network stack thus emulating their reception from an external source.
Underclocking(UC): Slowing down the CPU mainly to limit battery usage
Undervolting(UV): Basically keeping the clock speed same (or overclocking it) & reduce the voltage at each cpu cycle.
xRecovery: A recovery program based on the ClockworkMod Recovery sources used to apply updates, ROMs, or create a back up or restore a backup file
Wipe - to clean your device memory,recommended before flashing
File Types:
.dex: Compiled Android application code file. Android programs are compiled into .dex (Dalvik Executable) files, which are in turn zipped into a single .apk file on the device. .dex files can be created by automatically translating compiled applications written in the Java programming language.
.sbf: Summation Briefcase File
.apk or APK's: An .apk file extension denotes an Android Package (APK) file, an .apk file can be opened & inspected using common archive tools. Each Android application is compiled and packaged in a single file that includes all of the application's code (.dex files), resources, assets, and manifest file. The application package file can have any name but must use the .apk extension. For example: myExampleAppname.apk. For convenience, an application package file is often referred to as an ".apk".
.tar: Similar to a zip file(derived from tape archive), a tar file archives multiple files into one file
.tgz: TGZ files (gnu-zipped .tar file) are commonly used as install packages for Slackware Linux.
######
Will add latter some MOTOROLA MOTO G especific terms here
######
If you doubt is not about general android,but about Moto G,
--Check this FAQ made by @matmutant
Frequently Asked Questions -Motorola Moto G
--Also check this Resource Guide made by @Perseus71
Welcome to your Motorola Moto G
#####
Help improving this topic,quote me and give your suggestion
thanks for a still unknown ADM for sticking this thread
if i helped you with this post,just hit the thanks button,
This thread looks nice and useful, but make sure not to duplicate things from my FAQ or @Perseus71 guide that would be useless and confusing
@matmutant
Yes sir, I'm taking this care and wanna make this thread useful
if you know any thread that i should include in this topic or have any tip,just let me know
My Thread has a list of terms similarly in the first post. But this list seems more specific to Moto G.
Either way there seems to be some terms that are missing here but are present in mine.
Would you be kind enough to merge the differences so I will link to yours and get rid of mine ?
@Perseus71 Just realized I missed some terms, thanks for noticing, will merge them and also include new terms such as "ART" "KK "JB" "google now"
That would be a nice idea, and then rename this thread to something like "Android related terms and abbreviations" because it's neither a FAQ, nor a Guide
72off said:
@Perseus71 Just realized I missed some terms, thanks for noticing, will merge them and also include new terms such as "ART" "KK "JB" "google now"
Click to expand...
Click to collapse
matmutant said:
That would be a nice idea, and then rename this thread to something like "Android related terms and abbreviations" because it's neither a FAQ, nor a Guide
Click to expand...
Click to collapse
+1 all round.
@72off please let me know when you are done.
@Perseus71 @matmutant
Updates on 15/01 = new terms added
Binary - (sometimes called bin's) a group of executable files.
CDMA/GSM - A type of network communication between phones and carriers. GSM phones normally are included with SIM Cards that authorize them onto the network. CDMA have this authorization built in and do not need a sim card.
Execute - To "run" or "start" a binary
FOTA - "Firmware over the air" this normally refers to ROM's but can refer to radio firmware (see OTA)
Governor - A system embedded into the kernel to automatically change the current working CPU frequency depending on the workload. It would only go up to what it is overclocked (or underclocked) to, this is called the maximum frequency. It would not drop bellow the (just as easily configurable) minimum frequency.
JDK - "Java Development Kit" an SDK for the java platform. It is needed to run the Android SDK.
JRE - "Java Runtime Environment" a collection of binarys and files to allow java software to execute.
KANG - The process of creating a code based of someone else's code.
Library's/Libs - a set of instructions for applications to use to function. A functioning camera lib would allow the camera to be used.
Open-Source - (not to be confused with free) A piece of software that is free to edit, use, distribute and share with no charge.
RAM - Could be one of three meanings: 1. Memory for the CPU to process processes. 2. Random Access Memory, a place where information can be used, executed from, modified, or deleted
Recovery - Its a dedicated Android partition, that has Recovery console installed. This is invisible during normal operation of the android device.
Wipe - to clean your device memory,recommended before flashing
Jelly Bean - JB - Android from 4.1 to 4.3
Kit Kat - KK - Android 4.4 the newest android available (supported by Moto G)
ART - successor of Dalvik, a virtual machine (VM) that’s part of the Android OS. ART is faster than Dalvik and saves more energy
Right now 18/01 ordering by alphabetic order [completed]
Reference Links
It might be nice to add in some reference links for many of the terms to the official android pages.
ART - http://source.android.com/devices/tech/dalvik/art.html
.DEX - http://source.android.com/devices/tech/dalvik/dex-format.html
Dalvaik - http://source.android.com/devices/tech/dalvik/index.html
ADB - http://developer.android.com/tools/help/adb.html
Logcat - http://developer.android.com/tools/help/logcat.html
Other suggestions
At the end of the Dalvaik section you might add a sentence that says "see ART".
Maybe a mention about XPosed framework since it is very prevalent now.
In the definition of ROM it might be nice to explain a ROM image.
This is something I cannot find: What exactly does AOSPA(+) mean? Alternative?
Kernel is alphabetically in the wrong position in the list.
Explanation for the term MOD / Modification.
Add cool Android KitKat and Jelly Bean history link http://www.android.com/kitkat/
:good: Thanks for the nice list.
OTG missing?
AS this thread is always under development,i'm glad for the suggestions to make this a better thread
DigitalSnow said:
It might be nice to add in some reference links for many of the terms to the official android pages.
ART - http://source.android.com/devices/tech/dalvik/art.html
.DEX - http://source.android.com/devices/tech/dalvik/dex-format.html
Dalvaik - http://source.android.com/devices/tech/dalvik/index.html
ADB - http://developer.android.com/tools/help/adb.html
Logcat - http://developer.android.com/tools/help/logcat.html
[ ^ Perfect]
Other suggestions
At the end of the Dalvaik section you might add a sentence that says "see ART" [good idea]
Maybe a mention about XPosed framewor http://cdn3.xda-developers.com/images/editor/color.gifk since it is very prevalent now. [will be done]
In the definition of ROM it might be nice toexplain a ROM image [ok]
This is something I cannot find: What exactly does AOSPA(+) mean? Alternative? [ I thinck so since it's mostly related do paranoid android rom]
Kernel is alphabetically in the wrong position in the list.[Yeah,kernel is drunk,gonna slap him on the face and move to his place]
Explanation for the term MOD / Modification.
Add cool Android KitKat and Jelly Bean history link http://www.android.com/kitkat/ [wrong link]
:good: Thanks for the nice list.
Click to expand...
Click to collapse
@Fedroid
OTG missing?
Click to expand...
Click to collapse
how could i forget? will be added. thanks
Nice info.I will add it into my bookmark. :good:
Great post thank you.
I suggest, the add of GPE definition : "Google Play Edition". Especially in the case of Moto G
Was not so obvious to me until I google it.
Another term that might be good to add is AWS since it is a unique factor between Moto G models.
AWS: Advanced Wireless Services in terms of the Moto G is the 3G UHF Frequency of 1700 MHz - 2100 MHz "T-Mobile"
I implemented a browser based encryption solution which runs on Windows RT (and many other Windows computers). All I wrote was the HTML page, I am leveraging Crypto.JS javascript library for encryption algorithm. I am using the HTML 5 File API implementation which Microsoft provides for reading and writing files.
I make no claim on this but seems to work good for me. Feel free to feedback if you have any suggestions. The crypto.js library supports many different algorithms and configuration so feel free to modify it to your own purposes.
You can download the zip file to your surface, extract it and load the TridentEncode.htm file into Internet Explorer.
If you want to save to custom directory you probably need to load it from the Desktop IE instead of metro IE (to get the file save dialog). I usually drag and drop the file onto desktop IE and from there I can make favorite. This should work in all IE 11 and probably IE 10 browsers... if you use other browsers you may need to copy paste into the fields since the File API implementation seems rather browser specific. Running the html page from the local filesystem means that there is no man-in-the-middle which helps eliminate some of the vulnerabilities of using a javascript crypto implementation. You could also copy the attached zip file to your skydrive to decrypt your files from other computers.
Skydrive files in theory are secure (unless they are shared to public) so this might be useful for adding another layer of protection to certain info.
Again, use at your own risk, but feel free to play around and test it, and offer any suggestions or critiques of its soundness, or just use it as a template for your own apps.
Ok... this is really cool! Nice idea, and a good first implementation.
With that said, I have a few comments (from a security perspective). As an aside, minimized JS is the devil and should be annihilated with extreme prejudice (where not actually being used in a bandwidth-sensitive context). Reviewing this thing took way too long...
1) Your random number generation is extremely weak. Math.random() in JS (or any other language I'm aware of, for that matter) is not suitable for use in cryptographic operations. I recommend reading http://stackoverflow.com/questions/4083204/secure-random-numbers-in-javascript for suggestions. The answer by user ZeroG (bottom one, with three votes, as of this writing) gets my recommendation. Unfortunately, the only really good options require IE11 (or a recent, non-IE browser) so RT8.0 users are SOL.
NOTE: For the particular case in question here (where the only place I can see that random numbers are needed is the salt for the key derivation), a weak PRNG is not a critical failing so long as the attacker does not know, before the attack, what time the function is called at. If they do know, they can pre-compute the likely keys and possibly succeed in a dictionary attack faster than if they were able to generate every key only after accessing the encrypted file.
2) Similarly, I really recommend not using a third-party crypto lib, if possible; window.crypto (or window.msCrypto, for IE11) will provide operations that are both faster and *much* better reviewed. In theory, using a JS library means anybody who wants to can review the code; in practice, the vast majority of people are unqualified to either write or review crypto implementations, and it's very easy for weaknesses to creep in through subtle errors.
3) The default key derivation function (as used for CryptoJS.AES.encrypt({string}, {string})) is a single iteration of MD5 with a 64-bit salt. This is very fast, but that is actually a downside here; an attacker can extremely quickly derive different keys to attempt a dictionary attack (a type of brute-force attack where commonly used passwords are attempted; in practice, people choose fairly predictable passwords so such attacks often succeed quickly). Dictionary attacks can be made vastly more difficult if the key derivation process is made more computationally expensive. While this may not matter so much for large files (where the time to perform the decryption will dominate the total time required for the attack), it could matter very much for small ones. The typical approach here is to use a function such as PBKDF2 (Password-Based Key Derivation Function) with a large number of iterations (in native code, values of 20000-50000 are not uncommon; tune this value to avoid an undesirably long delay) although other "slow" KDFs exist.
4) There's no mechanism in place to determine whether or not the file was tampered with. It is often possible to modify encrypted data, without knowing the exact contents, in such a way that the data decrypts "successfully" but to the wrong output. In some cases, an attacker can even control enough of the output to achieve some goal, such as compromising a program that parses the file. While the use of PKCS7 padding usually makes naïve tampering detectable (because the padding bytes will be incorrect), it is not a safe guarantee. For example, a message of 7 bytes (or 15 or 23 or 31 or any other multiple of 8 + 7) will have only 1 byte of padding; thus there is about a 0.4% (1 / 256) chance that even a random change to the ciphertext will produce a valid padding. To combat this, use an HMAC (Hash-based Message Authentication Code) and verify it before attempting decryption. Without knowing the key, the attacker will be unable to correct the HMAC after modifying the ciphertext. See http://en.wikipedia.org/wiki/HMAC
5) The same problem as 4, but from a different angle: there's no way to be sure that the correct key was entered. In the case of an incorrect key, the plaintext will almost certainly be wrong... but it is possible that the padding byte(s) will be correct anyhow. With a binary file, it may not be possible to distinguish a correct decryption from an incorrect one. The solution (an HMAC) is the same, as the odds of an HMAC collision (especially if a good hash function is used) are infinitesimal.
6) Passwords are relatively weak and often easily guessed. Keyfiles (binary keys generated from cryptographically strong random number generators and stored in a file - possibly on a flashdrive - rather than in your head) are more secure, assuming you can generate them. It is even possible to encrypt the keyfile itself with a password, which is a form of two-factor authentication: to decrypt the data that an attacker wants to get at, they need the keyfile (a thing you have) and its password (a thing you know). Adding support for loading and using keyfiles, and possibly generating them too, would be a good feature.
The solutions to 3-5 will break backward compatibility, and will also break compatibility with the default parameters for openssl's "enc" operation. This is not a bad thing; backward compatibility can be maintained by either keeping the old version around or adding a decrypt-version selector, and openssl's defaults for many things are bad (it is possible, and wise, to override the defaults with more secure options). For forward compatibility, some version metadata could be prepended to the ciphertext (or appended to the file name, perhaps as an additional extension) to allow you to make changes in the future, and allow the encryption software to select the correct algorithms and parameters for a given file automatically.
Wow thanks GDTD that's great feedback
Not sure about his minified sources, the unminified aes.js in components is smaller than the minified version (which I am using) in rollups. I'll have to look into what his process for 'rollup' is to see if I can derive a functional set of non-minified script includes. If I can do that it would be easier to replace (what I would guess is) his reliance on Math.random.
His source here mirrors the unminified files in components folder : https://code.google.com/p/crypto-js/source/browse/tags/3.1.2/src
msCrypto that would be great, I had no idea that was in there. I found a few (Microsoft) samples so I will have to test them out and see if I can completely substitute that for crypto.js. Would be more keeping in line with the name I came up with.
Currently this version only works for text files, I am using the FileAPI method reader.readAsText(). I have been trying to devise a solution for binary files utilizing reader.readAsArrayBuffer but as yet I haven't been able to convert or pass this to crypto.js. I will need to experiment more with base64 or other interim buffer formats (which Crypto.js or msCrypto can work with) until I can get a better understanding of it.
Metadata is a great idea, maybe i can accommodate that with a hex encoded interim format.
You seem extremely knowledgeable in the area of encryption, hopefully i can refine the approach to address some of the issues you raised by setting up proper key, salt, and IV configuration... I'm sure I will understand more of your post as i progress (and after reading it about 20 times more as a reference).
Too bad we don't a web server for RT, that would at least open up localStorage for json serialization (mostly for other apps I had in mind). I guess they might not allow that in app store though. Could probably run one of a developers license though (renewed every 1-2 months)?
nazoraios said:
Too bad we don't a web server for RT, that would at least open up localStorage for json serialization (mostly for other apps I had in mind). I guess they might not allow that in app store though. Could probably run one of a developers license though (renewed every 1-2 months)?
Click to expand...
Click to collapse
I cant comment too much on the encryption, GoodDayToDie has covered anything I could contribute and more. But there is a functioning web server on RT. Apache 2.0 was ported: http://forum.xda-developers.com/showthread.php?t=2408106 I dont know if everything is working on it, I dont own an RT device and last time I tried I couldnt get apache to run on 64 bit windows 8 anyway (needed it at uni, spent hours going through troubleshooting guides and it never worked on my laptop, gave up and ran it under linux in virtualbox where it took 2 minutes to have functioning the way I needed it to).
Curious about the performance. Speaking of encryption, 7-Zip has it built-in, and from the discuss in StackExchange, it seems pretty good.
One of the neat things about this thing (local web app? Pseudo-HTA (HTml Application)? Not sure if there's a proper name for such things) is that it runs just fine even on non-jailbroken devices. That's a significant advantage, at least for now.
Running a web server should be easy enough. I wrote one for WP8 (which has a subset of the allowed APIs for WinRT) and while the app *I* use it in won't be allowed in the store, other developers have taken the HTTP server component (I open-sourced it) and packaged it in other apps which have been allowed just fine. With that said, there are of course already file crypto utilities in the store anyhow... but they're "Modern" apps so you might want to develop such a server anyhow so you can use it from a desktop web browser instead.
Web cryptography (window.crypto / window.msCrypto) is brand new; it's not even close to standardization yet. I'm actually kind of shocked MS implemented it already, even if they put it in a different name. It's pretty great, though; for a long time, things like secure random numbers have required plugins (Flash/Java/Silverlight/whatever). Still, bear in mind that (as it's still far from standardized), the API might change over time.
Yep, I think of them as Trident apps since trident is what Microsoft calls their IE rendering engine, but I guess they are sort of offline web apps (which come from null domain). Being from null domain you are not allowed to use localstorage which is domain specific. You also are not allowed to make ajax requests. You just have file api and json object serialization to make do with I/O.
Another app I am working on is a kind of Fiddler app similar to http://jsfiddle.net/ where you can sandbox some simple script programs.
Kind of turning an RT device into a modern/retro version of a commodore 64 or other on-device development environments. Instead of basic interpreter you've got your html markup and script.
I have an attached demo version which makes available jquery, jquery-ui, alertify javascript libraries in a sandbox environment that you can save as .prg files.
I put a few sample programs in the samples subfolder. Some of the animation samples (like solar system) set up timers which may persist even after cleared so you might need to reload the page to clear those.
It takes a while to extract (lots of little files for all the libraries) but once it extracts you can run the html page and I included a sample program 'Demo Fiddle.prg' you can load and run to get an idea.
I added syntax highlighting editors (EditArea) which seems to work ok and let's you zoom each editor full screen.
The idea would be to take the best third party javascript libraries and make them available and even make shortcuts or minimal API for making it easier to use them. Common global variable, global helper methods, ide manipulation. I'd like to include jqplot for charting graphs, maybe for mathematical programs and provide api for user to do their own I/O within the environment.
These are just rough initial demos, and obviously open source so if anyone wants to take the ideas and run with them i'd be interested in seeing what others do. Otherwise I will slowly evolve the demos and release when there are significant changes.