Coder Social home page Coder Social logo

signalapp / signal-android Goto Github PK

View Code? Open in Web Editor NEW
25.0K 899.0 6.0K 1.23 GB

A private messenger for Android.

Home Page: https://signal.org

License: GNU Affero General Public License v3.0

Java 53.19% Python 0.02% Makefile 0.01% C++ 0.01% Dockerfile 0.01% Kotlin 46.65% Handlebars 0.11% CSS 0.01% JavaScript 0.01%

signal-android's Introduction

Signal Android

Signal is a simple, powerful, and secure messenger.

Signal uses your phone's data connection (WiFi/3G/4G/5G) to communicate securely. Millions of people use Signal every day for free and instantaneous communication anywhere in the world. Send and receive high-fidelity messages, participate in HD voice/video calls, and explore a growing set of new features that help you stay connected. Signal’s advanced privacy-preserving technology is always enabled, so you can focus on sharing the moments that matter with the people who matter to you.

Currently available on the Play Store and signal.org.

Get it on Google Play

Contributing Bug reports

We use GitHub for bug tracking. Please search the existing issues for your bug and create a new one if the issue is not yet tracked!

https://github.com/signalapp/Signal-Android/issues

Joining the Beta

Want to live life on the bleeding edge and help out with testing?

You can subscribe to Signal Android Beta releases here: https://play.google.com/apps/testing/org.thoughtcrime.securesms

If you're interested in a life of peace and tranquility, stick with the standard releases.

Contributing Code

If you're new to the Signal codebase, we recommend going through our issues and picking out a simple bug to fix (check the "easy" label in our issues) in order to get yourself familiar. Also please have a look at the CONTRIBUTING.md, that might answer some of your questions.

For larger changes and feature ideas, we ask that you propose it on the unofficial Community Forum for a high-level discussion with the wider community before implementation.

Contributing Ideas

Have something you want to say about Signal projects or want to be part of the conversation? Get involved in the community forum.

Help

Support

For troubleshooting and questions, please visit our support center!

https://support.signal.org/

Documentation

Looking for documentation? Check out the wiki!

https://github.com/signalapp/Signal-Android/wiki

Legal things

Cryptography Notice

This distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.

The U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this distribution makes it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.

License

Copyright 2013-2024 Signal Messenger, LLC

Licensed under the GNU AGPLv3: https://www.gnu.org/licenses/agpl-3.0.html

Google Play and the Google Play logo are trademarks of Google LLC.

signal-android's People

Contributors

agrajaghh avatar alan-signal avatar alex-signal avatar asamk avatar cascheberg avatar cbrune-signal avatar clark-signal avatar cody-signal avatar ehrenkret-signal avatar feurenard avatar fumiakiy avatar greyson-signal avatar haffenloher avatar jim-signal avatar lucio-signal avatar mcginty avatar mcloo avatar meskio avatar moxie0 avatar mtang-signal avatar nicholas-signal avatar rashad-signal avatar rhodey avatar riset avatar s0 avatar sgn-32 avatar thoughtbox avatar unrulygnu avatar varsha888 avatar veeti avatar

Stargazers

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

Watchers

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

signal-android's Issues

Feature Request: port to iOS

Make a port to iPhone/iOS. This would make textsecure a ubiquitous messaging platform available on the two most popular mobile platforms in the market.

Improve the initial SMS database populating process (force the screen to stay on?)

When launching TextSecure for the first time, it allows one to import the standard SMS database.

However, this process can take quite a long time (tried with 3000+ SMS). The screen has the time to turns off, and when you turn it on again, TextSecure asks again if you want to import the standard SMS database. If you say "Yes" again, a lot of messages are duplicated…

The easiest fix would be to inhibate the screen saver, but it wouldn't handle more complex cases (such as the user launching another program while TextSecure is processing the SMS)

Feature Request - Block Texts

It would be a nice feature to be able to block texts. This could be because someone is sending you spam SMS or maybe you have a person who is bothering you. I think you should be able to instruct the program to reject texts from certain numbers.

Rarz com.phone error after reboot

After installing TextSecure from market, everything runs smooth and TextSecure works as intended. However after a reboot of the phone wifi works, but gsm/3g has no connection/error. There is a message "The process com.android.phone has stopped unexpectedly. Please try again".
After another reboot the problem insists.
After removing TextSecure and rebooting, everything works as expected again.

Phone model : Motorola droid RazR XT910
ver : 651.73.18.XT910.NonEFIGSRetail.en.EU
Android: 2.3.5
Kernel: 2.6.35.7-ge439ab5
Build 6.5.1-73_SPU-9

Greetings from Holland
Yaffle

Can't send MMS from system messaging app with TextSecure installed.

Sending MMS from any app is 100% impossible while TextSecure is installed (even with the MMS and SMS options disabled). To the point where if I uninstall TS while the picture is trying to send, it completes sending a few moments after the uninstall is finished.

This occurs on a MetroPCS LG Motion 4G.

Feature optimization "include whitespace tag"

Its not exactly a number one priority, but...

When the "Include whitespace tag" is used it adds a white-space at the end of non-encrypted messages like it says it does.

This is fine until your in an area with fluctuating signal, because when a message doesn't send it still adds the white-space and if you copy the message in one of two ways, it still has a white-space and duplicates it at the end of the message and can cause the message not to display correctly.

The two ways in concern are...

  1. The click and hold on a message to copy it.
  2. The clicking on a message to put it in the message box.

This is easily fixed by disabling the feature, but if the feature is there and can be fixed up to be better why not.

Possible solution could be a resend button for when it fails or even a check for a white space before adding one.

TextSecure crashes when opening a specific SMS message

I'm running TextSecure 0.5.7 from Google Play. I got a text message that says it's from Anonymous, and the part of the description I can see from the list of messages is "This is a test of the Commercial Mobile Alert System. This is o...". When I open it TextSecure crashes.

Here is the crash:

W/MmsSmsDatabase(21441): Executing query: SELECT _id, body, type, address, subject, normalized_date AS date, m_type, msg_box, transport_type FROM (SELECT DISTINCT date * 1 AS normalized_date, _id, body, read, thread_id, type, address, subject, date, NULL AS m_type, NULL AS msg_box, 'sms' AS transport_type FROM sms WHERE (thread_id = 31) UNION ALL SELECT DISTINCT date * 1000 AS normalized_date, _id, NULL AS body, read, thread_id, NULL AS type, NULL AS address, NULL AS subject, date, m_type, msg_box, 'mms' AS transport_type FROM mms WHERE (thread_id = 31) ORDER BY normalized_date ASC)
I/Database(21441): sqlite returned: error code = 8, msg = statement aborts at 27: [UPDATE thread SET read=? WHERE _id = ?] attempt to write a readonly database
E/Database(21441): Error updating read=1 using UPDATE thread SET read=? WHERE _id = ?
D/AndroidRuntime(21441): Shutting down VM
W/dalvikvm(21441): threadid=1: thread exiting with uncaught exception (group=0x4001e578)
E/AndroidRuntime(21441): FATAL EXCEPTION: main
E/AndroidRuntime(21441): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.thoughtcrime.securesms/org.thoughtcrime.securesms.ComposeMessageActivity}: android.database.sqlite.SQLiteException: error code 8: attempt to write a readonly database
E/AndroidRuntime(21441):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
E/AndroidRuntime(21441):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
E/AndroidRuntime(21441):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
E/AndroidRuntime(21441):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
E/AndroidRuntime(21441):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(21441):    at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime(21441):    at android.app.ActivityThread.main(ActivityThread.java:3691)
E/AndroidRuntime(21441):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(21441):    at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(21441):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
E/AndroidRuntime(21441):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
E/AndroidRuntime(21441):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(21441): Caused by: android.database.sqlite.SQLiteException: error code 8: attempt to write a readonly database
E/AndroidRuntime(21441):    at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
E/AndroidRuntime(21441):    at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:61)
E/AndroidRuntime(21441):    at android.database.sqlite.SQLiteDatabase.updateWithOnConflict(SQLiteDatabase.java:1868)
E/AndroidRuntime(21441):    at android.database.sqlite.SQLiteDatabase.update(SQLiteDatabase.java:1797)
E/AndroidRuntime(21441):    at org.thoughtcrime.securesms.database.ThreadDatabase.setRead(ThreadDatabase.java:148)
E/AndroidRuntime(21441):    at org.thoughtcrime.securesms.ConversationAdapter.<init>(ConversationAdapter.java:79)
E/AndroidRuntime(21441):    at org.thoughtcrime.securesms.ComposeMessageActivity.initializeConversationAdapter(ComposeMessageActivity.java:603)
E/AndroidRuntime(21441):    at org.thoughtcrime.securesms.ComposeMessageActivity.onStart(ComposeMessageActivity.java:169)
E/AndroidRuntime(21441):    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1129)
E/AndroidRuntime(21441):    at android.app.Activity.performStart(Activity.java:3817)
E/AndroidRuntime(21441):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1624)
E/AndroidRuntime(21441):    ... 11 more
W/ActivityManager( 2683):   Force finishing activity org.thoughtcrime.securesms/.ComposeMessageActivity
E/        ( 2683): Dumpstate > /data/log/dumpstate_app_error
W/ActivityManager( 2683):   Force finishing activity org.thoughtcrime.securesms/.SecureSMS

I copied my messages.db to my computer and looked through it. Here's the offending SMS message:

sqlite> .schema sms
CREATE TABLE sms (_id integer PRIMARY KEY, thread_id INTEGER, address TEXT, person INTEGER, date INTEGER, protocol INTEGER, read INTEGER DEFAULT 0, status INTEGER DEFAULT -1,type INTEGER, reply_path_present INTEGER, subject TEXT, body TEXT, service_center TEXT);
sqlite> select * from sms order by _id desc limit 1;
727|31| ||1334773586965|0|1|-1|1|0||?TextSecureLocalEncrypt5MILWa4Dhii10/IFHAXZHyM3ZLCic20Eg4UuFhZp6w7pVApLVakDuKCypZW9hLsuuGsM7q6E9r4epldDm5TX8odKYf3F9/8nnaGn8T2S7hCuYZ0Gzu/Hv6OjDTOH+JV7N98jwwEOfMkXPT4TJBIXg9N9Yxk=|
sqlite> select count(*) from sms where thread_id=31;
1
sqlite> 

Feature Request - Google Voice text messaging integration

I occasionally use Google Voice (GV) for texts, or texts are sent to my GV number. Those texts are received by the GV app directly. It would be nice to be able to encrypt/decrypt messages sent through GV. Local storage should be encrypted, but most of the messages would be stored (encrypted) in GV instead.

(This is likely a large undertaking. If I have the time, I may try to tackle this on my fork.)

Screen refresh issues on conversation deletion

Phone: Nexus S
OS: ICS 4.0.3
TextSecure version: <= 0.5.7 (first OSS version)

When you go to delete conversation from the main TextSecure there is a small bug with the screen refresh

If you have multiple conversations and you want to delete one of them the following happens

---- pre delete -----
Conversation_1
Conversation_2
Conversation_3
---- pre delete -----

You go to delete Conversation_2 and get left with the following on the screen

---- post delete -----
Conversation_1
Conversation_3
Conversation_3
---- post delete -----

This will stay this way until you change screens or close out of TextSecure and re-open. The lower of the two Conversation_3's is not selectable.

Similarly, if you have only one conversation, the screen will not refresh

---- pre delete -----
Conversation_1
---- pre delete -----

You go to delete Conversation_2 and get left with the following on the screen

---- post delete -----
Conversation_1
---- post delete -----

This conversation_1 is not selectable.

key exchange problem

key exchanges take place many times when both sides start secure session at the same time, I have to exit this app to stop key exchanges

Switch to page-level database encryption.

The current default is to hide the body of the text but display the senders name until TextSecure is unlocked. It would be nice if there could be an option to allow users to also hide the senders name.

[feature - UI] Remove user icons

Another feature that appears to have been removed in the latest version of TextSecure is the ability to hide the users icon in the conversation and the main window.

It would be nice if there were two options added to handle these user icons

  1. disable user icons
  2. display a reduced size icon (half/third?) so as the ability to access other contact methods is retained but not as much space is taken up.

merge multiple SMS databases

Merging two existing would be nice. For example, when you get a new phone, and have to wait a while before you can import your old texts. Currently newer database gets 'clobbered'.

MMS Download Issue

When using my HTC Hero with Android 2.1 on Sprint my TextSecure 0.5.7 MMS messages appear as follows:

Moxie:

Connecting to MMS server...

Message size: 223 KB

Expires: Jun 5

I'm not sure why Expires is coming through as bold but it is not bold in TextSecure.

SMS messages come through without an issue. Is there something that I can do to get my MMS messages? Thanks.

UI: "TextSecure Cached" Notification is not removable

After having entered the Passphrase, the green "bubble" in the notification bar, cannot be removed. The "clear" button (that normally appears after any notification) is gone and thus the "TextSecure" bubble is omnipresent. And if you do get another notification, and you push clear, the notification still do not disappear. Annoying and unnecessary.

Samsung Galaxy S2: GB 2.3.4

short username in email address do not return as valid

(email addresses changed to prevent spam and whatnot)

Steps to recreate:
long click a message
click 'Forward message'
type in email address in the 'To' text box : [email protected]
Click 'Send'

When I type in [email protected] it works great. When I type in [email protected], I receive the toast error 'Recipient is not a valid SMS or email address!' When I forward to the '[email protected]' address using the android built in text message program, I can send the message fine, and when I send it from TextSecure, it goes to [email protected] perfectly. So, I don't believe it to be an issue with the OS or the email function of TextSecure.

The problem seems to be in line 8 of src\org\thoughtcrime\securesms\util\NumberUtil.java
The regex, ^\w-+[\w]+@([\w-]+.)+[A-Z]{2,4}$, seems to be requiring three letters for the left side of the email. I think this is in contradiction of RFC5322 (page 17) and real email addresses in use today.

Logs (partially redacted):
mm-dd hh:mm:ss.mmm W/compose (#####): org.thoughtcrime.securesms.recipients.RecipientFormattingException: Recipient:[email protected] is badly formatted.
mm-dd hh:mm:ss.mmm W/compose (#####): at org.thoughtcrime.securesms.recipients.RecipientFactory.parseRecipient(RecipientFactory.java:186)
mm-dd hh:mm:ss.mmm W/compose (#####): at org.thoughtcrime.securesms.recipients.RecipientFactory.getRecipientsFromString(RecipientFactory.java:114)
mm-dd hh:mm:ss.mmm W/compose (#####): at org.thoughtcrime.securesms.components.RecipientsPanel.getRecipients(RecipientsPanel.java:84)
mm-dd hh:mm:ss.mmm W/compose (#####): at org.thoughtcrime.securesms.ComposeMessageActivity.getRecipients(ComposeMessageActivity.java:618)
mm-dd hh:mm:ss.mmm W/compose (#####): at org.thoughtcrime.securesms.ComposeMessageActivity.sendMessage(ComposeMessageActivity.java:651)
mm-dd hh:mm:ss.mmm W/compose (#####): at org.thoughtcrime.securesms.ComposeMessageActivity.access$13(ComposeMessageActivity.java:649)
mm-dd hh:mm:ss.mmm W/compose (#####): at org.thoughtcrime.securesms.ComposeMessageActivity$SendButtonListener.onClick(ComposeMessageActivity.java:817)

[feature - UI] Dark theme.

Following the upgrade to TextSecure 0.6.2 the option for changing themes has been removed. I would like to request that a dark theme be re-added to a future version of TextSecure.

NPE when receiving a key exchange message for a locked store

E/AndroidRuntime( 699): java.lang.NullPointerException
E/AndroidRuntime( 699): at org.thoughtcrime.securesms.crypto.MasterCipher.decryptBytes(MasterCipher.java:100)
E/AndroidRuntime( 699): at org.thoughtcrime.securesms.crypto.MasterCipher.decryptKey(MasterCipher.java:90)
E/AndroidRuntime( 699): at org.thoughtcrime.securesms.crypto.KeyPair.deserialize(KeyPair.java:70)
E/AndroidRuntime( 699): at org.thoughtcrime.securesms.crypto.KeyPair.(KeyPair.java:47)
E/AndroidRuntime( 699): at org.thoughtcrime.securesms.database.LocalKeyRecord.readKeyPair(LocalKeyRecord.java:144)
E/AndroidRuntime( 699): at org.thoughtcrime.securesms.database.LocalKeyRecord.loadData(LocalKeyRecord.java:122)
E/AndroidRuntime( 699): at org.thoughtcrime.securesms.database.LocalKeyRecord.(LocalKeyRecord.java:50)
E/AndroidRuntime( 699): at org.thoughtcrime.securesms.crypto.KeyExchangeProcessor.(KeyExchangeProcessor.java:60)
E/AndroidRuntime( 699): at org.thoughtcrime.securesms.service.SmsReceiver.storeKeyExchangeMessage(SmsReceiver.java:107)
E/AndroidRuntime( 699): at org.thoughtcrime.securesms.service.SmsReceiver.storeMessage(SmsReceiver.java:137)
E/AndroidRuntime( 699): at org.thoughtcrime.securesms.service.SmsReceiver.handleReceiveMessage(SmsReceiver.java:161)
E/AndroidRuntime( 699): at org.thoughtcrime.securesms.service.SmsReceiver.process(SmsReceiver.java:181)
E/AndroidRuntime( 699): at org.thoughtcrime.securesms.service.SendReceiveService$SendReceiveWorkItem.run(SendReceiveService.java:193)
E/AndroidRuntime( 699): at org.thoughtcrime.securesms.util.WorkerThread.run(WorkerThread.java:45)

Allow importing the standard SMS database at any time

When ran for the first time, TextSecure allows the user to import the existing SMS database into TextSecure.

But later, there only is the option of importing/exporting a TextSecure SMS database, and nothing to re-import the standard SMS database (useful when the user did something wrong and wants to start over)

It's kind of an issue: you can still clear all TextSecure data from Android and start over, but it also resets your keys…

So, it would be cool to be able to trash all existing TextSecure SMS and re-import the standard SMS database, all in one go and without resetting the keys.

Restore Android Icon Functionality Within Conversation

Tapping a contacts icon within a conversation thread does not currently bring up the Android contact detail screen (as it does from the conversations list within textsecure or in either location in the default Android Messaging app).

Misidentifies sender's identity

TextSecure does not use the sender's 'provided identifier' as it should.

What happens:

  1. I use an sms gateway to send an sms from 'B'
  2. I see an sms on my phone from 'B'
  3. I use the same sms gateway to send an sms from 'C'
  4. I see an sms on my phone under 'B' 's conversation from 'unknown'

What should happen:

  1. I use an sms gateway to send an sms from 'B'
  2. I see an sms on my phone from 'B'
  3. I use the same sms gateway to send an sms from 'C'
  4. I see an sms on my phone from 'C'

UI: PassPhrase window does not scroll

When entering the passphrase for the first time, the window does not scroll down and thus the "save" buttons are covered by the keyboard. User have to click back button (wondering if he's exiting the application while doing so), for keyboard to disappear, in order to click "save".

Samsung Galaxy S 2: GB 2.3.4, stock, swype

Unread messages should be more distinctive

When I receive a new message, I will get a notification. If I click on the notification, I will go to that person within TextSecure.
But if I do not click on the notification, and just go into TextSecure.....I do not know who sent me the new message.
It would be nice to have the box around the user highlighted in green, or maybe have a green number in the box that represents new messages that have not been read.

Thanks,
Keep up the good work. Nice to have people looking out for you in this age of 1984.

Most recent message stored in plaintext

As noted in Issue #24 (and confirmed in my own testing), the most recently received message is stored in the application's internal database as plaintext rather than encrypted in the form of "?TextSecureLocalEncryptabcdef". I can trivially read the first message when I open messages.db in sqlite3 (after I've pulled it off the phone using adb backup).

text message recipient names not encrypted

When TextSecure's passphrase is not cached, although the conversations are encrypted, it is still possible for anyone to read the names of the message recipients. This may be enough to incriminate an individual, and it certainly enables adversaries to easily discern the contact details of the individuals to whom I have been sending encrypted messages.

I'd like to see TextSecure enable encryption for all details not only message content, assuming this is possible?

Can't export a backup file if no SD card is present

For Nexus S and other devices that don't have an SD card, it would still be nice to enable import/export functionality. One can't very easily access the application's data via USB storage mode, and without an SD card the export menu item just returns an error.

Related: is it possible to import old messages just using the raw messages.db file? Does TextSecure work if you backup using adb backup and restore using adb restore?

Opens to most recent conversation, can't get back to conversation list.

This has been happening randomly for me lately, I assume it's since the latest update. My passphrase is cached, and when I go to open TextSecure, it opens to the most recent conversation. Hitting the back key seems to just close and re-open the same conversation.
The only way I seem to be able to open the conversation list is by killing the two TextSecure processes from the running apps list. Then when I restart, if I enter into a different conversation from the list, exiting that conversation by pressing the back key, brings me back to the most recent conversation again, not the conversation list.

I think it might be worth noting also that deleting the conversation thread that persistently shows (most recent...usually...I think), doesn't solve the issue, a blank/new thread with the same contact is shown in place of the deleted one.

If it helps, I've got a Sony Xperia S LT26i running Android 4.0.4

If there's any other information I can provide, just let me know here. Thanks! :)

When rebooting phone text messages are re-routed to normal text messanger on boot

First let me start off with my specs:

Phone Model: HTC Dream
Android version 2.2.1
Kernel Version: 2.6.36.9-cyanogenmod replicant@replicant-builder #1
Mod version Replicant-2.2 (See replicant.us)

I have successfully setup textsecure with my brother. However during a phone call with him the call was dropped and I rebooted my phone. During this time he sent me a text saying "call me". However once my phone rebooted I received the normal text messaging app went off and the text was routed there. However because it was encrypted with my key it just appeared as a bunch of ciphertext. This also happened with a friend of mine.

Data leak: Log contains SMS in clear

In the WirePrefix class, all received SMS (included unencrypted ones) are written to the log. Obtaining SMS requires the READ_SMS permission. All applications on the device having the READ_LOG permission therefore indirectly get the READ_SMS permission when TextSecure is installed.

private static boolean verifyPrefix(String prefixType, String message) {
    if (message.length() <= PREFIX_SIZE)
      return false;

    String prefix           = message.substring(0, PREFIX_SIZE);
    message                 = message.substring(PREFIX_SIZE);    

    Log.w("Prefix", "Calculating on message: " + message + "**");

    String calculatedPrefix = calculatePrefix((prefixType + message).getBytes(), PREFIX_BYTES);

    assert(calculatedPrefix.length() == PREFIX_SIZE);

    Log.w("Prefix", "Received prefix: " + prefix);
    Log.w("Prefix", "Calculated prefix: " + calculatedPrefix);

    return prefix.equals(calculatedPrefix);                
  }

Export to stock SMS database.

I think people should be able to export SMS back to the stock database in-case they decide to remove this app and don't want to lose all their SMS history.

I don't want to start using the app just so I don't have to worry about being locked in, in the future if something better comes along.

[feature] Do not display keyboard until going to write an SMS

The current default for TextSecure is to display the keyboard when you go to view an SMS. This takes up a lot of screen real estate and makes reading the messages a little more difficult than it should be. This is down to the text area being in focus when you go to read a message

The ideal solution to this would be not to defailt to having the text entry area in focus and instead let the end user decide whether they need to type a response and in which case the keyboard will open.

No max. thread size setting

Recently due to my own ignorance and the Mrs being away I quickly amounted ~1000 messages in one thread. At which point I think I must have hit a database / memory issue.

TextSecure could not accept any new messages (it straight rejected them) but equally had no memory so I couldnt delete a single message or an entire thread at once.

The only way to resolve the problem was to go into the Settings menu -> Applications -> TextSecure and delete TextSecure's database.

I'd prepose a "max thread length" in the options, most other text programs allow you to set a max length of say 100 messages.

[Feature] Allow swipe to clear key cache from notification pane

While TextSecure is running, it shows a notification to indicate that the passphrase is cached.

There is no way to dismiss this notification while the key is cached... this is good.

My feature request is that it should be possible to dismiss this notification, and have TextSecure automatically clear the passphrase when it is dismissed.

This will make a much quicker way to clear the cached key, and take far fewer steps in order to do it.

Only my messages visible in thread

In the thread view, all my messages are visible but the other persons messages are black.

See image for a screen shot:
http://www.4zm.org/files/2011/textsecure-bug.jpg

I'm using a Google Nexus S running Ice Cream Sandwitch.

In the "top" text message screen where all the different threads with different users are shown, the messages from others are readable in white om a black background.

Links in text messages from others are still readable in the thread view. They are blueish on the black background.

Group sms do not send encrypted messages.

When sending a sms to several people, the sms is not encrypted when it is sent to people you have initiated a secure session with.

I have only tried this with sending sms to two people, one with a secure session and one without, and the sms is sent unencrypted to both.

Crashes after upgrade to 0.7.2

After todays upgrade to 0.7.2 it crashes on HTC Legend (android 2.2).

Here's a logcat:

I/ActivityManager( 93): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=org.thoughtcrime.securesms/.ConversationListActivity bnd
s=[3,338][77,417] }
I/ActivityManager( 93): Start proc org.thoughtcrime.securesms for activity org.thoughtcrime.securesms/.ConversationListActivity: pid=2127 uid=10077 gids={3003, 1015}
I/pthread ( 2127): ## thread 2127 is creating thread @dalvik/vm/Thread.c:1795
I/pthread ( 2127): ## thread 2128 is created success
I/pthread ( 2127): ## thread 2127 is creating thread @dalvik/vm/Thread.c:1795
I/pthread ( 2127): ## thread 2129 is created success
I/pthread ( 2127): ## thread 2127 is creating thread @dalvik/vm/Thread.c:1795
I/pthread ( 2127): ## thread 2130 is created success
I/pthread ( 2127): ## thread 2127 is creating thread @frameworks/base/libs/utils/Threads.cpp:139
I/pthread ( 2127): ## thread 2131 is created success
I/pthread ( 2127): ## thread 2131 is creating thread @frameworks/base/libs/utils/Threads.cpp:139
I/pthread ( 2127): ## thread 2132 is created success
D/AK8973 ( 73): Compass Start
I/pthread ( 73): ## thread 2133 is created success
D/Sensors ( 93): open_akm, fd=174
I/pthread ( 73): ## thread 2134 is created success
I/ActivityThread( 2127): Publishing provider org.thoughtcrime.provider.securesms: org.thoughtcrime.securesms.providers.PartProvider
D/AndroidRuntime( 2127): Shutting down VM
W/dalvikvm( 2127): threadid=1: thread exiting with uncaught exception (group=0x40028a00)
E/AndroidRuntime( 2127): FATAL EXCEPTION: main
E/AndroidRuntime( 2127): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.thoughtcrime.securesms/org.thoughtcrime.securesms.ConversationListActivity}: java.lang.ClassNotFoundException: org.thoughtcrime.securesms.ConversationListActivity in loader dalvik.system.PathClassLoader[/system/framework/android.test.runner.jar:/data/app/org.thoughtcrime.securesms-2.apk]
E/AndroidRuntime( 2127): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2703)
E/AndroidRuntime( 2127): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2797)
E/AndroidRuntime( 2127): at android.app.ActivityThread.access$2300(ActivityThread.java:135)
E/AndroidRuntime( 2127): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2132)
E/AndroidRuntime( 2127): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 2127): at android.os.Looper.loop(Looper.java:143)
E/AndroidRuntime( 2127): at android.app.ActivityThread.main(ActivityThread.java:4914)
E/AndroidRuntime( 2127): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 2127): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 2127): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime( 2127): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime( 2127): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 2127): Caused by: java.lang.ClassNotFoundException: org.thoughtcrime.securesms.ConversationListActivity in loader dalvik.system.PathClassLoader[/system/framework/android.test.runner.jar:/data/app/org.thoughtcrime.securesms-2.apk]
E/AndroidRuntime( 2127): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
E/AndroidRuntime( 2127): at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
E/AndroidRuntime( 2127): at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
E/AndroidRuntime( 2127): at android.app.Instrumentation.newActivity(Instrumentation.java:1033)
E/AndroidRuntime( 2127): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2695)
E/AndroidRuntime( 2127): ... 11 more
W/ActivityManager( 93): Force finishing activity org.thoughtcrime.securesms/.ConversationListActivity

Conflicting EULA?

While performing a license analysis on the source code I found a conflicting EULA in res/raw/eula. It has problematic areas, like the software is only available for non-commercial use, and some of the terms are probably considered a "further restriction" under the GPL. My hope is that this file was just overlooked and wasn't supposed to have been included in the distribution.

Backup import failure

I am trying to move my SMS database between phones. TextSecure seems to export successfully but on import, even though it says 'Import Success!' there are no messages imported. Then it asks for my passphrase, and when I put it in TextSecure gets force closed.

Is there any way to dump the exported database to text files on your linux box to verify the exported database?

Decryption errors after restore

TextSecure working fine -> Export to SD -> firmware upgrade -> fresh installation (same TS version) -> Import (successfull) and then:
"Decryption error: local message corrupted, MAC doesn't match. Potential tampering?"

Fallback to original firmware didn't help.

Is it possible that something was lost/corrupted during export?
Databases (messages.db and canonical_address.db) can be read with sqlite.

Can messages be deciphered directly on a Linux machine?

TextSecure opens with blank screen

Latest version of TS typically opens on my Verizon Droid 4 to a blank screen. I have to hit the back button and then go back into it to read any messages.

screen lock doesn't interrupt "in focus" status

Currently if I either:

A. leave a textsecure conversation open
B. leave the entire list of all text secure conversations open

and I initiate the screen lock, textsecure remains "open" despite passing the timeout delay. I believe this is because TextSecure thinks it is still "in focus" and will not empty the passphrase cache. IF the screen lock is initiated whether by nonuse or actively by the user, I'd like to see the app clear the passphrase cache.

Own messages off left in unencrypted conversations

This issue pertains to the ICS look and feel update.

In an unencrypted conversation, the text of one's own messages sometimes goes off the left side of the screen (doesn't wrap properly). However this is not the case in an encrypted conversation.

Confirmed on:
T-Mobile G2 running CM9 RC1
Motorola Droid X running Verizon's carrier ROM (GB-based)

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.